Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back

IT 5분 잡학사전 TIL 6일차

#book_club
7개월 전
110

오늘 TIL 3줄 요약

  • 정렬 알고리즘은 동일한 시간 복잡도를 가지더라도 실제 속도는 차이가 있다.

  • 해시 테이블은 배열과 해시 함수를 세트로 가지고 있는 자료 구조이다.

  • 클린 코드는 설명이 필요 없는 코드이다.

TIL (Today I Learned) 날짜

2025. 01. 11

오늘 읽은 범위

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

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

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

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

  • IT 쿠키 상식 - 개발자의 책상 위 필수 아이템

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

  • 에피소드 26

    • 버블 정렬은 이웃한 두 값을 비교하여 큰 값을 오른쪽으로 보내는 방식의 정렬이다. 가장 간단하게 생각할 수 있지만 별로 좋은 알고리즘은 아니다.

    • 선택 정렬은 가장 작은 데이터 또는 가장 큰 데이터의 위치를 따로 기억하는 방식의 정렬이다. 시간 복잡도는 버블 정렬과 동일하지만 자리를 바꾸는 연산을 한 번만 하여 더 효율적이다.

    • 삽입 정렬은 앞의 데이터를 보고 교환이 아닌 밀어 넣는 방식의 정렬이다. 시간 복잡도는 선택 정렬과 동일하지만 더 빠르다.

    • 시간 복잡도가 같더라도 평균적으로 빠른 알고리즘이 존재할 수 있다.

  • 에피소드 27

    • 큐와 스택은 배열과 달리 문법적으로 구현된 것은 아니다. 이런 형태의 자료구조를 추상 자료구조라 한다.

    • 스택은 위에서부터 데이터를 쌓고 위에서부터 데이터를 빼는 LIFO(Last In, First Out) 방식의 구조이다. 웹 페이지의 뒤로 가기, 되돌리기 등이 스택이다.

    • 큐는 위에서부터 데이터를 쌓고 아래에서부터 데이터를 빼는 FIFO(First In, First Out) 방식의 구조이다. 쇼핑몰의 주문 처리 시스템은 큐이다.

  • 에피소드 28

    • 해시 테이블은 키와 값이 짝지어진 형태의 데이터 구조이다.

    • 해시 테이블은 데이터 검색, 추가, 삭제 모두 O(1)의 시간 복잡도를 가진다.

      값을 boolean으로 넣는 방식으로 해시 테이블을 배열처럼 사용할 수 있다.

    • 해시 테이블은 기본적으로 배열 구조로 되어 있지만, 해시 함수를 통해 키를 인덱스로 바꿔 주는 방식으로 동작한다.

    • 해시 값이 같은 경우 해시 충돌이 발생할 수 있다. 해시 충돌 대처 방법 중 하나는 인덱스 내에 또 다른 배열을 넣는 방법이 있다.

  • 에피소드 29

    • 클린 코드란 이 코드가 무슨 일을 하는지, 어떤 것을 의미하는지 물어볼 필요 없이 잘 이해할 수 있는 코드를 뜻한다.

    • 변수의 이름은 의미를 담아서 나타내고, 함수의 이름은 동사로 짓는다.

    • 함수에 필요한 인자가 많다면 object 형태로 보내고, boolean은 함수의 인자로 사용하지 말자.

    • 일반적이지 않은 축약어는 사용하지 말자.

    • 코드를 다듬는 작업은 잘 실행되는 코드를 만든 후에 하면 된다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 정렬에서 시간 복잡도가 같더라도 평균적으로 빠른 알고리즘이 존재할 수 있다는 부분이 신기하게 느껴졌다.

  • 해시 테이블의 자료 구조와 배열이 어떤 차이가 있어서 사용할 때 시간 복잡도의 차이가 생기는지 궁금했었는데, 이것을 잘 이해할 수 있었다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 정렬 알고리즘 중에 시간 복잡도가 O(N²)보다 작은 알고리즘도 있을까?

오늘 읽은 다른사람의 TIL

내가 번아웃을 극복하는 방법은?

슬랙 메세지 링크 - https://nomadcoders.slack.com/archives/C04GZRR7D9P/p1736599312065299