터칭 데이터
4주차 - 5 [특강] 좋은 코드란? 본문
좋은 코드를 작성하는 것은 훌륭한 개발자의 필수 요소
● 깔끔한 코드는 읽고, 이해하고, 수정하기 쉬움
● 코드는 명확한 이름, 일관된 형식, 의미 있는 주석으로 체계적으로 구성
● 좋은 코드는 테스트가 가능하며 코드와 함께 유닛 테스트를 작성해야 함
● 클래스와 함수는 분명한 하나의 일을 하도록 구현해야 함
● 코드는 모듈화되어야 하며 중복을 피해야 함
● 오류 처리는 코드베이스 전체에서 철저하고 일관성 있게 이루어져야 함 (로깅)
● 코드는 작성자가 아닌 사용자를 염두에 두고 설계해야 함
● 단 중요한 일에 더 완벽을 기할 것
DRY(Don't repeat yourself)
1. 반복되는 작업이라면 함수로 만들 것
2. 동일한 일이 반복된다면 루프로 만들 것
3. 비슷한 클래스를 반복해서 만든다면 클래스 계승 구조를 사용해볼 것
KISS(Keep it simple, stupid)
● 불필요한 복잡성을 피하고 코드를 가능한 한 단순하게 유지
○ 코드를 꼭 짧게 작성해야한다는 것은 아님 (특히 람다 함수)
○ 내장 함수 사용
● 너무 많은 기능을 하나의 함수로 구현하지 말것
● 한 함수가 너무 길어지면 이를 다수의 함수로 나눌 것
● 결국 읽기 쉽고 이해하기 쉬운 코드를 작성하기 위해 노력
기술 부채와 스타트업
● 스타트업의 경우 생존이 더 중요하기에 기술 부채가 점점 커짐
○ 즉 의도적으로 코드의 품질 보다는 속도에 초점을 맞추게 됨
○ 스타트업 코드에 기술부채가 없다면 뭔가 잘못된 것임
● 어느 시점에는 이를 갚기 위해 코드/서비스 리팩토링을 시작해야함
○ 그러면 어떤 시점이 기술부채를 갚을 수 있는 시점일까?
■ 어느 정도 생존하게 되었는데 이제는 기술부채로 인해 회사의 운명이 위험해지는 경우
○ 서비스 관련 사고들의 빈도수와 심각성을 트래킹 -> 대형사고 발생 -> 기술부채를 갚아야 하는 시점
■ 테스트 작성 노력 -> 테스트 범위 (Test Coverage) 늘리기
■ CI/CD 도입 ○ 새 기능 개발과 기존 코드 리팩토링을 적절히 밸런스 (예를 들면 60:40)
'데브코스 TIL' 카테고리의 다른 글
5주차 - 2 [데이터 웨어하우스] (0) | 2023.11.14 |
---|---|
5주차 - 1 [데이터 웨어하우스] (0) | 2023.11.13 |
4주차 - 4 [프로젝트] 간단하지만 치명적인 것들 (0) | 2023.11.09 |
4주차 - 3 [프로젝트] 간단하지만 중요한 것들 (0) | 2023.11.08 |
4주차 - 2 [프로젝트] (0) | 2023.11.07 |