본문 바로가기

분류 전체보기590

WHAT과 HOW로 나눠 생각하기 https://www.youtube.com/watch?v=4xg4OeGzGIw&list=PLwouWTPuIjUg0dmHoxgqNXyx3Acy7BNCz&index=3 WHAT과 HOW로 나눠 생각하기 하려는 것 / 의미 / 의도 (WHAT) 그것의 실제 구현 (HOW) 가입한지 1년 미만 user 테이블에서 reg 칼럼 값 기준으로 count 추가 지급 내역 남김 log 테이블에 insert // HOW (하려는 것의 실제 구현에 집중) int count = userDao.countUsersByReg(userId); if(count > 0){ pointRate += 1; } .. if (count > 0){ logDao.insert(new Log(..., "AR", 1, ..)); } // WHAT (하려.. 2023. 2. 16.
나누기 https://www.youtube.com/watch?v=NaeXpswLvxk&list=PLwouWTPuIjUg0dmHoxgqNXyx3Acy7BNCz&index=2 함수/ 메서드/ 클래스가 너무 커지면, 프로그램 분석 & 수정이 어려워 진다. ex : if-else, if 중첩 과다, 코드 안에서 중복 발생 등 이런 경우, 필요한 기술은 나누기 의미가 있는 단위로 코드/구성 요소를 나누어야 한다. 패턴은 나누는 기술의 전형적인 예시 웹 개발 : 컨트롤러 - 서비스 - DAO DDD : 엔티티, 밸류, 레퍼지토리 디자인 패턴 나누기는 기능을 여러 작은 기능으로 분리하는 것 나누기 수행 결과는 하위 기능들이 메서드나 클래스로 분리된다. 기능을 분리하는 기준은? 기능에서 '의미' 있는 하위 기능 단위로 나누는.. 2023. 2. 16.
팩토리 메서드 패턴 인스턴스 작성을 하위 클래스에 위임 Template Method 패턴을 인스턴스 생성에 적용함 의도 객체를 생성하기 위한 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 상속받은 서브 클래스에서 구현함 여러 상황, 조건에 따라 각각 생성할 수 있는 객체에 대한 생성을 하위 클래스에 위임함 생성과 관련된 동일한 메서드는 상위 클래스에서 처리한다. package factorymethod; public abstract class CarFactory { public abstract Car createCar(String name); public abstract Car returnCar(String name); public void numbering() { System.out.println.. 2023. 2. 14.
08. 상속을 위임으로 바꾸기 IS-A 관계와 HAS-A 관계 IS-A 관계 일반적인 클래스와 구체적인 클래스의 관계 클래스간의 상속은 종속성이 강하므로 꼭 필요한 경우 사용하는 것이 좋다. 상속은 코드 재사용을 위한 방법이 아니다. HAS-A 관계 이미 잘 만들어진 라이브러리나 클래스를 재사용하는 방법 사용할 클래스를 포함하여 그 기능을 해당 클래스로 위임한다. 클래스간의 종속성이 약하다. 이미 잘 만들어진 클래스를 재사용하기 위해서는 상속이 아닌 위임을 사용한다. IS-A 관계가 아닌 클래스간의 상속은 HAS-A로 리팩토링 한다. 상속 상속은 좀 더 일반적인 클래스에서 그보다 구체적인 클래스가 여러개 생길 수 있는 경우에 사용한다. 상속을 통한 방법은 결합도가 강하기 때문에, 코드의 재사용의 목적으로는 사용하지 않는 것이 좋다. .. 2023. 2. 12.