[취준 | 노개북] IT 5분 잡학사전 - DAY9

Youngseo Lee·2023년 2월 25일
0

TIL 3줄 요약

  • 정렬 알고리즘에는 버블 정렬, 선택 정렬, 삽입 정렬 3가지 유형이 있다.
  • 자료 구조에서 스택(Stack) 은 LIFO, 큐(Queue)는 FIFO
  • 프로그래밍 속도를 높여주는 요소 중 하나는 해시 테이블을 사용하는 것!

TIL 날짜
2023. 02. 25

오늘 읽은 범위

에피소드 26: 정렬 알고리즘이 뭐죠?

에피소드 27: 스택, 큐가 뭐죠?

에피소드 28: 해시 테이블이 뭐죠?

에피소드 29: 개발자 필수 소양, 클린 코드!


책에서 기억하고 싶은 내용을 써보세요.

  • 정렬 (sorting) 알고리즘에는 3가지 유형이 있다.

    • 버블 정렬 (bubble sort) : 한 방향만 바라보면서 정렬하는 방식
    • 선택 정렬(selection sort) : 전체 데이터 중에서 가장 작은 혹은 가장 큰 데이터의 위치를 따로 기억해서 비교하고 정렬하는 방식
    • 삽입 정렬(insertion sort) : 앞에 있는 데이터와 비교하면서 배치하는 방식
  • 자료 구조 : 프로그래밍 언어의 문법으로 데이터를 저장할 때 규칙을 부여하는 것

    • 스택 (Stack)
      • LIFO (Last In First Out) : 마지막에 들어간 데이터가 처음으로 나온다.
        • 웹 브라우저의 뒤로가기 버튼
        • 되돌리기 단축키
    • 큐 (Queue)
      • FIFO (First In First Out) : 처음 들어간 데이터가 처음으로 나온다.
        • 쇼핑몰 주문 처리 시스템
  • 해시 테이블은 Key-Value를 짝지어 모은 것, 검색 속도를 빠르게 해준다.

    • 해시 테이블의 시간 복잡도는 O(1), 검색외 다른 작업에도 효율이 좋다.
    • 예시
      const countries = {
        "태국" : true,
        "그리스" : true,
        "대한민국" : true,
        "영국" : true,
        "미국" : true
      }
    • 해시 테이블은 배열 형태로 구성되어 있고, 해시 함수가 포함되어 있다. 해시 함수는 Key를 숫자, 인덱스로 변형해 준다.
  • 클린 코드 (clean code ) : 설명이 필요 없는 코드, 코드를 읽기만 해도 이 코드가 어떤 동작을 하고 의미하는지 이해할 수 있다

    • 의미 있는 변수, 함수의 이름을 사용
    • 함수 이름은 가급적 동사로 지어라
    • 매개변수는 너무 많이 쓰지 마라
    • 불린값을 인자로 보내지 마라
    • 축약어 사용 금지
  • 처음부터 클린 코드를 작성하는 것은 어렵다. 먼저 코드를 작성하고 리팩토링을 통해 클린하게 코드를 작성하면 된다.


오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
이전에 진행한 프로젝트에서 필터-정렬 쿼리빌더를 만들 때, Object를 사용해서 구상했었다. 그 때는 막연하게 더 간결하게 검색할 수 있잖아? 라고 생각했는데 해시 테이블에 대해 공부하며 왜 빠르게 작동했는지에 대한 원리와 이유를 설명할 수 있을 것 같다.

이것이 아마 자료구조와 알고리즘을 학습해야 하는 이유가 되리라.🌿

profile
백엔드 개발자 영서뤼

0개의 댓글