본문 바로가기
IT지식/노개북 스터디

[노개북 스터디] 9일차_2023/02/25

by 율✌️ 2023. 2. 25.
[오늘의 과제]
✅ 에피소드 26~29 까지 읽기
✅ TIL 작성하기

 

📝 오늘의 TIL 📝 

 

✔️  책에서 기억하고 싶은 내용들  정리    

  • 에피소드 26 : 정렬알고리즘이 뭐죠?
    버블정렬 / 선택정렬 / 삽입정렬 모두 시간복잡도가 O(N²)이지만 속도가 모두 다르다. 
    삽입정렬>선택정렬>버블정렬 순으로 빠르다. 



    - 버블정렬: 
       이해하기는 쉽지만 실제로 많이 사용되지는 않음
       배열에서 오른쪽의 원소와 비교하며 정렬하는 방식
       비교 횟수, 교환횟수를 고려하면 시간복잡도가 O(N²) => 좋은 알고리즘이 아님
       
        예)
         [8,1,2,3,6,4,9,7] 오름차순정렬하기
         8,1을 비교  >> [1,8,2,3,6,4,9,7]
         8,2을 비교  >> [1,2,8,3,6,4,9,7]
         이렇게 쭉 하다보면 9가 맨 뒤에 오게되는데 이 작업을 한 사이클 이라고 함
         두번째 사이클은 9를 제외하고 다시 반복
         이렇게 쭉~~ 하다보면 오름차순 정렬 완성

    - 선택정렬
        가장 작거나 가장 큰 데이터의 위치를 따로 기억하는 방식
        시간복잡도는 O(N²)

        예)
         [8,1,2,3,6,4,9,7] 오름차순정렬하기
         첫번째 사이클에서 가장 작은 숫자인 1의 위치인 1을 저장 후 0번째에 있는 8과 교환
         두번째 사이클부터는 0번째 위치를 제외하고 1번째 위치부터 작은숫자를 탐색 후 저장

         이렇게 쭉~~ 하다보면 오름차순 정렬 완성

    - 삽입정렬
       앞에 있는 데이터를 보면서 배치
       시간복잡도는 O(N²)
       

 

  • 에피소드 27 : 스택,큐가 뭐죠? 
    - Stack 이나 queue는 문법으로 구현된 것들이 아닌 개발자의 상상 속에 존재, 이런 개념을 추상 자료구조 abstract data type, ADT라고 함.
    - 스택, 펜케이크마냥 차곡차곡 쌓이는것, 그렇기 때문에 데이터를 뺄때도 맨 위부터 빼야한다. (LIFO:last in first out)
    - 큐, 위로 데이터를 쌓는것, 그렇기때문에 아래부터 데이터를 뺀다.(FIFO: first in first out)
    - 브라우저에서 뒤로가기, 되돌리기(cmd+z)등 이 스택으로 구현한것
    - 쇼핑몰 주문처리 시스템은 큐, 주문이 들어온 순서대로 데이터를 쌓고 가장 먼저 들어온 주문부터 처리

 

  • 에피소드 28: 해시테이블이 뭐죠?
    - 키와 값을 짝지어 모아두어 데이터를 쉽게 정리할 수 있게 해준것.
    - 키만 알면 값을 바로 찾을 수 있기때문에 배열로 쭉~~ 나열되있는것보다 검색이 쉬움
menu={
    커피:1000원,
    콜라: 800원,
    케이크:3000원
}

 

 

  • 에피소드 33 : 개발자 필수 소양, 클린코드?

    - 딱보면 무슨일을 하는지 한번에 알아볼 수 있는것이 클린코드
    - 의미가 명확한 변수, 함수이름 짓기
    - 함수이름은 가급적 동사로 : 어떤일을 하는 함수인지 알수있게
    - 매개변수는 너무 많이쓰지 마라, 최대 3개 추천. 불가피한경우 configuration object 방식 사용
    - boolean 값을 인자로 보내지 않는것이 좋음
    - 나만알아보는 축약어금지
    - 처음부터 클린코드를 쓰는것도 좋지만 떠오르는 코드를 일단 쓰고 나중에 다듬어도됨.

 


   

 


 

 

🧐 감명깊었던 구절

개발은 협업이다, 함께일하는 사람들이 모두 알아볼 수 있게 클린코드를 작성하는것은 중요하다 

프로젝트를 아주 많이 해본것은 아니지만 몇번의 프로젝트와 한달간의 회사 인턴기간을 경험하며, 클린코드가 왜 중요한 것인지 알게 되어 최근 클린코드관련 강의를 듣고있다. 남이 짠 코드를 수정해야하는 경우에도, 코드리뷰를 받을때도 훨씬 수월하며 시간단축도 덤으로!! 처음부터 좋은습관을 들여놓아야겠다. 근데 함수명, 변수명 정하는건 진짜너무 어렵다..^^

 


 

✍🏻 오늘의 짧디 짧은 소감

 

요즘 클린코드 공부하는지 어떻게알고 또 딱 나와주셨네, 앞으로 클린코드를 쓰기 위해 노오력

 

스택과 큐의 개념이 계속 이해가 되지 않았는데, 구체적인 예시와 비유로 이해하기가 쉬웠다. 굿굿!!