개발자 99% 커뮤니티에서 수다 떨어요!
[노마드코더] 개발자 북클럽 - IT 5분 잡.. : 네이버블로그 (naver.com)
오늘 TIL 3줄 요약
정렬 알고리즘의 시간 복잡도는 모두 O(N^2)지만, 더 효율적인 알고리즘은 분명히 있다
해시 테이블을 이용해 더 효율적인 검색 알고리즘을...
클린 코드를 항상 염두에 두기
TIL (Today I Learned) 날짜
2023.01.21
오늘 읽은 범위
에피소드26 - 에피소드29
책에서 기억하고 싶은 내용을 써보세요.
EP26. 정렬 알고리즘이 뭐죠?
버블 정렬 : 한 칸씩 밀면서 왼쪽과 오른쪽을 비교하는 방식
선택 정렬 : 가장 작은/큰 데이터의 위치를 따로 기억하는 방식
삽입 정렬 : 앞에 있는 데이터를 보면서 배치하는 방식
⇒ 시간 복잡도는 O(N^2)로 같지만, 평균적으로 빠른/느린 알고리즘이 있긴 함
EP27. 스택, 큐가 뭐죠?
사실 큐/스택은 실제로 존재하는(문법으로 구현된) 개념이 아님.
기존 프로그래밍 언어의 문법으로 데이터를 저장할 때 어떤 규칙을 부여하면 그것을 큐/스택이라고 할 수 있음 (추상 자료구조)
→ 배열 등에 어떤 규칙을 합친 것
스택의 규칙 (LIFO)
위에서 데이터를 쌓는다
위에서부터 데이터를 뺀다
큐의 규칙 (FIFO)
위로 데이터를 쌓는다
아래에서부터 데이터를 뺀다
⇒ EX 웹 브라우저의 뒤로 가기 버튼(스택), 되돌리기 단축키(스택), 쇼핑몰 주문 처리 시스템(큐)
EP28. 해시 테이블이 뭐죠?
해시 테이블 : 키와 값을 짝지어 모은 것 (우리가 데이터를 더 쉽게 정리할 수 있게 해줌)
* 시간 복잡도 : O(1) ⇔ 선형 검색 O(N)
→ 배열 + 해시 함수 (검색할 때 쓰는 숫자를 인덱스로 바꿔줌)
** 해시 충돌 : EX 글자 수를 인덱스로 반화하는 해시 함수에서, 글자 수는 같은데 가격은 다른 메뉴가 있다면?
해시 함수로 인덱스를 찾은 후, 그 안에서 헌형 검색으로 찾기
EP29. 개발자 필수 소양, 클린 코드
클린 코드 : 설명이 필요 없는 코드 (읽기만 해도 어떤 의미인지, 무슨 일을 하는지 이해되는 코드)
의미 있는 변수, 함수의 이름을 적절히 사용하라
함수 이름은 가급적 동사로 지어라 (1가지 액션만 잘 하도록)
매개변수는 너무 많이 쓰지 마라 (3개 이하)
불린(참/거짓을 위한 자료형)값을 인자로 보내지 마라
축약어를 쓰지 마라
일단 잘 실행되는 코드를 쓰고, 마지막에는 항상 클린하게 코드를 다듬는 작업을 하자!
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
클린 코드를 아주 예전부터 장바구니에 넣어두고 읽지 못하고 있었는데
여기서 이렇게 만나니 반갑기도 하고, 언젠가는 꼭 읽어야겠다는 생각이 들었다
26~28장은 솔직히 이해가 부족하다 다시 읽어보자
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
큐? 스택? 추상 자료 구조..ㅠ?