일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- circuitbreaker
- SpringBoot
- bean-validator
- Not Null constraint failed
- n poem
- Java
- 쿼리셋합치기
- django
- GraphQL
- 주니어개발자
- resilience4j
- bulk_create
- 마이크로서비스패턴
- IOC
- 함수형프로그래밍
- 프로젝트설정
- API문서화
- Spring
- 일급함수
- 운영체제
- 상속모델
- 객체비교
- 좋은코드란
- 토이프로젝트
- Npoem
- 2차원배열 정렬
- 컨트리뷰팅
- circular dependency
- DI
- cannot import name
- Today
- Total
코딩 하는 가든
[생각 정리] 좋은 코드란 본문
좋은 코드란 무엇인가
멋쟁이 사자처럼을 하던 시절 우연히 만난 대장 이두희 님이 이런 말을 한 적이 있다.
'좋은 코드란 무엇일까요? 좋은 코드란 실제로 유저들이 사용하는 코드라고 생각해요. 학교 과제로 아무리 잘 짠 알고리즘과 자료구조 코드도 사용하는 유저들이 없다면 쓸모없지 않을까요?'
사실 맞는 말이다. 아무리 잘 짠 코드여도 세상에서 쓰이지 않는 코드라면 무슨 가치가 있겠는가? 하지만 그 당시 느끼기로는 두희님은 이 말을 어떠한 '서비스' 에 초점을 두고 한 말이었다고 생각한다. 하지만 꼭 서비스화 되어 실제 유저들에게 사용되지 않더라도 가치 있는 코드는 충분히 많다. 어떤 코드는 지식을 전수하기 위해 교육을 목적으로 작성되었을 것이다. 또 어떤 코드는 인류 기술의 진보를 위한 연구의 목적으로 작성되고 있을 것이다. 그렇기에 나는 이두희 님의 실제로 유저들이 사용하는 코드라는 대목에서 '그렇다면 내 코드의 사용자는 누구인가?' 라는 생각을 해보게 되었다.
내 코드의 사용자는 내가 만든 서비스의 유저뿐만 아니라 내 코드를 보고 사용하는 모든 이 라고 생각한다. 이는 함께 일하는 동료 개발자는 물론, 깃 허브 등에 올려둔 오픈 소스를 열람하는 모든 사람들이 포함될 것이다.
본인은 현재 백엔드 인턴 업무를 하고 있으며 선임 개발자에게 코드 리뷰를 받으며 개발을 진행중이다. 나름 클린 한 코드를 작성한다고 생각해왔지만 업무 초기 코드 리뷰를 거치며 많이 부족하다는 생각이 들었고 내가 코드 리뷰를 진행하며 느낀 좋은 코드는 남이 볼 때도 내가 짠 코드마냥 술술(까진 아니어도) 잘 읽을 수 있는 코드여야 한다는 것이다. 이 부분은 현재 함께 일하는 동료 개발자 뿐 아니라 추후 내가 짠 코드를 유지 보수 할 다음 개발자를 위해서도 굉장히 중요한 부분인 것 같다.(이전 코드를 잘 알아볼 수 없어서 실제로 다시 짜는 모습을 보았기 때문에...) 실제로 잘 짠 코드를 보면 별 다른 질의를 할 필요 없이 코드 그 자체만으로 의사소통이 되는 느낌이 든다. 아 물론 엣지케이스가 없는 빈틈없는 로직은 기본 덕목 일 것이다.
오픈 소스의 경우 회사 업무와는 다르게 소통할 수 있는 방법이 텍스트로 밖에 없을 텐데 아무래도 대면으로 하는 의사소통 보다는 원활하지 않을 것이다. 이런 때에 의사소통을 최소한으로 줄일 수 있는, 코드만으로도 이해가 잘 가는 코드가 필요할 것이다.
물론 내 코드의 사용자는 프론트 개발자도 포함이다. API를 요청하여 응답을 받아야 하는 클라이언트도 약속된 규칙 안에서 보기 좋은 구조로 응답을 받아야 할 것이다.
매우 두루뭉술 하지만 정리를 해 보자면 내가 생각하는 좋은 코드란 코드 그 자체로도 의사소통이 되는 가독성이 좋은 코드를 의미하는데, 이는 뭐 사실 생각해 볼 것도 없이 당연한 이치들이다. 하지만 머리로만 생각하고 있던 것보다 처음으로 업무를 하며 직접 몸으로 부딪히며 체감했던 이 순간의 생각을 기록해 보고 싶어서 이 글을 작성하게 되었다.
'주저리주저리' 카테고리의 다른 글
코알못이 개발자가 되기 까지 - (3) (9) | 2020.12.29 |
---|---|
코알못이 개발자가 되기 까지 - (2) (2) | 2020.12.29 |
코알못이 개발자가 되기 까지 - (1) (17) | 2020.12.29 |
[생각 정리] 학생 개발자의 6개월 개발 인턴 회고 (26) | 2020.06.27 |
블로그를 시작하며... (1) | 2020.03.09 |