Java

    [Spring/fairer] 반복 기능 api 설계

    반복 기능은 fairer를 개발하며 가장 신경써야할 부분이 많았던 기능이다. 일/주/월 단위로 반복되는 집안일을 관리해야하고, 수정&삭제를 할 때에도 반복 일정 모두 삭제/오늘 일정만 삭제/ 앞으로 예정된 집안일만 삭제 등 선택지가 많았다. 반복기능을 어떻게 개발할 것인지 설계하는 데에만 몇 주를 사용했던 것으로 기억한다. 4명의 의견이 모두 달랐어서 신기했고, 배울점도 많았던 기능이다. 의견1 새로운 테이블을 추가하지 않고, 기존 housework 테이블에 주기 칼럼만 추가 생성 : 기존 집안일 생성과 동일, 주기 칼럼에 주기만 추가하여 생성 조회 : 해당 날짜에 포함되는 집안일(반복x) 조회 반복되는 집안일 중 반복 요일이 같고, 시작 날짜~종료 날짜 안에 해당 날짜가 포함된 집안일 조회 수정 : 집..

    [Design Pattern] Command Pattern

    💡 About Command Pattern 커맨드 패턴은 주어진 기능들을 캡슐화함으로써 서로 다른 요청들을 실행할 수 있도록 하는 패턴이다. 간단히 말하자면 객체의 행위(메소드)를 클래스로 만들어 캡슐화하는 패턴인데, A 객체에서 B 객체의 메소드를 실행하려면 B 객체를 참조하고 있어야하는 의존성이 발생한다. → 커맨드 패턴을 적용하면 이런 의존성을 제거하고, 기능들을 수정, 추가할 때 확장성과 유연성이 좋아진다. 💡 Command Pattern Structure Invoker → 기능의 실행을 요청하는 호출자 클래스 Command → 실행될 기능에 대한 인터페이스 실행될 기능을 execute 메소드로 구현 ConcreteCommand → Command 인터페이스 구현 Receiver → Concrete..

    [Design Pattern] Adapter Pattern

    💡 About Adapter Pattern Adapter Pattern은 인터페이스와 인터페이스간의 호환성 문제를 해결해주는 패턴이다. 콘센트에 사용하는 그 어뎁터의 역할과 동일! 호환되지 않는 인터페이스를 사용하는 코드들은 Adapter Class를 만들어 활용할 수 있다. My existing system → Adapter → Vendor class Object Adapter와 Class Adapter로 구현방법이 나누어진다. 인터페이스가 호환되지 않는 문제가 발생해도 Adapter Pattern을 통해 기존의 코드를 수정하지 않고도 문제를 해결할 수 있다. 💡 Adapter Pattern Structure Object Adapter Pattern Client → Target Interface를 요구..