TIL

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

고니누나 2023. 10. 13. 09:14
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