728x90
반응형

 

IT 5분 잡학사전 Today I Learned


[오늘 TIL 3줄 요약]

  • 정렬 알고리즘의 종류
    • 버블정렬 : 왼쪽과 오른쪽을 비교하는 방식으로 정렬
    • 선택정렬 : 가장 크거나 작은 데이터의 위치를 따로 기억하는 방식으로 정렬
    • 삽입정렬 : 앞에 있는 데이터와 비교하여 밀어 넣는 방식으로 정렬
  • 스택과 큐는 기존 프로그래밍 언어의 문법으로 데이터를 저장할 때 어떤 규칙만 부여하는 추상 자료 구조
  • 클린코드는 잘 실행되면서 부연 설명을 하지 않아도 이 코드만 봐도 충분히 설명할 수 있는 상태를 말한다.

 


[TIL (Today I Learned) 날짜]

2024.04.20

 


[오늘 읽은 범위]

 Ep.26 ~ Ep.29

 


[책에서 기억하고 싶은 내용]

    • 버블정렬
      • 오른쪽으로 1칸씩 밀면서 왼쪽과 오른쪽을 비교하는 방식으로 정렬
      • 많이 사용하지 않고 좋은 알고리즘은 아님
      • 시간 복잡도는 O(N^2)
    • 선택정렬
      • 가장 작은 데이터 또는 가장 큰 데이터의 위치를 따로 기억하는 방식으로 정렬
      • 버블정렬보다는 효율적
      • 시간 복잡도는 O(N^2)
    • 삽입정렬
      • 앞에 있는 데이터와 비교하여 밀어넣는 방식으로 정렬
      • 선택정렬,버블정렬보다 빠름
      • 시간 복잡도는 O(N^2)
    • 시간 복잡도는 단순히 측정값이기 때문에 같아도 속도 차이가 날 수 있다.
    • 스택과 큐는 기존 프로그래밍 언어의 문법으로 데이터를 저장할 때 어떤 규칙만 부여하는 추상 자료 구조
    • 스택의 규칙
      • 1) 위에서 데이터를 쌓는다.
      • 2) 에서부터 데이터를 뺀다.
      • 예시) 웹브라우저의 뒤로 가기, ctrl+z
    • 큐의 규칙
      • 1) 위에서 데이터를 쌓는다.
      • 2) 아래에서부터 데이터를 뺀다.
      • 예시) 쇼핑몰 주문 처리 방법 - 먼저 주문한 사람부터 처리한다.
    • 해시테이블 
      • 키와 값을 짝지어 모은 것 
      • 선형검색보다 빠르게 검색 가능
      • 시간 복잡도 : O(1) > Big-O표기법으로 표현할 수 있는 가장 빠른 시간(상수 시간)
      • 해시테이블에서는 어떤 값을 찾더라도 딱 한 단계만 거침
    • 클린코드를 위한 5가지 꿀팁
      • 1) 의미 있는 변수, 함수의 이름을 적절히 사용할 것
      • 2) 함수 이름은 가급적 동사로 짓기
        • 함수는 1가지 역할만 하는 것이 좋음 
      • 3) 매개변수는 너무 많이 쓰지 말기
        • 함수에서 매개변수는 3개 이하 추천
        • 불가피하게 많이 설정해야 할 경우 컨피그레이션 오브젝트(Configuration Object) 방식으로 사용
          • 컨피그레이션 오브젝트(Configuration Object) : 키-값 쌍의 형태로 구성된 매개변수를 묶어 전달하는 방식
      • 4) Boolean값을 인자로 보내지 말기
      • 5) 축약어 쓰지 말기
        • 나 혼자만 알아볼 수 있는 축약어는 금지!

[오늘 읽은 소감과 떠오르는 생각]

  • 아... 오늘도 역시 책 내용이 너무 재밌다.
  • 스택과 큐의 개념이 항상 어렵게만 느껴졌는데 한방에 알게 되었다.
  • 클린코드의 중요성은 알고 있었지만 사실 배우는 입장에서 클린코드까지 챙길 생각을 못했는데 습관부터 잘 들여야겠다는 생각을 했다.

[궁금한 내용이 있거나 잘 이해되지 않는 내용]

해시 테이블에 대해서 이해가 부족했다.

>> 나의 작고 소중한 ChatGPT 과외쌤이 알려준 결과🤓❤

 

해시 테이블은 키-값 쌍을 저장하는 자료구조입니다. 각 키는 해시 함수를 사용하여 해시값으로 변환되고, 이 해시값을 이용하여 값을 저장하거나 검색합니다. 해시 테이블은 일반적으로 배열로 구현되며, 해시 함수를 사용하여 배열의 인덱스를 계산하여 효율적으로 값을 저장하고 검색합니다.

해시 테이블은 다음과 같은 주요 작업에 사용됩니다:

  1. 데이터 저장: 해시 테이블은 특정 키와 연관된 값을 저장합니다. 각 키는 해시 함수를 사용하여 해시값으로 변환되고, 이 해시값을 기반으로 배열의 인덱스를 계산하여 값을 저장합니다.
  2. 데이터 검색: 저장된 데이터를 검색할 때 해시 테이블은 키를 해시값으로 변환하고, 해당 해시값을 사용하여 배열에서 검색을 수행합니다. 이는 일반적으로 상수 시간(O(1))에 가능하며, 매우 빠른 검색 속도를 제공합니다.
  3. 데이터 삭제: 저장된 데이터를 삭제할 때도 키를 해시값으로 변환하여 해당 위치에서 데이터를 삭제합니다.

해시 테이블은 일반적으로 많은 양의 데이터를 효율적으로 저장하고 검색하는 데 사용됩니다. 해시 테이블은 키의 해시값에 따라 데이터를 저장하기 때문에 검색 및 삽입 작업이 일반적으로 매우 빠릅니다. 그러나 충돌이 발생할 수 있으며, 이를 처리하기 위해 충돌 해결 기법(예: 체이닝 또는 개방 주소법)이 사용됩니다.


 

#노개북 #노마드코더 #개발자북클럽

728x90
반응형