본문 바로가기

Read Book/CleanCode9

CleanCode 9장 단위 테스트 과거 대다수의 프로그래머들은 TDD(Test Driven Development)라는 개념을 몰랐으며 단위 테스트란 자기 프로그램이 '돌아간다'는 사실만을 확인하는 일회성 코드에 불과했다. 지금에 와서는 애자일과 TDD 덕택에 단위 테스트를 자동화하는 프로그래머들이 많이 늘어났고 계속해서 늘어나는 추세다. 이번 장을 통해 테스트 케이스를 잘 작성하는 방법에 대해 알아보자. TDD 법칙 세 가지 TDD는 실제 코드를 짜기 전에 단위 테스트를 작성하라고 요구할것이다. 다음 세 가지 법칙을 살펴보자. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위 세.. 2022. 11. 16.
CleanCode 8장 경계 우리가 프로그램을 만들 때에 모든 라이브러리들을 직접 개발해 사용하는 경우는 드물다. 때로는 오픈소스를 이용하고 , 때로는 외부에 솔루션 패키지들을 사고, 때로는 사내 다른 팀이 제공하는 컴포넌트를 사용한다. 우리는 이 외부 코드를 어떤 식으로든 우리 코드에 깔끔하게 녹여내야 한다. 해당 장에서는 소프트웨어 간의 경계를 깔끔하게 처리하는 기법과 기교를 알려준다. 경계란? 우리가 만든 코드와 외부 패키지의 코드가 만나는 지점 ex) 외부 API를 호출한다면 해당 API를 호출하여 셋팅하고 사용하는 지점 외부 코드 사용하기 인터페이스 제공자와 사용자는 원하는 바가 다르다. 제공자는 최대한 많은 곳에 적용할 수 있기를 바라고 사용자는 자신이 원하는 요구대로 인터페이스가 집중되길 원한다. 서로 원하는 바가 다르.. 2022. 11. 9.
CleanCode 7장 오류 처리 깨끗한 코드를 작성하는 방법을 다루는 책에서 오류 처리를 논하는 장이 있어 이상할 수도 있다. 그러나 오류처리는 깨끗한 코드를 작성하는 것과 연관성이 있다. 오류 처리는 프로그램에 반드시 필요한 요소중 하나이기 때문이다. 어떠한 변수로 인해 로직이 실패할지 모르기 때문이다. 무언가 잘못될 가능성은 언제나 존재한다. 잘못을 바로 잡을 책임은 프로그램을 구현한 우리 프로그래머에게 있다. 오류 처리는 모든 로직에 포함된다고 해도 과언이 아니다. 오류 처리 코드를 잘 작성하지 못해 여기저기 흩어진다면 실제 코드가 하는 일을 파악하기가 힘들어져 프로그램 논리를 이해하는데 방해된다. 이번 7장에서는 우아하고 고상하게 오류를 처리하는 기법과 고려 사항 몇 가지가 소개된다. 오류 코드보다 예외를 사용하라 과거에는 예외.. 2022. 11. 6.
CleanCode 6장 객체와 자료구조 객체와 자료구조 자료 추상화 자료/객체 비대칭 디미터 법칙 자료 전달 객체 이 글을 읽기 전에 추상화의 개념을 간단하게 알아보자. 나무 위키에서는 추상화를 아래와 같이 정의했다. 컴퓨터과학에서 추상화는 어떤 종류의 대상들에 대해 그것이 가져야 할 핵심적인 특징들을 가지는 모델을 만드는 것이다. 예를 들어보자면 쇼핑몰에서는 회원에게 더 좋은 서비스를 제공하기 위해서는 고객의 정보가 필요하다. 회원의 정보는 이름, 주소, 휴대폰 번호, 성별 등... 이 있을 수 있다. 이때에 정보라는 범위가 모호하므로 위의 정보 외에도 직장, 취미, 특기, 음식, 이상형까지 포함할 수 있지만 회원 정보로는 필요하지 않다. 그렇기에 이러한 불필요한 정보들을 제거함으로써 중요한 공통점들만 남기는 것도 추상화라고 할 수 있다. .. 2022. 10. 5.
CleanCode 5장 형식 맞추기 형식 맞추기 형식을 맞추는 목적 적절한 행 길이를 유지하라 가로 형식 맞추기 팀 규칙 누군가 내 코드를 봤을 때 전문가라는 인상을 심어줄 수 있다면 얼마나 좋을까. 더 나은 코드를 작성하기 위해, 다른 프로그래머가 봤을 때 더 나은 가독성을 위해서는 끊임없는 고민과 노력이 필요한 것 같다. 회사에서 일한다면 회사에서 정한 규칙에 따라서, 개인이라면 개인이 정한 규칙에 따라서 일관성 있는 코드를 작성해야 한다. 그렇다면 일관성 있는 규칙을 세우기 위해서 무엇을 중요시해야 하는지 알아보자. 형식을 맞추는 목적 우리는 한가지를 분명히 짚고 넘어가야 한다. 우리 프로그래머들에게 코드란 의사소통의 일환이다. 그렇기에 코드 형식은 아주 중요하다는 것이다. 코드 형식을 맞추는 것이 개발자들의 일차적인 의무이다. 어쩌.. 2022. 9. 24.
CleanCode 4장 주석 주석 주석은 나쁜 코드를 보완하지 못한다. 코드로 의도를 표현하라 좋은 주석 나쁜 주석 "나쁜 코드에 주석을 달지 마라. 새로 짜라." -브라이언 w. 커니핸, P.J 플라우거 잘 달린 주석은 그 어떤 정보보다 유용하다. 그러나 우리에게 프로그래밍 언어를 치밀하게 사용해 의도를 표현할 능력이 있다면 주석은 필요 없다. 그러나 코드로 모든 의도를 표현하지 못해 때때로 주석을 사용하게 된다. 코드에 모든 생각을 담지 못한다면 그것은 자신에게 표현력이 부족하다는 것이다. 모든 진실은 코드에 담겨있다. 그렇기에 주석은 반가운 손님이 아니다. 주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 이유는 코드만으로 모든 것을 말하지 못하기 때문이다. 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가, 주석이.. 2022. 9. 19.