❗어떤 문제가 있었는지
- 사전캠프 퀘스트 진행
- 가위바위보 코딩
- 단순 구현단계 까지는 생각한 대로의 결과값을 도출하는 과정을 받아냈지만, 리펙토링 과정에서의 어려움을 겪음
- 계산기 만들기 (진행중)
- 기본 계산기 형태의 코드 구성은 완료 하였으나 추가적인 기능 부여 과정에 있어서의 코드 구성에 어려움이 있었음
- 가위바위보 코딩
📝 내가 시도해본 것들
- 계산기 만들기
- ArrayList를 활용한 계산 이력 정보를 배열로 생성 및 기록
💡어떻게 해결했는지
👍 무엇을 새롭게 알았는지
- Java 코드 컨벤션
- 컨벤션을 지켜야 하는 이유
- 가독성 향상
- 유지보수성 증가
- 협업 효율성 항상
- 일관된 코드 스타일
- 버그 발생 가능성 감소
- 코드 리뷰와 자동화 도구와의 연계
- Coding Convention vs Clean Code
- Coding Convention(코딩 컨벤션)
: Coding Convention은 개발자가 따라야 할 일련의 규칙과 스타일 가이드를 의미. 주로 코드의 형식과 구조를 표준화하는 데 중점을 두며, 팀 내에서 일관된 코딩 스타일을 유지하기 위한 규칙. 코드의 가독성과 유지보수성을 높이는데 목적이 있음- 특징
- 코드의 형식을 규정
- 들여쓰기, 공백, 괄호 위치, 주석 스타일, 함수 및 변수 명명 규칙 등
- 일관성 확보
- 같은 프로젝트 내 모든 코드가 동일한 스타일을 유지하여 코드 리뷰와 협업이 쉬워짐
- 주로 도구에 의해 체크
- Linter나 포매터 같은 자동화 도구로 컨벤션 준수 여부를 검사할 수 있음
- 코드의 형식을 규정
- 예시)
자바 코딩 컨벤션 :- 변수명은 소문자로 시작, 클래스명은 대문자로 시작.
- 한 줄에 너무 많은 코드를 작성하지 않음.
- 중괄호는 새로운 줄에 작성(K&R 스타일)
- 특징
- Clean Code(클린 코드)
: Clean Code는 코딩 컨벤션의 일부분을 포함하지만, 그보다 더 넓은 개념으로 코드의 품질과 설계 철학에 관한 것.
가독성, 유지보수성, 효율성, 명료성을 모두 고려한 좋은 코드를 작성하는데 중점을 둠.
코드 자체가 직관적이고 명확하게 작성되도록 하는 것이 목표- 특징
- 가독성
- 다른 개발자가 코드를 쉽게 이해할 수 있어야 함
- 간결성
- 불필요한 코드나 복잡성을 제거하여, 코드는 간단하고 명확하게 유지
- 함수 및 클래스 설계
- 한 함수는 하나의 역할만 수행해야 하고, 클래스도 단일 책임 원칙(SRP)을 준수해야 함
- 의도 전달
- 함수나 변수의 이름만으로도 그 역할과 의도를 명확히 알 수 있어야 함
- 주석 최소화
- 코드 자체가 의도를 설명해야 하며, 불필요한 주석은 피함. 대신, 중요한 부분이나 복잡한 로직에서만 주석을 사용
- 가독성
- 예시)
클린 코드 원칙 (로버트 C. 마틴의 Clean Code에서 제시된 예시) :- 작고 단순한 함수 : 하나의 함수는 한 가지 역할만 수행해야 함.
- 명확한 변수명 : var1, temp 같은 추상적 이름이 아니라 totalCost, userEmail 같은 의미 있는 이름을 사용
- 중복 제거 : 중복된 코드를 줄이고, 코드의 재사용성을 높임
- 짧고 간결한 코드 : 불필요한 조건문이나 반복문을 제거하고, 코드를 최대한 간결하게 유지
- 특징
- 차이점 요약
- Coding Convention(코딩 컨벤션)
- 컨벤션을 지켜야 하는 이유
| 항목 | Coding Convention | Clean Code |
| 초점 | 코드의 형식과 구조 (스타일, 명명 규칙) | 코드의 품질과 설계 (가독성, 효율성) |
| 목적 | 일관된 코딩 스타일을 유지 | 코드의 직관성, 유지보수성, 재사용성 향상 |
| 주로 다루는 부분 | 들여쓰기, 공백, 변수/함수 이름, 주석 등 | 함수 설계, 명확한 이름, 단순한 구조 |
| 검사 방법 | Linter, 포매터 같은 자동화 도구 | 코드 리뷰, 소프트웨어 설계 원칙 |
| 팀 협업 | 코드 스타일을 통일하여 협업 효율성 향상 | 협업 시 코드를 쉽게 이해하고 유지보수 가능 |
'내배캠 끄적끄적 > Today I Learned' 카테고리의 다른 글
| 250902 TIL (0) | 2025.09.02 |
|---|---|
| 250901 TIL (2) | 2025.09.01 |
| 250828 TIL (3) | 2025.08.28 |
| 250827 TIL (6) | 2025.08.27 |
| 250826 TIL (4) | 2025.08.26 |