EnumMap으로 성능 개선하기: 로또 게임 TDD 리팩토링 여정
요약 Next-step의 “TDD, 클린 코드 with Java “ 과정 중 로또 게임 미션을 통해 TDD와 클린코드에 대해 학습한 내용입니다. 이 글의 목적 이 글을 통해 스스로 어떤 부분이 개선 되었는지를 인식하는 것이 첫 번째 목표이고, 이 경험을 공유하는 것이 두 번째 목표입니다. 상세한 목적은 자동차 경주 미션에서 확...
요약 Next-step의 “TDD, 클린 코드 with Java “ 과정 중 로또 게임 미션을 통해 TDD와 클린코드에 대해 학습한 내용입니다. 이 글의 목적 이 글을 통해 스스로 어떤 부분이 개선 되었는지를 인식하는 것이 첫 번째 목표이고, 이 경험을 공유하는 것이 두 번째 목표입니다. 상세한 목적은 자동차 경주 미션에서 확...
요약 Next-step의 “TDD, 클린 코드 with Java “ 과정 중 자동차 경주 미션을 통해 TDD와 클린코드에 대해 학습한 내용입니다. 이 글의 목적 객체지향 프로그래밍과 클린 코드에 관심이 생긴 2년 차 개발자로서, 제 코드가 어떻게 변화하는지 다루고자 합니다. 이 글을 통해 스스로 어떤 부분이 개선 되었는지를 인식하는 ...
요약 글또 10기 첫 글의 주제는 ‘글또‘이다. 1)글또를 왜 신청했는지, 2) 글또 참가를 통해 무엇을 얻으려 하는지, 3)글또를 어떤 식으로 참여할 것인지에 대해 썼다. 이 글의 목적 글또 10기를 막 시작하는 지금의 내 생각과 마음가짐을 글로 남기려 한다. 6개월 동안 내가 변할 수도, 아닐 수도 있다. 만약 달라졌다면 어떤...
디자인 패턴은? 소프트웨어 설계에서 반복적으로 발생하는 문제에 대해 반복적으로 적용할 수 있는 해결 방법 재사용이 목적 협력을 일관성 있게 만들기 위해 재사용할 수 있는 설계의 묶음 프레임워크는? 설계와 코드를 함께 재사용 일관성 있는 협력을 제공하는 확장 가능한 코드 1. 디자인 패턴과 설계 재사용 패턴 분류 패턴...
재사용을 위해서는 객체들의 협력 방식을 일관성있게 만들어야 한다. 일관성 있게 만들게 되면 설계에 드는 비용을 감소 시킬 수 있고 코드를 이해하는 것이 더 쉬워진다. 1. 핸드폰 과금 시스템 변경하기 기본 정책 확장 예제 - 핸드폰 요금 기본 정책을 구성하는 방식을 네 가지로 확장한다 고정 요금방식 시간대별 방식 요일별 ...
상속은 두 가지 용도로 사용된다. 타입 계층을 구현 타입 계층안에서 부모 클래스는 일반적인 개념, 자식 클래스는 특수한 개념을 구현한다. 부모 클래스는 자식 클래스의 일반화(generalization)이고, 자식 클래스는 부모 클래스의 특수화(specialization)이다. 코드 재사용 ...
나는 숲보다 내 눈앞에 있는 나무를 아주~~ 뚫어지게 보는 편이다. 요즘은 개발자로서 스스로에 대한 부족함을 느끼고 이를 채우려 하루의 대부분 시간을 쓴다. 숲을 보지 못하는 성향으로 인해 나라는 사람이 지금 어떤 상태이고, 어느 방향으로 나아가고 있는지 되돌아봐야 한다고 생각하지 못했다. 글또 지원 중 내 삶을 돌아보고, 이를 글로 남겨야 하는 기...
12장 다형성 0. 개요 단순히 코드를 재사용하기 위한 목적으로 상속 사용을 하지 않는다 상속은 런타임에 메시지를 처리하기 적합한 메서드를 동적으로 찾기 위해 일종의 탐색 경로를 클래스 계층 형태로 구현하기 위한 방법이다. 1. 다형성 다형성의 분류 유니버셜 매개변수(Parametric) ...
11장 합성과 유연한 설계 0. 합성은 전체를 표현하는 객체가 부분을 표현하는 객체를 포함해서 부분 객체의 코드를 재사용한다. 두 객체 사이의 의존성은 런타임 시점에서 결정된다. 내부에 포함되는 객체의 구현이 아닌 퍼블릭 인터페이스에 의존한다 코드 재사용을 위해서는 객체 합성이 클래스 상속보다 더 좋은 방법이다 1. 상속을 합성...
10장 상속과 코드 재사용 0. 개요 객체지향에서는 상속과 합성으로 코드를 재사용 할 수 있다 합성은? 새로운 클래스의 인스턴스 안에 기존 클래스의 인스턴스를 포함시키는 방법이다. 1. 상속과 중복 코드 중복 코드는 변경을 방해한다. 코드는 언젠가 변할텐데 중복 코드는 코드를 변경하는 일을 몇 배...