목록분류 전체보기 (572)
오봉이와 함께하는 개발 블로그
단위 테스트 이번 내용은 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)..
컬렉션 : 중첩을 제거하는 구조화 테크닉 내 코드가 그렇게 이상한가요? 라는 책을 보고 내가 공부한 내용이나 생각한 내용에 대해 작성하는 글이다. 7장 컬렉션 : 중첩을 제거하는 구조화 테크닉을 읽고 생각하는 내용에 대해 적어보겠다. 단, 책 내용 중 별 내용 아니라 판단하면 생략하도록 하겠다. 컬렉션 처리를 캡슐화하기 위 내용을 공부하기 위해서는 선행으로 이전 내용을 알아야 좋을 거 같다. 컬렉션 객체에 대하여 특정 기능을 하는 메서드가 있고, 해당 메서드가 서로 다른 클래스에 중복으로 구현됐을 때 문제를 해결하는 방법에 대해 설명한다. 컬렉션과 관련하여 응집도가 낮아지면 일급 컬렉션 패턴을 사용해 해결할 수 있다. 일급 컬렉션은 컬렉션 관련된 로직을 캡슐화하는 디자인 패턴이다. 클래스에는 아래 두 가..
형식 맞추기 코드 형식을 맞추는 행위는 중요하다. 코드 형식은 가독성을 높이는데 있어 매우 중요하다 생각한다. 우리는 대부분 팀으로 일하기 때문에 팀 내부에서 약속을 정하고 모두 그 규칙에 따르는 등 형식을 맞춰야 같이 일하는데 잡음이 발생할 확률이 적다. 형식을 맞추는 목적 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 책에서 저자는 위와 같이 말한다. 내가 아무리 설명하는 것 보다 위 세 문장으로 정리하는 것이 더 효과적이라 판단..