An open API service indexing awesome lists of open source software.

https://github.com/mjbae/the-perfect-oop

객체지향 패러다임에 대한 이해도를 점검하기 위한 연습
https://github.com/mjbae/the-perfect-oop

oop solid-principles spring-data-jpa spring-mvc tdd

Last synced: 6 months ago
JSON representation

객체지향 패러다임에 대한 이해도를 점검하기 위한 연습

Awesome Lists containing this project

README

          

# The Perfect OOP

## 1. Output
- [UML 설계](https://github.com/MJbae/The-Perfect-OOP/wiki/UML)
- [SOLID 원칙 만족 여부](https://github.com/MJbae/The-Perfect-OOP/wiki/SOLID-%EC%9B%90%EC%B9%99%EC%97%90-%EB%94%B0%EB%A5%B8-%EA%B5%AC%ED%98%84)

## 2. Background
- "Elegant Objects"를 읽고, 객체지향 패러다임에 빠졌다.
- 관련 서적 세 권을 더 읽고난 후, 완벽한 객체지향 세상을 만들고 싶은 욕구가 생겼다.

## 3. Development Principles
- SOLID: 객체 및 객체 간 관계는 OOP 주요 원칙 5가지를 모두 만족하는 방향으로 구현한다.
- JPA: 영속적 데이터 관리 영역도 OOP에 편입시키기 위해 ORM을 활용한다.
- TDD: 테스트 작업의 지루함을 최소화하고 가용성 높은 서비스를 만들기 위해 테스트 기반으로 구현한다.
- Trade Off: 절차지향적 레거시를 불가피하게 적용 시, 이슈를 생성하여 그 이유를 명시한다.

## Reference
- 조영호 / 오브젝트
- 조영호 / 객체지향의 사실과 오해
- Yegor Bugayenko / Elegant Objects
- Steve Freeman, Nat Pryce / Growing Object Oriented Software, Guided by Tests
- better specs / https://www.betterspecs.org/
- 기계인간 John Grip / https://johngrib.github.io/wiki/junit5-nested/#describe---context---it-%ED%8C%A8%ED%84%B4
- 코드숨 / https://www.codesoom.com/courses/spring
- Kent Beck / Test-Driven Development
- 이규원 / 현실 세상의 TDD