직관적
: 동료 개발자가 별도의 설명서가 없어도 프로그램을 이해하고 활용할 수 있어야 한다.유연성
: 기존 기능의 변경, 또는 신규 기능의 추가가 용이해야 한다.효율성
: 유저가 최소한의 latency로 서비스를 경험할 수 있어야 한다.
모듈명 | 역할 |
---|---|
common | 각 모듈에서 공통으로 사용해야 하는 코드들을 모아둔 모듈입니다. (ex. exception) |
application | 프로그램 가동에 필요한 app들을 모아둔 모듈입니다. 현재는 user 서비스만 존재하지만, 추후 batch, admin 등 다양한 app이 추가될 수 있습니다. |
domain | SPOT! 서비스 구현에 필요한 도메인 객체들을 모아둔 모듈입니다. POJO로 구성됩니다. |
usecase | SPOT! 서비스 구현에 필요한 비즈니스 요구사항들을 구현한 모듈입니다. port(interface)와 구현체를 분리해 DIP를 프로젝트 단위로 구현했습니다. |
infrastructure | 외부 의존성을 갖는 코드들을 모아둔 모듈입니다. (ex. jpa, aws, redis..) usecase는 persistence, redis 구현체가 아닌 추상화에 의존하므로 외부 의존성 교체가 쉽습니다. |
- SPOT! 서버 팀의 무한 스크롤링 구현방법 >> Link
- Nginx http 301 redirection 설정 버그 픽스 Issue #118
- M1 ARM Mac에서 Embedded Redis 실행 오류 버그 픽스 Issue #173
- 문의사항 | 6jihaeng@gmail.com
- 인스타그램 | @spot_baseballview
- 서비스 피드백하기 | https://forms.gle/NG2JSsSivTQkNVRE9