목록이론 (33)
오봉이와 함께하는 개발 블로그
조건 분기 : 미궁처럼 복잡한 분기 처리를 무너뜨리는 방법 아래 작성하는 내용들은 다소 불친절 할 수 있으나, 내가 책을 보고 느낀 내용을 작성하려 한다. 책 내용이 필요한 분은 구글에 검색하여 찾아보심이 좋을 거 같다. 조건 분기가 중첩되어 낮아지는 가독성 이번 장표는 조건 분기가 중첩되어 엄청나게 긴 중첩이 발생한 코드에 대해 어떻게 해결할 수 있는지 알려준다. early retrun을 통해 해결하는 방법이다. switch 조건문 중복 책에서는 마법 스킬 사용을 통해 예시를 들고 있다. 기존 버그없이 구현된 switch 코드가 있고, 해당 switch 코드는 각 n개의 클래스에 나눠서 구현되어 있다. 새로운 스킬이 추가되어 각 n개의 클래스에 모두 추가해줘야 하는데, 문제가 발생한다. 특정 클래스에는..
응집도 : 흩어져 있는 것들 아래 작성하는 내용들은 다소 불친절 할 수 있으나, 내가 책을 보고 느낀 내용을 작성하려 한다. 책 내용이 필요한 분은 구글에 검색하여 찾아보심이 좋을 거 같다. static 메서드 오용 static 메서드를 "잘못" 사용하지 말자는 내용이다. static int add(int amount1, int amount2) { return amount1 + amount2; } SomeClass someVar = OrderManager.add(moneyData1.amount, moneyData2.amount); 위 코드를 예시로 보면 맞을까? amount는 moneyData에 있는데 왜 계산은 OrderManager의 add에서 하는가 어떤 상황에서 static 사용? 그렇다면 책에서..
단위 테스트 이번 내용은 TDD와 테스트 코드 작성하는 방법에 대해 말하는 내용으로 보인다. TDD 경험이 없기 때문인지 사실 TDD의 효용성에 대해서는 공감하지 못하고 있다. 목표가 불확실할 때(도메인에 대해 완벽하게 알지 못하는 경우) 이런 방법론을 통해 개발할 수 있다는 정도만 알고 있는 상황이다. 내가 직접 설계해야할 일이 있다면 그때 공감할 수 있지 않을까 싶다. 깨끗한 테스트 코드 유지하기 저자의 경험으로 깨끗한 테스트 코드의 필요성을 주장한다. 저자는 지저분한 테스트 코드를 작성해서 정성스럽게 작성하지 않아도 테스트 통과가 되기만 하면 된다는 규칙을 팀에 적용한 결과로 실제 비즈니스 코드 발전에 따라 시간이 흐르며 관리 안 되는 테스트 코드를 결국 폐기했다 한다. 내가 느끼기엔 더러운 테스트..
경계 외부에서 개발한 라이브러리나 프레임워크 등을 사용할 때 어떻게 하면 우리 코드에 잘 녹여낼 수 있는지에 대해 설명하는 것으로 보인다. 분량이 많지 않지만 중요한 이야기라 판단하여 글로 남긴다. 외부 코드 사용하기 이번 내용은 특정 라이브러리를 어떻게 사용해야 하는지에 대해 말하고 있다. 책에서는 Map이라는 Java에서 제공하는 라이브러리를 예시로 한다. 특정 함수의 파라미터나 반환 값으로 Map 같은 라이브러리를 넘겨주면 메서드 내부나 반환 받는 값을 통해 Map 클래스에 구현된 메서드들을 사용할 수 있다. 이러면 어떤 문제가 발생하냐면 누구나 이 Map이라는 객체에 접근하여 조작이 가능하다는 말이다. 책에서 문제 해결 방법으로 클래스를 통해 감싸는 방법을 제공한다 public class Sens..
오류 처리 이번 내용은 오류 처리에 관한 내용이다. 책 자체에서 분량이 그렇게 많지 않아 글이 길지는 않을 거 같다. 오류 코드보다 예외를 사용하라 오류 코드보다 예외를 사용하라는 말은 예외 상황에 대하여 조건문(if-else 혹은 switch-case)으로 하지말고, try-catch를 통해 예외를 처리하라는 말이다. 일단 나부터 반성한다. 처음 프로그래밍 공부하던 시절 예외 처리를 조건문으로 하던 버릇이 아직도 남아있어 고치지 못하고 있다. public void sendShutDown() { ... if (CODE_ERROR) { logger.log("!!! error !!!"); } } public void sendShutDown() { ... try { ... } catch(Exception e)..