Clean Code - 나쁜 코드,좋은 코드

Jenny·2021년 8월 7일
1

안녕하세요 ~!!
이제 본격적으로 Clean Code 2장 의미 있는 이름 짓기!! 챕터로 왔어요 ㅎㅎ(아직 갈 길이 멀다는 ㅠ)

나쁜 코드

나쁜 코드란 무엇인가?? 나쁜 코드는 코드를 보면서 음.. 음? 음! 이라는 표현이 얼마나 많이 나오냐 라는 기준으로 하네요!! 나쁜 코드를 보면서 의미를 모르겠고 이해하기 어렵다는 것을 나쁜 코드라고 해요

그럼 나쁜코드는 무엇인가?

성능이 나쁜 코드 : 불필요한 연산이 들어가서 개선의 여지가 있는 코드
성능이 나쁜 코드란 불필요한 연산과 코드 및 변수들이 있어 여겨지고 난방되어있는 코드라고 해요 ㅎㅎ
의미가 모호한 코드 : 이해하기 어려운 코드 및 네이밍과 그 내용이 다른 코드
의미가 모호한 코드 같은 경우는 함수의 네이밍과 별개로 실행 방향이 다른 코드를 말해요 저는 setInitLayout() 이라는 Method를 지었지만, 그 안에 레이아웃을 구현하는 코드와 별개로 데이터 연산 및 내용이 다른 코드들이 들어갈 수 있어요. 그렇게 된다면 다른 개발자들이 어?? 이건 Layout을 구현하는 메소드가 아닌가?? 라는 생각이 들 수 있게 방향성을 제시해주게 돼요
중복된 코드: 비슷한 내용인데 중복되는 코드들은 버그를 낳는다.
이말은 즉 중복되는 코드로 인해 버그를 일으킬수 있습니다. 중복을 최소한으로 줄이며, 버그를 줄이는것이 Clean Code라 생각합니다 ^^

그럼 저희가왜 나쁜 코드짜게 될까요??

일정이 촉박해서
일정 안에 새로운 기능을 완성해야 하지만, 그 일정안에 코드를 생각하며 Refactor할 시간이 촉박하기 때문입니다.

많은 사례가 있지만 저 같은 경우는 이번 '프로젝트를 통해' 많은 것을 느꼈어요 5개월 안에 App를 구현해야 했고, 그 기간에 많은 기능을 구현해야 했어요. 그렇기 때문에 더욱 코드를 섬세히 살펴볼 수 없었으며, 조금 더 되짚어 나갈 수가 없어 나쁜 코드를 구현하게 되었어요. 후반부가 들어가 많은 기능들이 구현하게 돼서부터 일정의 압박감이 없어져 지난 코드들을 보며 Refactor을 하며, 코드를 수정했어요. ㅎㅎ 이렇게 코드를 보며 생각하는 시간이 많아지다 보니 조금이나마 Code가 명확해지며 Clean Code로 구현할 수 있었으며, 읽기가 수월했어요

- 클린 코드 -

이제 Clean Code에 대해 알아봅시다!!

Clean Code에 여러 개발자들분에 사례에서 비아네 스트롭스트룹(c++창시자)분께서 이렇게 말씀하셨어요 ^^ "깨끗한 코드는 한 가지를 제대로 한다."
또 그래디 부치(객체지향 대가)개발자 분께서 "깨끗한 코드는 잘 쓴 문장처럼 읽힌다" 라고도 말씀하셨네요!!
그럼 깨끗한 코드는 무엇일까요?? "깨끗한 코드는 단순하고 직접적이어야 한다"라고 생각할 수 있겠네요

- 클린코드
- 성능이 좋은 코드
- 의미가 명환한 코드 : 가독성이 좋은 코드
- 중복이 제거된 코드 
  • 성능이 좋은 코드
    성능이 좋은 코드는 어떠한 기능을 수행할 때 성능이 좋은 것을 뜻합니다!! 코드를 구현할 때 복잡하게 구현하는 것보다 단순하게 처리하며, 효율 성 있게 구현하는 것일 말하는 것 같아요 ^^

  • 의미가 명확한 코드
    의미가 명확한 코드는 변수 네이밍, 함수 네이밍, 클래스 네이밍, 프로토콜 네이밍 등의 의미가 명확한 코드를 말하는 거예요 실제 코드는 자기 자신만 보는 것이 아니라 협업을 하면서 팀원분들과 함께 보게 될 것이기에, 팀원분들이 알기 쉽게 또는 읽기 쉽게 코드를 구현하는 것이 가장 중요해요. 그러기 위해서는 의미가 명확한 네이밍을 선정하였는지? 함수 네이밍은 그 함수의 기능의 맞게 네이밍을 선정하였는지에 가장 중요하다고 생각해요 ^^

  • 중복이 제거된 코드
    중복이 제거된 코드 이것은 전에 나쁜 코드에서 중복이 많을수록 나쁜 코드라고 말씀했듯이 중복이 제거된 코드일수록 클린 코드에 속해져요, 중복이 제거되며 그 코드가 명료하게 구현되었는지 그것이 Keep Point👍

지금 까지 나쁜 코드와 좋은 코드에 대해 알아 보았습니다 ^^ Clean Code라는 책을 읽으면서 저에 코드를 되짚어 볼수 있는 계기가 되었으며, 나쁜 코드를 구현하지 않기위해 하지 말아야할 행위를 알게되었어요 ^^ 다음에는 의미 있는 이름에 대해 한번 알아 볼게요!! 혹시 오타 및 궁금한 사항 있으시면 댓글 부탁 드려요!!

profile
"Jenny 있게 iOS 개발을 하며 대체 불가능한 인재가 되자"

0개의 댓글