Chapter 3 입출금 내역 분석기 확장판 - 다양한 형식, 예외 처리, 빌드 도구

도서 개발 공부/Real-World Software Development 2021. 2. 27. 23:22

5. 다양한 형식으로 내보내기 이전 단계에서 개방/폐쇄 원칙에 따라 검색 기능을 구현했다. 그 다음 과제는 입출금 목록의 요약 통계를 텍스트, HTML, JSON 처럼 다양한 형식으로 내보내도록 하는 것이다. 우선 도메인 객체의 형식을 정해야 한다. 여기서 도메인 객체란 비즈니스 문제를 분석하여 나오는 객체를 뜻한다. 입출금 내역 분석기에서는 거래 내역인 BankTransaction이 도메인 객체였으며, 이번 문제에서는 요약 통계가 도메인 객체가 될 것이다. 이 책에서는 다음의 4가지 도메인 객체를 소개한다. 숫자 거래 내역 금액의 합을 계산하는 것 처럼 어떤 연산의 반환 결과가 필요한 경우가 있다. BankStatementProcessor클래스의 calculateTotalAmount() 메소드 처럼 간..

Article Thumbnail
Chapter 3 입출금 내역 분석기 확장판 - 개방/폐쇄 원칙, 인터페이스,API

도서 개발 공부/Real-World Software Development 2021. 2. 25. 23:45

1. 프로젝트 목표 2장에서 만든 입출금 내역 분석기의 기능을 확장하게 된다. 현재 분석기의 기능이 상당히 제한적이기 때문에, 다양한 종류의 입출금 내역을 검색하고, 여러 포맷을 지원, 처리하며, HTML 등의 형식으로 리포트를 나타낼 수 있도록 기능을 추가한다. 이 장에서 추가할 내용은 다음과 같다. 특정 입출금 내역을 검색할 수 있는 기능. (ex. 주어진 날짜 범위, 특정 범주) 검색 결과의 요약 통계를 텍스트, HTML 등 다양한 형식으로 제작 2. 개방/폐쇄 원칙(Open-Closed Principle) 개방/폐쇄 원칙의 정의를 알아보기 전에 입출금 내역 분석기에 기능을 추가하는 상황을 예시로 들어 이해해보자. 먼저 입출금 내역을 검색하는 기능을 추가할 것이다. 기존 분석기에 없던 새 기능을 추..

Chapter 2 입출금 내역 분석기(2) - 단일 책임 원칙, 응집도와 결합도, 테스트

도서 개발 공부/Real-World Software Development 2021. 2. 23. 17:28

4. 단일 책임 원칙(Single Responsibility Principle, SRP) 지난 번에 KISS 원칙을 토대로 입출금 내역 분석기를 간단히 구현했지만 두가지 안티패턴에 봉착했다. 그 중 하나가 모든 기능을 수행하는 거대한 클래스가 만들어지는 문제인 갓 클래스 안티패턴이었다. 이를 해결하기 위한 원칙이 단일 책임 원칙이다. 단일 책임 원칙은 다음과 같은 간단한 정의로 나타난다. 단일 책임 원칙이란 하나의 클래스는 하나의 기능만 책임져야 한다는 원리이다. 더 나아가 클래스가 바뀌는 이유는 오직 한가지여야 한다. 이 원칙은 메소드에도 적용될 수 있으며, 이 원칙을 적용하면 코드의 유지,보수가 더 용이해진다. 우선 코드를 이해하는 것 자체가 쉬워질 것이다. 각각의 기능을 가진 클래스들을 한눈에 파악..

Article Thumbnail
Chapter 2 입출금 내역 분석기(1) - KISS 원칙, SRP 원칙

도서 개발 공부/Real-World Software Development 2021. 2. 21. 23:24

1. 프로젝트 목표 입출금 내역을 분석하는 프로그램이 필요하다. 이 거래 내역은 텍스트 파일에 저장되어있으며 CSV 형식으로 모든 거래 내역이 기록되어있다. 거래 내역 예시 25-12-2020,-100000,OutPackSteakHouse 27-12-2020,-5000,Daitseo 30-12-2020,800000,Salary 2-1-2021,-10000,CotteCinema 이처럼 날짜, 거래금액, 거래 설명의 순서를 가지고 CSV 형식으로 되어있다. 이때 CSV 형식(Comma-seperated Values)이란 콤마로 데이터가 분리되어있는 데이터 형식을 의미한다. 프로그램에서는 쉼표를 토큰으로 하여 파일의 한 줄 한 줄을 파싱해서 데이터로 사용할 것이다. 2. KISS 원칙 KISS 원칙은 "Kee..

Chapter 1 - 이 책을 고른 이유와 공부 목표, 계획, 방법

도서 개발 공부/Real-World Software Development 2021. 2. 20. 22:48

1. 이 책을 선택한 이유 학교 전공 과목이었던 객체 지향 프로그래밍을 통해 자바와 OOD에 대해 배웠지만 그 사용에 대해 어느정도 부족함을 느꼈고, 수업에서 배운 지식과 실제 개발 환경에서 쓰일 지식의 괴리에 대해 걱정이 들었다. 이러한 부분을 채우고자 한빛미디어의 「실전 자바 소프트웨어 개발」을 구매하여 독학할 계획을 세운다. 이 책을 선택한 이유는 다음과 같다 -1. 실전에서 쓰일법한 프로젝트를 배움으로써 실제 개발 환경에 대한 감을 잡기 위해 -2. 현재의 자바 지식보다 높은 수준의 지식과 문법을 배우기 위해 -3. 수업에서 배운 객체 지향 원칙을 복습하고, 이 원칙들이 실제에서 어떻게 쓰이는지 정확히 알기 위해 -4. 프로젝트 공부를 통해 요구조건 분석에서 개발에 이르는 각 단계를 직접 체험해보..

Article Thumbnail