본문 바로가기
TIL

TIL#5. IT 5분 잡학사전 ep26-29

by 고니누나 2023. 10. 13.
728x90

노마드코더의 북클럽 챌린지 IT 5분 잡학사전

 

노마드 코더 Nomad Coders

코딩은 진짜를 만들어보는거야!. 실제 구현되어 있는 서비스를 한땀 한땀 따라 만들면서 코딩을 배우세요!

nomadcoders.co

 

오늘 읽은 내용

에피소드 26 - 정렬 알고리즘

에피소드 27 - 스택(Stack), 큐(Queue)

에피소드 28 - 해시테이블

에피소드 29 - 클린 코드

 

기억할 내용

- 정렬 방식: 버블 / 선택 / 삽입 => 시간복잡도는 같아도 평균적으로 빠른 알고리즘은 존재할 수 있음.

- 큐나 스택은 기존 프로그래밍 언어 문법으로 데이터를 저장할 때 어떤 규칙만 부여하기 때문에 실제로 형태가 있지 않음 (Abstract Data Type, ADT)

- 스택의 규칙: 위에서 데이터를 쌓는다. 위부터 데이터를 뺸다. => LIFO (Last in, First out) (팬케이크 쌓고 하나씩 먹기!)

- 큐의 규칙: 먼저 들어온 데이터가 먼저 빠져나감. 위로 데이터를 쌓는다. 아래부터 데이터를 뺀다 (버스정류장 먼저 온사람 순서로 줄 서고, 맨 앞사람부터 버스탐!) => FIFO (First in, First out). 선입선출 개념

- 웹 브라우저의 뒤로 가기 버튼은 스택. 맨 마지막 방문한 페이지를 뺴는 규칙

- 되돌리기 단축키도 스택. 마지막 실행 기록을 빼서 없애는것.

- 쇼핑몰 주문 처리 시스템은 큐. 주문이 들어오는 순서대로 데이터를 쌓고 가장 먼저 온 주문부터 처리.

- 배열 검색과 해시 테이블 검색의 시간 복잡도는 각각 O(N), O(1). 해시테이블에 데이터 추가, 삭제할 때도 동일=> 작업 효율이 좋음 (해시 충돌을 추가로 처리해야 한다면 항상 O(1)은 아닐 수 있음)

- 해시 테이블 속도의 비결은 해시 함수: 검색할 때 쓰는 키를 숫자, 즉 인덱스로 바꿔주는 역할

- 클린 코드: 설명이 필요 없는 코드

 

[클린 코드 원칙] *참고할 도서: 클린코드

1. 의미 있는 변수, 함수의 이름을 적절히 사용하기

2. 함수 이름은 가급적 동사로 짓기

function userData(){
}
=> userData가 무슨 함수인지 알수없음

function loadUserData(){
}
=> UserData를 호출하는 함수구나!

동사로 함수명을 지으면, 함수가 너무 많은 기능을 수행하고 있는지 알 수 있음. (함수는 1가지 역할만 해야 함)

3. 매개 변수를 너무 많이 쓰지 않기: 3개 이하가 좋음

4. Boolean 값(True or False)을 인자로 보내지 않기*

5. 축약어 사용 자제

 

생각과 메모

프로그래밍이든, 어떤 일이든 지치지않고 꾸준하게 하루하루를 채우는게 무엇보다 중요하다. 지난 몇달간 힘든 시기를 보내면서 깨달은 것은 멀어보이는 목표에만 집중하지말고, '하루'를 성실하게 잘 보내야한다는 것. 번아웃을 막고, 대처하기 위해 나는 이런 방식을 지키려고 한다.

 

1. 1년, 6개월, 3개월, 한달, 일주일 => 이 순서로 목표를 정하고, 그 주와 매일 해야하는 일들을 '너무 빡빡하지 않게' 계획하는 편이다. 큰 전지를 사서 손으로 적고 포스트잇을 붙여둔다.

 

2. 몰입하는 시간과 별개로 '의식적으로 떨어져서' 쉬는 시간과 운동하는 시간을 정해서 지키려고 노력. 회사를 다니지 않고 스스로 프로젝트를 이끌어야하기때문에 특히 더 관리가 필요한데, 쉴때는 집근처 산의 산책로를 걷고 초록색을 많이 눈에 담으려고 애쓰는 편이다. 

 

https://nomadcoders.slack.com/archives/C04GZRR7D9P/p1697246613177239

 

Slack

 

nomadcoders.slack.com

 

728x90

'TIL' 카테고리의 다른 글

TIL#7. IT 5분 잡학사전 ep35-38  (3) 2023.10.17
TIL#6. IT 5분 잡학사전 ep30-34  (2) 2023.10.15
TIL#4. IT 5분 잡학사전  (24) 2023.10.12
TIL#3. IT 5분 잡학사전  (3) 2023.10.11
TIL#2. IT 5분 잡학사전  (36) 2023.10.10