Programming

[언그래머] 열번째 아티클_클린 코드 그 애매함에 대하여 (수정)

송코딩 songcoding 2023. 7. 14. 08:00

안녕하세요 여러분~!
언그래머 김송아입니다.
 

눈 깜짝하니 금요일이네요!! 라고 말하기엔 일주일이 꽤나 길었던 것 같습니다.
장마라서 그런가.. 뭔가 하루가 비교적 늘어지는 느낌이 있는 것 같아요! (저만 그런가요?ㅎㅎ)
 
 
어찌되었던 간에! TGIF 한번 외치고 오늘 컨텐츠 시작해볼게요!!

Thanks God It's FRIDAY!!!

금요일은 누가 만든건지 상줘야함(?)

 
 
 
우리가 금요일을 외치는 만큼.
개발자라면 요즘, "모두다 외쳐 0000!" 라고 생각될 정도로.. 모르면 큰일이라도 날 것처럼 난리난 용어가 하나 있죠.
 
 
이름하여,

ㅋ ㄹ ㅋ ㄷ

 
 
 
맞습니다.
클린코드
 
 
어디만 가면 요즘은 클린! 클린! 클린 코드!!! 라고 하죠?
Clean Code.. 클린 코드 해보셨어요? 클린 코드 주요 원칙이 뭐죠?!?! 와글와글... 그..그만😇....
 
개발자이신 분들은 이 용어를 정말 많이 들어보셨을 텐데요,
 

호박고구마 아니고 클!린!코!드! @SNL

 
 
클린 코드(Clean Code)라는 용어를 대부분 책 제목으로 알고 계실 거에요. 아마 서점에서 한번쯤은 보았을 표지입니다.
하~얀 바탕에 허여멀거리(?)한 글자색..ㅎ.. 빛에 비추면 보이는 거 같기도 하고.. 안 보이는 거 같기도 하고..

참고로 똑같이 생긴 "클린 아키텍처" 도서도 있습니다! 둘다 저자가 같구요.
 

@틀린 그림 찾기

 

 

이 책의 저자님은 로버트 C. 마틴이라는 분입니다. "객체 지향 참 쉽죠잉?"이라는 명언을 남기신 분이기도 합니다.

그래서 우리에겐 객체지향의 밥 아저씨(a.k.a 엉클 밥)이라고도 불리고, 객체 지향의 아버지로(아..아빠...?) 자리하고 계시죠.
대체 이 분은 누구시길래.. 저런 명언이자 망언을 할 수 있는거야?! 하실 수 있겠죠.

 

@그리워요 밥 아저씨

 

자, 소개합니다. 별건 아니구요.. 그냥 뭐... 이 저자분은 뭐하시는 분이냐면...

  • C++
  • 자바
  • C#
  • 루비
  • 객체지향
  • 디자인 패턴
  • 그..그만해..
  • UML
  • 애자일 방법론

등 객체 지향 세상의 익스트림 프로그래밍 분야에서 전 세계의 고객들을 이끄는 경험이 풍부한 컨설턴트가 모인 회사 '오브젝트 멘토(Object Mentor)의 창업가이자 대표이기도 합니다. 

엌ㅋㅋㅋㅋ회사 이름이 객체 멘토네요ㅋㅋㅋ 어제까지 알아채지 못하고 이제야 깨달은 1인ㅋㅋㅋㅋㅋㅋ

 

 

아무튼 이 분 덕분에 우리는 객체 지향의 세상 속에 살게 되었으니, 이 분의 책과 활동들이 이 세계의 중요한 바이블처럼 활용되고 있죠!

하지만 이 분은 늘 책에서 반복해서 말하고 있어요.

심지어 나쁜 코드에 대한 스멜을 찾고, 그 휴리스틱을 화려하게 목록으로 작성한 챕터에서 조차도 이런 결론을 내립니다.

 

(중략)
이 장에서 소개한 휴리스틱과 냄새 목록이 완전하다 말하기는 어렵다.
아니, 완전한 목록이 가능하다고도 생각하지 않는다.
여기서 소개한 목록은 가치 체계를 피력할 뿐이다.
...
사실 이 책의 주제이자 목표는 가치이다.
규칙만 따른다고 해서 깨끗한 코드가 얻어지지 않는다.

