728x90
✨ 이 글은 [ 코드프레소 Java 웹 개발 체험단 활동 ] 내용입니다 ✨
💜 코드프레소 이러닝 강의 수강 중 - SW 유지보수성 향상을 위한 Clean Code 💜
😎 아래의 링크를 통해 프리미엄 IT 교육 서비스, 코드프레소를 확인해보세요 😎
문학적 프로그래밍
- Donal Knuth에 의해 주창된 개념이다
- 코든느 사람이 읽도록 만들어지는 것이 우선이다
- 문학 작품을 읽는 것처럼 코드를 읽을 수 있도록 만들어져야 한다고 함
- 프로그래밍이란 컴퓨터가 어떤 동작을 하기 원하는지 "사람에게 설명" 하는 행위이다
문학적 프로그래밍과 Formatting
Code Formatting 이란?
- Code Formatting은 코드의 가독성과 이해도를 높여주는 일련의 작업이다
- 수직적 Formatting 원칙과 수평적 Formating 원칙으로 분류된다
수직적(Vertical) Formatting
- 코드의 위에서 아래로 진행된 흐름과 관련된 코드 작성 규칙이다
- 코드 라인간의 간격, 밀접한 관계를 갖는 코드 간 그룹화 등이 포함된다
수평적(Horizontal) Formatting
- 하나의 코드 행에서 왼쪽과 오른쪽으로 진행된 흐름과 관련된 코드 작성 규칙이다
- 들여쓰기, 코드 간 간격, 코드 행의 넓이 등이 포함된다
Clean Formatting
- Formatting은 중요하다
- 코드의 동작에 영향을 미치지는 않지만, 그렇다고 무시해서는 안된다
- Formatting 만 변경되어도 코드의 가독성은 향상된다
- 조직 내 Formatting 규칙을 정하고 반드시 모두가 그 규칙을 따라야 한다
- 언어 별 Style Guide에는 Formatting이 반드시 포함되어 있다
- Formatting만 변경되어도 코드의 가독성은 향상된다
Clean Formatting의 확인
- 코드 리뷰
- 코드 리뷰를 통해 약속된 규칙의 위반 사항들을 체크해야 한다
- 정적 분석
- 코드 Style을 체크해주는 정적 분석 도구를 통해 위반 검출을 시스템화 한다
- 일부 툴 들은 설정을 통해 조직 내에서 원하는 규칙을 점검해주기도 한다
- CppCheck
- Check Style
- xLint
수직적 Foramtting
수직적 Formatting의 목표
- 수직적 Formatting은 Enter 같은 개행 문자를 이용하여 Formatting 하는 것을 의미한다
- 마치 신문기사처럼 위에서 아래로 쉽게 읽혀 나갈 수 있는 것을 목표로 한다
추상화의 수준 순서로 코드를 배치한다
- 에세이의 작성 순서
- 제목
- 요약
- 큰 그림
- 다수의 세부 내용
- 코드 또한 에세이의 순서처럼 고차원에서 저차원 함수로 작성한다
서로 다른 개념은 분리한다
- 서로 다른 개념은 빈 행을 사용하여 분리한다
- 글의 문단을 나누듯이 코드의 개념을 분리한다
유사한 개념은 모아 놓는다
- 개념적으로 유사한 내용은 빈 행을 사용하지 말고 붙여서 작성한다
관계 있는 내용은 가까운 행에 작성한다
- 관련 있는 메소드들은 가까이 배치한다
- 코드를 읽기 위해 여러 번의 Jump를 하는 것을 방지한다
- Method를 추가할 때는 시간적 순서가 아닌 논리적인 관련성에 따라 배치해야 한다
수평적 Formatting
수평적 Formatting의 목표
- 수평적 Formatting은 코드 한 줄에 대해서 Formatting 하는 것을 의미한다
- 좌우 횡스크롤링 없이 코드를 읽을 수 있어야 한다
- 코드 한 줄을 스크롤의 이동 없이 볼 수 있는 것을 목표로 한다 (약 80자)
- 최근에는 모니터의 크기가 커져 100자~120자도 괜찮다
수평적 Formatting의 전략
들여쓰기를 적극적으로 활용한다
- 들여쓰기는 관련 있는 개념들을 논리적인 그룹으로 묶어서 가독성을 향상 시킨다
- 일부 언어는 들여쓰기가 필수적이다 -> Python
한 줄의 긴 코드를 여러 줄의 짧은 코드로 분리한다
- 수평 스크롤링 없이 코드를 읽고 이해할 수 있어야 한다
- 대부분의 Style Guide에 수평 최대 권장 글자 수가 존재한다
- Google Java : 100글자
- PEP8 : 72글자
수평 정렬은 중요하지 않다
- 수평 정렬은 해도 상관 없으나 굳이 필요하지는 않다
- 오히려 이후 수정 시 추가 작업이 필요할 가능성이 높다!
Summary : Clean Formatting
- 좋은 코드는 문학 작품과 같이 읽을 수 있어야 한다
- Formatting은 동작에는 영향을 미치지 않으나, 가독성에는 크게 영향을 미친다
- Formatting은 어렵지 않게 할 수 있고, 그에 비해 가독성이 엄청 좋아지는 편이다
- 조직 내 규칙을 정해야 하고, 모든 개발자는 규칙에 따라 Formatting을 해야 한다
- 코드 리뷰와 정적 분석 도구를 활용하여 Formatting을 지속적으로 확인해야 한다
728x90
'코드프레소 체험단 > Clean Code' 카테고리의 다른 글
[SW 유지보수성 향상을 위한 Clean Code] Clean Code를 위한 Code Refactoring (0) | 2022.01.24 |
---|---|
[SW 유지보수성 향상을 위한 Clean Code] Clean Control Structure (0) | 2022.01.24 |
[SW 유지보수성 향상을 위한 Clean Code] Clean Comment (0) | 2022.01.24 |
[SW 유지보수성 향상을 위한 Clean Code] Clean Method (0) | 2022.01.24 |
[SW 유지보수성 향상을 위한 Clean Code] Clean Naming (2) (0) | 2022.01.24 |
댓글