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
객체지향 패러다임에 대한 이해도를 점검하기 위한 연습
- Host: GitHub
- URL: https://github.com/mjbae/the-perfect-oop
- Owner: MJbae
- Created: 2022-06-03T00:56:19.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-02-18T01:36:51.000Z (over 3 years ago)
- Last Synced: 2025-07-27T21:49:03.280Z (12 months ago)
- Topics: oop, solid-principles, spring-data-jpa, spring-mvc, tdd
- Language: Java
- Homepage:
- Size: 228 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
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