터칭 데이터

4주차 - 5 [특강] 좋은 코드란? 본문

데브코스 TIL

4주차 - 5 [특강] 좋은 코드란?

터칭 데이터 2023. 11. 10. 18:55

 

 

 

좋은 코드를 작성하는 것은 훌륭한 개발자의 필수 요소

 

● 깔끔한 코드는 읽고, 이해하고, 수정하기 쉬움

● 코드는 명확한 이름, 일관된 형식, 의미 있는 주석으로 체계적으로 구성

● 좋은 코드는 테스트가 가능하며 코드와 함께 유닛 테스트를 작성해야 함

● 클래스와 함수는 분명한 하나의 일을 하도록 구현해야 함

● 코드는 모듈화되어야 하며 중복을 피해야 함

● 오류 처리는 코드베이스 전체에서 철저하고 일관성 있게 이루어져야 함 (로깅)

● 코드는 작성자가 아닌 사용자를 염두에 두고 설계해야 함

● 단 중요한 일에 더 완벽을 기할 것

 

 

 

 

DRY(Don't repeat yourself)

 

1. 반복되는 작업이라면 함수로 만들 것

2. 동일한 일이 반복된다면 루프로 만들 것

3. 비슷한 클래스를 반복해서 만든다면 클래스 계승 구조를 사용해볼 것

 

 

 

 

 

KISS(Keep it simple, stupid)

● 불필요한 복잡성을 피하고 코드를 가능한 한 단순하게 유지

    ○ 코드를 꼭 짧게 작성해야한다는 것은 아님 (특히 람다 함수)

    ○ 내장 함수 사용

● 너무 많은 기능을 하나의 함수로 구현하지 말것

● 한 함수가 너무 길어지면 이를 다수의 함수로 나눌 것

● 결국 읽기 쉽고 이해하기 쉬운 코드를 작성하기 위해 노력

 

 

 

기술 부채와 스타트업

● 스타트업의 경우 생존이 더 중요하기에 기술 부채가 점점 커짐

    ○ 즉 의도적으로 코드의 품질 보다는 속도에 초점을 맞추게 됨

    ○ 스타트업 코드에 기술부채가 없다면 뭔가 잘못된 것임

● 어느 시점에는 이를 갚기 위해 코드/서비스 리팩토링을 시작해야함

    ○ 그러면 어떤 시점이 기술부채를 갚을 수 있는 시점일까?

        ■ 어느 정도 생존하게 되었는데 이제는 기술부채로 인해 회사의 운명이 위험해지는 경우

    ○ 서비스 관련 사고들의 빈도수와 심각성을 트래킹 -> 대형사고 발생 -> 기술부채를 갚아야 하는 시점

        ■ 테스트 작성 노력 -> 테스트 범위 (Test Coverage) 늘리기

        ■ CI/CD 도입 ○ 새 기능 개발과 기존 코드 리팩토링을 적절히 밸런스 (예를 들면 60:40)