💽 프로그래밍 코드 작성
좋은 코드를 위한 규칙
- 의도가 분명하고 발음하기 쉬운 변수명, 함수명, 클래스명으로 코드를 작성합니다.
- 함수 기능 중 세부사항, 즉 직관적으로 파악하기 힘든 내용은 주석으로 남깁니다.
- 읽기 쉬운 흐름 제어를 만들기 위해 조건문 혹은 반복문을 최적화 시킵니다.
- 하나의 함수는 하나의 작업만 수행하도록 작게 만듭니다.
- 같은 로직을 처리하는 코드가 여러 곳에 있지 않도록 DRY(Do not Repeat Youself)하게 코드를 작성합니다.
좋은 코드의 이점
- 가독성이 좋은 코드가 됩니다.
- 의존성을 줄여둡니다.
- 오류 발생 확률이 줄어듭니다.
- 소스코드의 성능이 최적화됩니다.
- 소스코드 로직의 의도가 잘 드러납니다.
- 코드를 작성하지 않은 다른 사람도 쉽게 수정할 수 있습니다.
- 테스트 코드를 작성하기 쉽습니다.
🧰 코딩 컨벤션(Coding Conventions)
코딩 표준, 코딩 스타일, 가독성이 좋고 일관된 코드 스타일을 유지하기 위해 어떻게 코드를 작성해야 하는지 암묵적으로 정해진 규칙
네이밍 규칙
파스칼 케이싱(Passcal Casing)
: 클래스, 열거형, 이벤트 등의 이름을 만들 때 대문자로 시작합니다.
복합어일 경우 중간에 시작하는 새로운 단어는 대문자로 적습니다.
(ex. PrintSystem)
카멜 케이싱(Camel Casing)
: 함수의 매개변수 이름에 적용되는 첫 번째 문자는 소문자로 시작합니다.
(ex. printSystem)
스네이크 케이스(Snake Case)
모두 소문자를 사용하고 복합어 사이는 _로 연결합니다.
리눅스 프로젝트들은 GNU라고 하는 형태의 명명법을 주로 사용하고, 이는 스네이크 케이스와 동일합니다.
상수 표기(Constant)
거의 모든 명명법에서 상수를 표기하는 방법은 동일하며, 모든 문자를 대문자로 사용하되 복합어 사이는 _로 연결합니다.
🫧 클린 코드(Clean Code)
클린 코드는 읽기 쉽고 이해하기 쉬운 코드를 말합니다.
클린 코드는 프로그램의 동작을 보장하는 것뿐만 아니라, 코드 자체가 가독성이 뛰어나고 유지 보수가 쉽도록 작성되어야 한다는 원칙에 기반합니다.
클린 코드의 주요 원칙
- Follow Standard Convention
: 코딩의 표준, 아키텍처 표준 및 설계 가이드 준수
- Keep it simple, Stupid
: 단순한 것이 효율적이다. 복잡한 것은 멀리하라
- Boy Scout Tule
: 참조되거나 수정되는 코드는 원래보다 깔끔해야 한다
- Root Cause Analysis
: 항상 근본적인 원인을 찾아라, 그렇지 않으면 반복될 것이다
- Do not multiple language in one source file
: 하나의 파일은 하나의 언어로 작성하라
⛓ 리팩토링
✔ 리팩토링(Refactoring) : 나쁜 코드를 좋은 코드로 바꾸는 과정, 이미 작성한 소스코드에서 구현된 기능, 로직은 변경하지 않고 코드의 가독성과 유지보수성을 높이기 위해 내부 구조만 변경하는 것
✔ 리호스트(rehost) : 기존 환경을 변경하지 않고 클라우드 환경으로만 옮기는 방법
✔ 리아키텍트(re-architect) : 애플리케이션의 구조를 처음부터 다시 짜는 방법
✔ 리빌드(rebuild) : 처음부터 애플리케이션을 다시 재구축하는 방법
리팩토링 고려사항
- 유사한 내용이 세 번 이상 반복될 때
- 새로운 기능을 추가할 때
- 코드 리뷰를 할 때
- 레거시 코드가 존재할 때 (쓰기 힘들거나 오류가 발생되는 나쁜 코드)
리팩토링 방법
- Extract Method
: 함수 분리, 긴 함수를 분리하고 함수명은 짧고 기능을 잘 설명하도록 한다.
- Move Class
: 클래스를 이동시키자.
- Renaem
: 이름을 바꾸자.
- Consolidate conditional expression
: 중복 조건식을 통합하자.
- Remove Control Flag : 제어 플래그를 지우자, boolean 대신 return하는 조건문
[출처: 개발자 상식, 아는 만큼 보이는 백엔드 개발]