좋은 코딩 기법
좋은 소프트웨어 코드의 6가지 공통점
1. 가독성(readability)
의미있는 변수 이름을 사용, 줄 간격, 들여쓰기를 통해 가독성을 높임
코드의 기능과 목적을 설명하는 주석이 필요함
3. 간결한 코드
- 각 코드가 각자의 기능을 훌륭히 수행해야 함
- 중복 코드를 경계하고 한 가지 기능을 수행하도록 만들어야 함
4. 탄력적
- 현재와 미래의 사항을 모두 염두에 두어야 함
- 최소한의 수정으로 미래에 필요한 사항을 수용할 수 있도록 개발할 수 있어야 함
5. 관리성(Manageability)
버그를 수정할 수 있어야 함
ex) URL, 액세스 키, 비밀번호 등을 직접 하드 코딩하는 방식으로 개발해선 안됨
6. 기능
- 코드가 본래 기능을 수행해야 함
- 배포 전에 충분히 점검해야 함
좋은 코드 작성을 위한 규칙
1. 최적화보다는 가독성이 우선
모듈화 개념이 잘 반영된 코드 작성을 해야 함
2. 아키텍처 우선 개발
코드를 작성하기 전에 모듈화 방법, 테스트 및 디버깅 방법 등을 먼저 생각하고 이해해야 함
3. 필요한 경우 테스트 커버리지를 고려
팀이 작고 코드가 빠르게 변하는 경우 테스트가 필요 없음
4. 간단하고 단순하게 코딩
불필요한 추상화 및 패턴 적용 없이 필요한 일만 수행하도록 코드 작성
5. 주석을 보조적으로 사용
메서드 정의와 사용법을 간단한 주석으로 작성
6. 모듈 간에 강한 결합, 서비스 간에는 느슨하게 결합해야 함
마이크로 아키텍처를 사용하면 소프트웨어 분산 처리(프로세스 분산)도 가능해짐
7. 코드 리뷰가 항상 좋은 것은 아님
코드 리뷰는 내재된 오류를 찾는 것이 목적
8. 리팩토링은 작동하지 않음
- 프로토타입을 단기간에 개발하고자 한다면 리팩토링이 적용될 수 있는 여지는 있음
- 구조화된 코드를 작성할 수 있다면, 굳이 추후에 리팩토링할 필요가 없음
9. 자동화 도구 사용
비용 절감, 품질 향상
10. 취미
- 새로운 아이디어를 개발할 기회
- 집중도와 생산성 향상에 효과적임
11. 여유 시간에 새로운 것을 학습
새로운 기술 적용, 새로운 환경에서 개발을 수행함으로써 새로운 스타일의 코드와 기술 변화에 대응해야 함
코딩 가이드라인
MISRA-C 코딩 표준
자동차에 탑재 소프트웨어의 신뢰성 및 호환성을 높이기 위해 개발한 C 프로그램 코딩 표준
오픈 소스 기반 개발
오픈 소스 활용 시 주의 사항
오픈소스 소프트웨어의 라이센스 권한 확인
- 공개된 코드를 사용할 수 있는지, 수정할 수 있는지, 수정하여 재배포할 수 있는지 확인 필요
- GPL, LGL, BSD, Apache, MIT 등의 라이선스 형식
- 각각 다른 수준의 제한 또는 제약이 걸려 있음
- 오픈 소스 소프트웨어 라이선스 유형
지속적인 오픈 소스 관리
- 오픈 소스에 대한 라이선스가 변경되거나 새로운 취약점은 없는지 정기적으로 점검
- 오픈 소스 목록 관리 및 자동화된 점검 및 보고 기능을 활용
철저한 기술 검토
- 버그 리포트, 인터페이스, 내부 처리 데이터 형식 일치 여부 등을 점검
- 추후 시스템 확장 고려 시, 상호 연동에 문제가 없는 구조로 개발된 것인지 점검
오픈 소스 변경 사항 기록
- 통합되는 오픈 소스 변경 사항을 기록하고 주석 처리
- 변경 사항을 쉽게 추적할 수 있도록 링크를 제공
- 오픈 소스 가이드라인을 조직 차원에서 제공