본문 바로가기

수업 내용 정리

(15)
8. Binary Search Trees binary tree이다. 뭐 ancestor, descendant 다양한 용어가 있지만 쉬우니 넘어가자 높이가 H인 full tree는 2**h - 1개의 노드를 갖는다. N개 노드를 가질때 최대/최소 높이: 최대 높이는 일렬로 노드가 늘어설 때 이므로 N이고 최소 높이는 full tree일때 이므로 log(N+1)이다. linked list 와 binary tree, 서치 시간복잡도 비교 둘다 최악의 경우 O(N)으로 똑같음 ㄷ 색다른 binary tree: 오른쪽 루트노드는 중간보다 크고 왼쪽은 작음, 서치 시간 복잡도 O(logN)으로 링크드 리스트보다 효율적임 CountNodes(recursive) 졸라 간단하다. 복잡하게 생각할 수 도있으나 이렇게 간단하게 짤 수 있으니 알아둘 것. Retri..
Lecture 2 | Image Classification Image Classification 고양이 사진을 보고 고양이임을 컴퓨터는 어떻게 인지해야 할까? 우리는 고양이 사진을 보면 야옹이다! 라고 생각하겠지만 컴퓨터는 그냥 졸라많은 숫자 matrics를 보는 것이다. 이러한 사람과 컴퓨터간의 차이를 Semantic gap이라고 한다. 고양이는 밝아지거나 어두워지거나 숨거나하는 등 다양한 사진이 나올텐데 이러한 변화에 Robust해야 겠다. 처음에는 사진을 보고 졸라 분석해서 알고리즘을 만들려고 했으나 robust하지도 않고 비효율적이라 포기했다. 결론적으로 Data-Driven Approach를 생각해내게 된다. 컴퓨터한데 고양이 5억개를 주고 새로운 고영희를 마추라고 한 것이다. train함수: images와 label을 input으로 학습한 다음 mod..
Lecture 1 | Introduction to Convolutional Neural Network for Visual Recognition What's computer vision? 최근 카메라 기술의 발달과 이것저것 존나게 발달해서 시각 데이터가 개많이 나오고 있다. 이로 인해 cv 업계도 횡재를 맞게 된다. 왜냐하면 학습을 시키고 검증할라면 데이터가 겁나게 많이 필요하기 때문이다. 어쨌든 이러한 데이터를 분석해서 컴퓨터가 사진을 이해하는 게 컴퓨터 비전이다. First vision 5억 4천만 년 전, 종이 증폭되는 시기에 눈도 같이 생겨났다. 시각이 생기니까 먹이도 능동적으로 찾을 수 있고 위험으로부터 자신을 지킬 수 도 있었다. History of computer vision 1950s 고양이 뇌에 전극을 꽂아 시각적 메커니즘을 알려고 했다.그래서 결론이 뭐였냐면 "시각 처리는 edges와 같은 단순한 구조로 시작되어 점점 복잡한 요..
12. Opensource License THINK 'FREE SPEECH', NOT 'FREE BEET' -Richard Stallman- 오픈소스의 정의 라이선스 방식을 통해 배포된 소스 코드를 자유롭게 복사, 수정, 사용, 재배포 할 수 있는 소프트웨어 오픈소스 선택 시 고려사항 품질 당연히 기능, 성능, 호환성 등 품질은 중요함 충분한 기능과 성능 검증을 수행한 후 제품/서비스에 도입해야 함 커뮤니티 커뮤니티의 활성화 정도는 지속적으로 업데이트를 하는지 사용자는 어느정도 되는지를 대변 문서화 적절히 도입하고 유지보수하는데 수월함 보안 취약점 보안 취약점은 CVE 등 데이터베이스에서 관리됨으로 잘 확인해보고 쓸 것 라이선스 대부분의 라이선스는 오픈소스를 재배포 시 준수해야 할 의무사항을 요구하니 확인해보고 쓸 것 오픈소스 라이선스 의무&주..
11. Design Pattern Let's reuse not only code but also software design~ Software Design Pattern(s) a general reusable solution to a commonly occuring problem not a finished design a description or template for how to solve a problem 미리 문제를 해결해본 선배들의 조언이다. object oriented design pattern: relationship and interactions between class or object 개발단계를 고려하면서 pattern을 써야한다. 어떤 언어는 pattern이 다 간단하게 구현되어있을 수도 있고 아예 실현 불가능할 수 ..
10. Test and Enhancement What is TDD? 선 개발 후 테스트 방식이 아닌 선 테스트 후 개발 방식의 프로그래밍 방법 자동화된 테스트 코드를 작성한 후 테스트를 통과하기 위한 코드를 개발하는 방식 TDD Cycle Add a test requirement를 만족하기 위한 test code를 작성하는 단계 코드를 짜고 테스트하는 것보다 테스트 코드를 구현한 뒤에 코드를 짬으로써 requirement에 더 집중할 수 있음 Run all tests and check fails 코드를 테스트해서 fail이 나오는 것을 확인해라 왜냐하면 아직 기술 구현을 안했는데 fail나오는 것은 당연 fail이 나와야 test code를 잘짠거임 Write the codes 새로운 test만 "어떻게든" pass 코드를 짬 코드의 효율성 같은 ..
9. Online Co-work & Eduacation Topic.1: Digital Nomad Digital Nomad 회사가 아닌 일하기 좋은 곳, 좋은 시간을 찾아 일을 하는 사람 원격 통신 기술을 적극 활용해 다양한 공간에서 생계를 유지하는 사람 before COVID-19 원 웨이 티켓: 전 세계에 흩어져 디지털 노마드를 하는 사람들의 사례를 다큐멘터리로 만든 책이다. 아직 디지털 노마드가 생소하고 사례가 적은 것 같다. after COVID-19 강제적으로 노마드의 삶을 경험하며 디지털 노마드가 급증했다. 기업들은 업무 완수만 보장된다면 디지털 노마드를 적극 권장하고 지자체를 중심으로 노마드 족을 유치하기 위한 사업이 진행되고 있다. SKT: 거점 오피스(sphere) 태국, 강릉 파도살롱: 디지털 노마드 족들을 잡기 위한 공유 오피스가 준비되어있..