p.406 [clean code] 중에서

💡여기서 잠깐! 휴리스틱이란

문제를 해결하거나 불확실한 사항에 대해 판단을 내릴 필요가 있을 때,
명확한 실마리가 없을 경우에 사용하는 편의적 발견적인 방법 [위키백과]

즉, 명확하지 않은데 지레짐작으로 문제를 해결하는 방법을 말합니다.

👉🏻 [클린코드] 책에서는 개발자들이 코드에서 임시 방편으로 활용하는 즉, 휴리스틱이 어떤 것들이 있는지 정리해두었습니다!

 

 

여러분, 우리는 진짜 하나의 바이블을 넘어서 거의 내 코드 네 코드.. 갓린코드.. 하고 있진 않은가요?

 

저자분은 "이건 완벽하지 않아.. 하나의 가치 일 뿐이야.." 라고 얘기하고 있는데

오히려 우리는 "최고! 최고!! 클린코드 짱!!!!!! '✨클린코드'=='📚클린 코드 책'이 true 라고 얘기하고 있진 않은가요?

 

 

제가 늘 말씀드리는 얘기. 오늘 또 하게 되네요!

✨하나의 개념을 받아들일 때, 절대 무조건 수용하면 안된다고 하잖아요?

단순히 하나의 책에 나오는 문법과 개념을 저항없이 그대로 따라하는 것은, 그냥 그 책을 따라 코딩하는 것 아닐까요?

 

 

클린 코드 역시 마찬가지입니다. 너무 멋진 책과 내용이라, 많은 추종자들이 있는 것도 알고 있어요!

하지만 여러분들의 논리가 아니라 그저 따라하는 코드를 우린 클린 코드 라고 하긴 힘들 것 같아요.

 

 

특히 현업에 계신 분들은 더 잘 아시겠지만, 그 조직에서의 클린 코드는 사실 그 환경에서 만들어지는 것 아닐까 생각합니다.

 

 

🤔 시행착오는 필요 없어. 

🫢 무조건 이 책이 맞으니까 이대로만 해야 해!

 

이렇게만 생각하고 조직에 무조건적으로 적용해버린다..?

너무 위험하다는 생각 혹시 지금 마음속에 훅- 들어오실까요?

 

 

기본적으로 조직이 가는 방향을 지키고, 그 안에서 책을 참고해서 적용해보면서 팀에 맞는 코드를 같이 만들어간다면!

 

그렇게 만든 코드는 

내 동료가 이해를 잘 할 수 있게 해줄 테고,

우리들의 빠(른)퇴(근)🏃🏻🏃🏻🏃🏻할 수 있게 해줄 테고..

@내마음 네마음 우리마음

 

 

그것이 바로 우리가 클린 코드를 원하는 이유 아닐까요?

 

 

 

 

📚한 업계를 리딩(Leading)하고 있다고 해도 과언이 아닌 책 [클린 코드]📚

 

저 역시 너무 좋아하는 책이고, 꼭 한번쯤 읽어보셨으면 하는 필독서 중에 하나입니다!

그런 책의 지식에 여러분들의 멋진 생각과 고민을 담아주신다면, 저는 그걸 감히 갓-벽한 코드라고 부르겠어요.

(완벽한 코드는 없으니 Better로 합의 보시죠.. 송아 너 T야?)

생각하는 여러분들을 미리 만들어 둔 생각하는 사람

 

 

비가 연일 많이 오네요

오늘 8시에 예약해둔 이 글이 잘려서 업로드 된걸 확인한 제 마음 같지만, 저는 괜찮아요! 하하하하하하하!

그래도 B2C 서비스가 이런 HTTP 500같은 치명적인 오류는 유저가 너무 마음이 아프쟈나.. 제가 QA로 들어가도 될까요... ^^^^^^*



이번 한주도 너무너무 고생 많으셨구요!!

쾌적한 주말 되시구!!! 우린 다음주에 또 만나요💚

 

늘 감사합니다.

김송아 드림

 

 

👆🏻클릭이 될까?