Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

heyday2024 님의 블로그

클린 코드 (Clean Code) 본문

프론트엔드 부트캠프

클린 코드 (Clean Code)

heyday2024 2024. 11. 15. 21:17

1. 클린 코드란?

  • 가독성이 높음: 코드를 읽는 사람이 쉽게 이해할 수 있음.
  • 유지보수가 용이함: 코드 수정이나 확장이 쉬움.
  • 일관성: 코드 스타일과 패턴이 일정함.
  • 중복 최소화 (DRY): 같은 코드를 반복하지 않음.

2. 클린 코드를 작성하기 위한 원칙

  1. 의미 있는 이름
    • 변수, 함수, 클래스의 이름은 목적이 명확해야 함.
    • ✅ getUserInfo()
    • ❌ dataProcess()
  2. 함수는 작게 유지
    • 함수는 하나의 책임(Single Responsibility Principle)만 가질 것.
    • ✅ calculateDiscount(price)
    • ❌ processOrderAndSendEmail(order)
  3. 중복 코드 제거
    • 중복된 코드는 함수로 분리하거나 재사용 가능한 컴포넌트로 작성.
    • ✅ function formatDate(date) { ... }
    • ❌ 각 화면에서 동일한 날짜 포맷 로직 사용.
  4. 주석은 최소화, 코드로 의도를 전달
    • 주석 대신 코드 자체로 설명 가능하도록 작성.
    • ✅ const maxUserCount = 100;
    • ❌ // 최대 사용자 수는 100명입니다.
  5. 에러 처리 철저히
    • 에러가 발생할 가능성을 항상 고려하고, 명확히 처리.
    • ✅ if (!user) throw new Error("User not found");
    • ❌ 프로그램이 예외를 삼키고 진행.
  6. 코드 포맷 통일
    • 코드 스타일 가이드(lint, prettier) 적용.

3. 배운 점

  • 짧고 간결한 코드보다 의도가 명확한 코드가 더 중요함.
  • 클린 코드를 위해 코드 리뷰와 리팩토링이 필수적임.
  • PR(pull request) 동료가 리뷰할 때, 한번에 많은 양의 코드 올리지 말고 동료가 리뷰할 수 있을 정도의 가능한 양만큼으로 세분화해서 올려주기.
  • 그리고 코드 수정, 생성, 변화한거 작성 시 test checklist도 올려주기. (QA한거 :어떠어떠한 테스트해봤다. 잘 돌아가더라~~~)
  • 새로운 함수 만들때 마지막에 작성했다고, 무작정 끝에 두지 말고 비슷한 기능, 역할 하는 애들과 모아서 두기.
  • 파일 폴더 이름 명료하게!! ==> 중간에 새로운 개발자가 투입되어도 각 파일과 코드들이 어디를 다루고 어떤 역할을 하는지 알정도로...
  • 함수 작성 시 받는 인수가 적을 수록 좋다. 보통 받는 인수가 다양하면 한 함수가 여러역할을 한다던가, 객체로 들어와도 되는 경우이므로 다시 살펴보자!!
  • 프리리뷰와 포스트리뷰에 대해서...
    • 프리리뷰와 포스트리뷰프리리뷰(Pre-Commit Review)와 포스트리뷰(Post-Commit Review)는 소프트웨어 개발에서 코드 품질을 높이기 위한 중요한 리뷰 프로세스.
      • 프리리뷰 (Pre-Commit Review)프리리뷰는 코드가 실제로 커밋되기 전에 진행되는 리뷰. 이 단계에서 개발자는 코드를 작성하기 전에 설계나 요구 사항에 대해 팀원들과 논의함. 
        • 설계 변경 최소화: 코드 작성 전에 리뷰를 통해 과도한 설계 변경을 방지할 수 있음
        • 공유된 이해: 팀원 간에 서로의 관점을 공유하여 코드 품질 기준을 맞추고, 기능에 대한 도메인 지식을 강화
        • 효율적인 코드 리뷰: 사전 논의를 통해 코드 리뷰 시 이해도가 높아져, 리뷰어가 코드를 파악하는 데 필요한 시간이 줄어듬
        프리리뷰는 특히 프로젝트 초기 단계에서 유용하며, 팀원들이 동일한 목표를 가지고 작업할 수 있도록 도움.
      • 포스트리뷰 (Post-Commit Review)포스트리뷰는 코드가 커밋된 후에 진행되는 리뷰. 
        • 즉각적인 피드백: 개발자는 자신의 코드를 먼저 커밋하고, 이후 다른 팀원들로부터 피드백을 받을 수 있음. 이는 개발자가 자신의 작업을 신뢰하고 더 빠르게 진행할 수 있도록함
        • 유연성: 포스트리뷰는 긴급한 수정이 필요할 때 유용하며, 코드가 이미 배포된 상태에서 발생하는 문제를 신속하게 해결할 수 있음
        • 자동화 도구 사용: 많은 현대 개발 환경에서는 GitHub와 같은 플랫폼에서 포스트리뷰를 지원하는 도구들이 제공되어, 리뷰 프로세스를 쉽게 관리가능...

 

child에 굳이 content =content, subTitle = subTitle 이렇게 주지 말기
긍정의 의미 먼저

 

코드 한줄 추가한다고 성능 차이 미미함. 다른 개발자들이 알아볼 수있게 쉽게 이해될 수 있게 코드를 작성하자

 

=
if () 안에 내용을 너무 방대하게 만들지 말자

- 여러개의 조건을 적은 수로 줄인다고 성능상으로 크게 차이 없음... 조건문 압축하지 말기.

- 조건문을 굳이 최적화하지 말기. 조건문 안에 이름을 편하게 명식적으로 지정해줘서 사용하기.

- 조건문이 길어질 때 그 내용을 변수로 만들어 사용하고, 그 변수 이름을 확실히 지어줘서 명시적으로 하기.

- 조건문 중첩해서 써야할 때: early return 이용하기 (Guard Clause)

 

 

 

-return 할 떄 map정도만 써서 그려주는 게 좋지. filter, find 이런거 추가하지 말기 '