[클린코드] 1장. 깨끗한 코드

딱이·2022년 6월 23일
0

CleanCode 스터디

목록 보기
1/13
post-thumbnail

TIL (Today I Learned)

2022.05.04

오늘 읽은 범위
1장. 깨끗한 코드


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

  • 코드는 요구사항을 상세히 표현하는 수단이다.
  • 빨리 가는 유일한 방법은 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. (p.7)

    🎿 The only way to go fast, is to go well

  • 깨끗한 코드 === 명쾌한 추상화.
    코드를 읽는 사람에게 프로그래머가 단호하다는 인상을 줘야한다. (p.11)
  • 중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화하라. (p.14)
  • 새코드를 짜면서 우리는 끊임 없이 기존 코드를 읽는다.
    ...읽기 쉬우면 새 코드를 짜기도 쉽다. (p.18)

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

  • 나쁜 코드의 원인을 촉박한 프로젝트 일정 등, 외부 요인으로 핑계를 돌리지 말자. 전문가라면 상황을 탓하기 보다 상황에 맞는 해결책을 제시하는 것이 바람직하다.
  • 프로덕트 설계/기획 단계와 별개로 개발자 본인도 개발 전, 어느 정도 레벨의 설계는 필요하다. (Ex. 컴포넌트 분리 레벨, 메서드 중복.. )
  • 클린코드가 왜 필요한 지에 대해 한 번더 생각해보게 됨.
    필요하다..! 같이 개발하는 동료 개발자를 위해서, 유지보수를 위해서 라고만 생각 했지만, 내 개발 효율을 위해서도 필요했다. 의식하고 있지 않았던 것 뿐이지 내 코드를 가장 많이 보는 사람은 나였다. 기능 추가가 이루어 지더라도, 기존 코드에 대한 분석이 필수적이기에 해당 내용이 많이 공감되었다. 클린코드가 잘 이루어진다면 최대 수혜자는 당사자가 아닐까-!

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

  • 경쟁 상태(Race Condition)
    : 두 개 이상의 프로세스(혹은 스레드)들이 하나의 자원(리소스)에 접근하기 위해 경쟁하는 상태를 말합니다.
    - 임계영역(Critical Section): 경쟁 상태에서 아무나 접근하지 못하도록 보호되어야 하는 부분.

경쟁 상태 해결 조건

  1. Mutual Exclusion (상호 배제)
    : 어떤 프로세스가 임계 영역을 수행 중이면, 다른 모든 프로세스들은 그 임계 영역에 들어가지 못하게 막는 것.
  2. Progress(진행)
    : 임계 영역에 들어간 프로세스가 없는 상태에서, 임계영역에 들어가려는 프로세스가 있으면 들어가게 해주어야 함.
    임계 영역에 있는 프로세스 외에는 다른 프로세스가 임계영역에 진입하는 것을 방해하면 안됨.
  3. Bounded Waiting(한정 대기)
    : 기아(starvation) 상태를 방지하기 위해 프로세스가 임계 영역에 들어가려고 요청한 후부터, 다른 프로세스들이 임계 영역에 들어가는 횟수 한계 필요. 임계영역에 한 번 들어갔다온 프로세스는 다음 들어갈 때 제한 있음.
profile
뚝딱뚝딱 FE

0개의 댓글