[TIL] IT 5분 잡학사전 Day9

한다솜·2024년 2월 17일

IT 5분 잡학사전

목록 보기
7/11
post-thumbnail

오늘 TIL 3줄 요약

  • 시간 복잡도가 같더라도, 상황에 따라 처리 속도가 달라질 수 있다
  • 해시 테이블 속도의 비결은 해시 함수
  • 좋은 코드를 향한 열망과 고민은 개발자의 숙명

TIL (Today I Learned) 날짜

2024.02.17

오늘 읽은 범위

에피소드 26 ~ 29

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

📍 정렬 알고리즘

✔️ 버블 정렬 (Bubble Sort)

  • 서로 인접한 두 원소를 비교하여 정렬하는 알고리즘
  • 시간 복잡도 : O(N^2)

✔️ 선택 정렬 (Selection Sort)

  • 전체 데이터 중 가장 작은 데이터 또는 가장 큰 데이터의 위치를 따로 기억하여 정렬하는 알고리즘
  • 시간 복잡도 : O(N^2)

✔️ 삽입 정렬 (Insertion Sort)

  • 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여 자신의 위치를 찾아 삽입하여 정렬하는 알고리즘
  • 시간 복잡도 : O(N^2)

📍 스택과 큐

✔️ 스택 (Stack)

  • 데이터를 수직으로 쌓고, 값을 추가하거나 삭제할 때 윗부분에서 작업 수행 ➡️ LIFO (Last In First Out)
  • 스택을 사용하는 경우 : 웹 브라우저의 뒤로 가기 버튼, 되돌리기 단축키

✔️ 큐 (Queue)

  • 데이터를 수직으로 쌓고, 값을 추가하거나 삭제할 때 아랫부분에서 작업 수행 ➡️ FIFO (First In First Out)
  • 큐를 사용하는 경우 : 쇼핑몰 주문 처리 시스템

📍 해시 테이블

  • 키와 값을 짝지어 데이터를 정리한 테이블
    • 쉬운 데이터 정리 및 검색 속도 향상
  • 시간 복잡도 : O(1)
    ✔️ 해시 함수
    • 해시 테이블 시간 복잡도의 비결
    • 키 값 ➡️ 인덱스로 바꾸는 역할

📍 클린 코드 작성 방법

  1. 의미 있는 변수와 함수 이름 사용하기
  1. 함수 이름 동사로 짓기
    • 함수의 액션은 1개여야 한다
    • 함수를 설계하는 시점부터 함수가 해야 하는 역할을 명확하게 정하기
  1. 무분별한 매개변수 사용 자제
    • 함수 역할 파악을 위해 여러 인자 값 전달 피하기
    • 불가피한 상황이라면 ➡️ Configuration Object 방식으로 매개변수를 묶어서 전달하자
  1. boolean 값은 인자로 보내지 말 것
    • '함수의 액션은 1개여야 한다'에 위배
  1. 축약어 사용 금지

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

✔️ 클린 코드의 중요성에 대해서 인지하고 있었지만, 개발을 시작하는 입장에서 처음부터 클린 코드까지 신경 쓸 여유가 없었다 😢 코드가 돌아가는 것만으로도 감사할 뿐 ... 😂

현재는 혼자 코드를 짜보는 일이 대부분이라 나만 알아볼 수 있으면 된다고 안일하게 생각했던 것 같다.

아직 클린 코드를 작성하는 것이 익숙하지 않기에 우선 잘 실행되는 코드부터 사용하고, 이후 쉽게 적용할 수 있는 클린 코드 원칙부터 시도해봐야겠다.

코드 리뷰의 기회가 있다면, 놓치지 않고 적극적으로 봐달라고 해야지.

내가 담당하게 될 시스템을 내가 담당하기 이전의 코드보다 더 클린하게 만들어서 나뿐만이 아니라, 협업하게 될 모든 동료들을 위해 클린 코드를 항상 인지하며 코드를 짜야겠다고 다짐한다.

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

🙅

오늘 읽은 다른사람의 TIL

🙅

유튜브 강의

[에피소드 26] https://youtu.be/Bor_CRWEIXo?si=L0ttK10Md9NEGFcc
[에피소드 27] https://youtu.be/Nk_dGScimz8?si=J5_lOccDHWuRSlDj
[에피소드 28] https://youtu.be/HraOg7W3VAM?si=Ai4ckL5nUlGtpUyU
[에피소드 29] https://youtu.be/Jz8Sx1XYb04?si=5MttQlvKAV7HFbnA

슬랙 스크린샷

profile
💻Preparing Web Back-end Engineer💻

0개의 댓글