[노개북] IT잡학사전 9일차 : 26장~ 30장
오늘 TIL 요약
- 같은 시간 복잡도라고 해도 평균 속도나 데이터의 특성에 따라 더 빠른 알고리즘이 있을 수 있다
- 해시 테이블은 키와 값으로 구성되어있고 해시 함수를 통해 인덱스로 한번에 검색할 수 있게 해준다
- 클린코드의 원칙에 따라 코드를 정리하고, 관리는 꾸준히 하자
TIL (Today I Learned) 날짜
2023-9-2
오늘 읽은 범위
p.154~181
책에서 기억하고 싶은 내용을 써보세요.
- 정렬 알고리즘 속도 순위: 현 위치는 왼쪽에서 오른쪽으로 이동하면서 O(N^2), 시간복잡도는 같지만 평균적으로 빠른 속도
- 삽입정렬 Insertion Sort : 현 위치의 앞에 있는 데이터와 비교해서 밀어넣고 그다음 사이클
- 선택정렬 Selection Sort : 현 위치와 전체 데이터중 가장 작은 데이터 탐색 교환 반복
- 버블정렬 Bubble Sort : 오른쪽 아이템과 비교하고 작으면 교환하는 것을 계속 반복
- 스택은 접시 쌓기, 큐는 버스줄서기
- 뒤로가기는 스택, cmd-z(ctrl-z)도 스택, 쇼핑몰 주문 처리는 큐
- 해시 테이블은 키와 값(Value)로 짝지어 모은 것들
- 검색할때 해시함수를 통해 인덱스로 바꿔서 바로 검색, 시간 복잡도 O(1)
- 해시함수를 거쳐도 인덱스가 겹치는 경우 배열을 추가생성하는 등의 해결법을 사용한다
- 클린코드 5가지 원칙
- 의미있는 변수, 함수명을 적절히 사용(값을 그대로 쓰는 것보다 의미있는 이름을 쓰는 것)
- 함수명은 동사로 짓기(하나의 일만 하는 함수를 나타낼 수 있다)
- 매개변수는 너무 많이 쓰지 말것(Configuration Object로 의미있게 묶어쓰기도 권장)
- Boolean(True/False)를 함수 인자로 보내지 말것(조건문은 분기가 있어 함수에게 두가지 일을 하게 한다)
- 나만 아는 축약어는 쓰지 말 것
- 프로그램은 책임있게 만들고, 끊임없이 관리해야 한다
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.
클린코드 스터디 하고 있는데 원칙들을 잘 정리해주어서 다시한번 클린코드의 내용을 상기하게 되었다
노마드 게더타운 인증샷