Community

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

← Go back

[TIL] IT 5분 잡학사전 DAY 9

#book_club
1년 전
548

오늘 TIL 3줄 요약

  • 코딩은 언어 이외에 알아야할 것 들이 꽤나 많다

  • 클린 코드는 나를 위해서 뿐만 아니라 팀을 위해서 필수

  • 코딩도 건강이 좋아야만 지속적으로 할 수 있다

TIL (Today I Learned) 날짜

2023.09.02 (토)

오늘 읽은 범위

Episode 26 ~ 29

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

  • 정렬 (sorting) 알고리즘

    • 같은 시간 복잡도 = O(N^2), BUT 다른 성능의 정렬 알고리즘 3가지

      1. 버블 정렬 (bubble sort)

        • 2칸짜리 창문을 놓고 오른쪽으로 1칸씩 밀면서 왼쪽과 오른쪽을 비교하는 방식으로 정렬

        • 원하는 숫자가 끝에 다르면 (1 사이클) 다음 사이클로 넘어가는데 이때 앞서 정렬이 끝난 숫자는 제외

      2. 선택 정렬 (selection sort)

        • 가장 작은/큰 데이터의 위치를 따로 기억하는 방식으로 정렬

        • 가장 큰 숫자와 작은 숫자가 위치를 교환하면 (1 사이클) 0번째는 무시하고 1번째 위치부터 사이클 재시작

        • 버블 정렬보다 효율적 -> Why? 자리 바꿈이 사이클 당 한번이기 때문에

      3. 삽입 정렬 (insertion sort)

        • 앞에 있는 데이터를 보면서 배치

        • 교환이 아닌 밀어넣기

        • 숫자 2개 중 하나를 밀어넣으면 (1 사이클) 다음 사이클로 이동

        • 버블과 선택 정렬보다 빠름

    • 시간 복잡도는 같은데 속도 차이가 나는 이유?

      • 시간 복잡도를 단순히 측정 했을 때 같고 알고리즘은 초기 데이터 상태에 따라서 처리 속도가 달라짐

    ∴ 정렬에는 작업이 필요하고 시간 복잡도는 상황에 따라 다름

  • 큐 (queue) / 스택 (stack)

    • 프로그래밍 언어의 문법으로 데이터를 저장할 때 어떤 규칙만 부여

      • 배열 + 규칙 = 큐/스택 규칙

    • 아래 규칙만 따르면 무엇을 구현해도 됨

  • 추상 자료 구조 (ADT, abstract data type)

    • 스택: 수직 배열

      • 규칙: LIFO (last in, first out)

        1. 위에서 데이터를 쌓음

        2. 위에서부터 데이터를 뺌

      • ex) 웹 브라우저 뒤로 가기 버튼, 되돌리기 단축키

    • 큐:

      • 규칙: FIFO (first in, first out)

        1. 위에서 데이터를 쌓음

        2. 아래에서부터 데이터를 뺌

    • ex) 쇼핑몰 주문 처리

  • 해시 테이블

    • 키와 값을 짝지어 모은 것

    • 데이터를 더 쉽게 정리 및 더 쉽게 찾을 수 있음

      • 시간 복잡도: O(1), 효율 좋음

    • 해시 함수: 유저가 검색할 때 쓰는 키를 숫자, 즉 인덱스로 전환 시켜줌

    • 해시 충돌 (hash collison): 같은 인덱스가 있을 경우 충돌함

      • 해결방안: 같은 인덱스에 다른 배열 추가

  • 클린 코드(= 설명이 필요 없는 코드)를 위한 5가지 팁

    1. 의미있는 변수, 함수의 이름을 적절히 사용

    2. 함수 이름은 무조건 동사로 짓고 1가지 액션만 잘 할 수 있게

    3. 매개변수는 너무 많이 쓰지 말 것 (3개정도)

      • 많이 써야한다면 컨피겨레이션 방식으로 매개 변수를 묶어서 전달

    4. 불린(boolean)값을 인자로 보내지 말 것

    5. 축약어 쓰지 말 것

  • 개발자의 책상 위 필수 아이템

    • 키보드

    • 스탠딩 데스크

    • 의자

    • 키보드 (기계식)

    • 모니터 & 모니터 암

    • 필기 노트

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

  • 책 <클린 코드> 꼭 읽어볼 것

  • 챌린지/졸작/프로젝트/등등 최대한 코드를 클린하게 짜는게 좋을 것 같다

  • 본격적인 취업 준비 전에 이 책을 한번 더 읽으면 좋을 것 같다

  • 랩탑을 사면 모니터랑 모니터 암은 필수일 것 같다

  • 스탠딩 데스크... 언젠간 꼭 사보리!

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

  • 니꼬쌤 또는 다른 개발자들이 추천하는 기계식 키보드가 있을까?

오늘 읽은 다른사람의 TIL

  • X

과제 2: 게더타운 속 니꼬를 찾아라!