본문 바로가기
study/Java

클린코드(Clean code) 1장 - 좋은 코드와 나쁜 코드

by 고기만두(개발자) 2022. 9. 4. 21:16
728x90
반응형

https://career-gogimandu.tistory.com/115

 

Java 힙 공간 에러 발생한 배치 성능개선후기

2022.08.19 개발된지 3년이 넘은 이후로 마지막 수정 2019년 초 나 입사 전 그 뒤 전혀 수정 없이 매달 루틴하게 잘쓰던 자료 추출용 정기작업 배치에서 오류가 발생하였다. [문제점] 에러 로그를 보

career-gogimandu.tistory.com

이 사건과,

최근들어 제도 개정으로 수정, 아니 누더기 기우기를 진행 중인 말도 안되는 배치... 때문에

(거의 10년 전 java이전 시절 구체제 로직이 그대로 묻어있고, 가독성이 떨어져서 검증도 너무 하기 힘듦.

연초 제도개정때도 그 이전에도 저 그냥 이거 갈아엎고 새로 짜고 싶다고 수백번 말했는데

여러 사유로 받아들여지지 않고 있는 중;;;)

클린코드에 대해 제대로 공부해보기 위해 책을 구매. (링크에 책 소개)

 

주력언어인 자바를 베이스로 하고 있어 더욱 이해하기 쉬울 것으로 생각


1. 나쁜 코드란 무엇인가?

1) 성능이 나쁜 코드 : 불필요한 연산이 들어가서 개선의 여지가 많은 코드

2) 의미가 모호한 코드 : 이해하기 어려운 코드. 네이밍 != 구현내용.

이런 코드 보고 있으면 헷갈려지는 경우 여러번 목격

3) 중복되는 코드 : 비슷한 내용인데 중복되는 코드. 버그를 유발할 수 있음.

솔직히 나도 내가 짠 거 중에 생각나는 거 몇 개 있는데,

다음에 다시 만나면 꼭 고쳐야지 늘 다짐함. 근데 그게 맘처럼 쉽나...ㅠㅠ

 

 

2. 나쁜 코드는 왜 나쁜가?

1) 깨진 유리창의 법칙 : 계속 나쁜 코드가 생성되게 함.

하나를 기우기 위해 두번 세번 누더기를 붙여본 경험 나도 있음.

2) 생산성 저하 : 그 누더기를 기우는 일은 생산성이 너무 떨어짐.

기술 부채를 만들고, 그 다음 수정하기 더 어렵게 만듦.

나 여기서 또 생각나는 코드 있어 아오ㅡㅡ

3) 그 나쁜 코드 때문에 새로운 시스템을 만들어야 한다 : 옆팀에서 재구축 얘기가 나오는 이유가 이런 것도 있겠지 분명.

그 팀 옆에서 맨날 난리 터지는 거 보고 있다 보면 왠지 소스 안 봐도 알 거 같음.

 

3. 왜 나쁜 코드를 만드는가?

: 내가 계속 갈아엎고 싶다고 골백번 말하고 있는 바로 그 배치를 봇과장님이 전면 재수정 못 하게 하는 이유는

결국 영향도 때문일 것이다.

영향도가 너무 넓다보니, 건드렸다 사고 날까봐 관리자 입장에서는 그게 무서운 거다.

물론 나도 그 마음 이해 못하는 바는 아님..

막내가 내가 짜놓은 거(물론 내 머리 아프게 하는 그 배치는 봇과장님이 만든 게 아니긴 한데)

그렇게 당돌하게 고치겠다고 하면 나라도 당황스러울 듯.

하지만 그 업무 담당자로 운영을 해야 하는 나는 정말 그 배치를 만날 때마다 죽을 것 같다.

검증하는데도 시간이 너무 오래 걸리고, 눈이 빠질 것 같다.

이번처럼 그 배치에 새로 로직 추가하는데 너무 많은 힘이 든다. 검증하는데 이틀 소요됨.


좋은 코드는 위에서 말한 나쁜 코드의 특징과 반대된다.

1. 성능이 좋은 코드

2. 의미가 명확하고 가독성이 좋은 코드

3. 중복되는 내용이 제거된 코드

 

*보이스카우트 규칙 : 오기 전보다 더 깨끗한 코드를 만들자.

=> 일하면서 항상 지금보다 더 깔끔하게 짤 방법 없을까 늘 고민함.

신규 생성을 내가 한 코드일 수록 더더욱 그런듯.

 

728x90
반응형

댓글