본문 바로가기
학습내용/Clean Code

[Clean Code] 1장. 깨끗한 코드

by iOS rOar 2023. 3. 17.

코드의 종말이 코앞에 닥쳤다??!!

요즘 ChatGPT에게 일자리를 위협받고 있다... ㅂㄷㅂㄷ

여기서 말하는 코드의 종말일까? 프로그래머가 필요없어지는 세상??

언제 나온 책이길래?? 2013년도다.. 후..

확실한 것은 능력있는 개발자가 아니라면 그럴 수 있다고 생각이 드는건 사실인 것 같다.

물론 내가 능력이 있다는 것은 아니지만...ㅎㅎ 무튼.. 이 책에서는 여러가지 클린한 코드에 대하여 말한다.

글을 읽는 내내 끄덕끄덕였다.

 

코드가 존재하리라

요구사항을 명시하는 작업, 바로 이것이 프로그래밍이다.

앞으로 프로그래밍 언어에서 추상화 수준은 점차 높아질 것이라고 한다.

  • 추상화란 무엇일까?
    추상화란 객체나 데이터의 복잡도를 줄이기 위해 핵심적인 개념이나 기능에 집중하는 것을 말한다.
    추상화를 통해 객체나 데이터를 단순화하고, 해당 개념이나 기능에 집중함으로써 코드의 가독성과 유지보수성을 향상시킬 수 있다.
  • 제대로 명시한 요구사항은 코드만큼 정형적이며 테스트 케이스로 사용해도 좋다고 한다. (어떤 의미인지 잘 모르겠다.)
  • 궁극적으로 코드는 요구사항을 표현하는 언어이다.

나쁜 코드

  • 나쁜 코드로 계속해서 기능을 추가하다 보면 돌이킬 수 없다.
    쓰레기를 치우기 위해 쓰레기를 추가하는 행위에 불과하다는 뜻이다.. 결국 망하는 길로..
    나의 경우에는 어떨지 생각해 보았다. 사실 아직 나는 좋은 코드와 나쁜 코드를 구분할만큼 시야가 넓지 못한게 사실이다.
    다만, 비슷한 경험이 있다면 반복되는 코드들을 재사용이 편리하게끔 만들지 않아서 고생해본 기억이 있다.
  • 우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다.
    이거 멋있다. 르블랑의 법칙.. 나중은 결코 오지 않는다.(뼈 맞은 기분이었다. 맞다 안했다.)

나쁜 코드로 치르는 대가

  • 나쁜 코드가 쌓일수록 팀의 생산성은 떨어진다.
    만약 내가 새로 보게되는 프로젝트가 이러한 경우라면, 구조 파악부터 쉽지 않을것이다.
    생산성이 떨어져서 인원을 더 투입한다고 해도 나쁜 코드는 나쁜 코드를 만들어 낼 뿐인것이다.
    악순환의 반복..
  • 몇 시간으로 예상한 업무가 몇 주로 늘어진 경험이 있는가?? 한 줄만 고치면 되리라 예상했다가 모듈을 수백 개 건드린 경험이 있는가?
    아직까지 나는 이정도 수준에 미치지 못했다. 여기서 말하는 나쁜 코드 == 결합도가 높은 코드를 말하는 거겠지.
  • 관리자가 일정과 요구사항을 강력하게 밀어붙이는 이유가 그들의 책임이기 때문이라면, 좋은 코드를 사수하는 일은 개발자의 책임이다.
  • 우아하고 효율적인 코드... 논리가 간단해야 버그가 숨어들지 못한다.
    의존성을 최대한 줄여야 유지보수가 쉬워지고, 깨끗한 코드는 한 가지를 제대로 한다.
    나쁜 코드는 너무 많은 일을 하려 애쓰다가 의도가 뒤섞이고 목적이 흐려진다.
    여기서는 단일 책임의 원칙을 말하는 것 같다.
  • 여러 기능을 수행하는 객체나 메서드가 있으면 나누자.

1장을 읽고 느낀점...

객체지향 프로그래밍과 이를 위한 SOLID원칙은 정말 중요하다.

이런 근본을 먼저 챙겨야 한다.

아키텍처나 디자인 패턴은 해가 지날수록 계속해서 쏟아져 나온다.

하지만 모든것은 이 객체지향 프로그래밍 이라는 베이스에서 시작된다.

당장 급해서 새로운것만 받아들이는것..(물론 중요하다.) 반성해야지.

하지만 근본을 공부하지 않고 금이 가있는 건물에 층만 높히고 있었다.