-
우아한 객체 지향 정리 (유투브)ProgrammingTheory/OOP 2023. 11. 8. 18:00
1. 무조건 lazy, 무조건 eager : 그런거는 없어, 경계를 잡는 방법의 차이다.
2. 연관관계를 끊자. 연관관계란 , 다른 객체를 탐색을 하는 경로로 디비 트랜잭션의 락을 전부 거는 상황이 나올수 있다.
연관관계를 끊는 방법으로 객체의 다른 도메인의 속하는 객체의 id 를 넣고, 레포지토리에서 검색을 하자.
레포지토리는 연관 관계를 정의하는 메서드로 이루어져 있어야 한다.
3. 도메인 에그리거트, 루트 를 생각하자.
같이 생성이되는지, 같은 제약사항이 걸리는지 파악을 해야한다.
같은 제약사항이 걸린다면 , 연관관계를 걸되, 다르면 그룹을 분리해서 id 로 참조하게 하여 데이터베이스 경합이 발생하는 성능 이슈를 최소화 해야한다. -> DDD 의 컨택스트를 잡는 기준이 될 수 도 있다.
왜 설계를 잘해야해 ?
유지보수성 ? 재미 ?
-> ㄴㄴ 공학적으로 접근한다.
-> 소프트웨어 아키텍처는 성능과 관련이 없는줄 알고 등한시할 뻔했지만, cs 적으로 디비의 성능과 직결된다.
하나의 예로 , 학부생 시절 현직자들에게 소프트웨어 아키택처의 중요성을 물었었고, 협업의 빠른 개발의 측면만을 답변을 해주신 분들이 있었다.
개발 생산성의 측면이 아니라 , 코드를 작성하는 것은 자원의 효율적인 사용을 만드는 것을 생각해보자.
----
4학년 말이 되어야 이해가 되는 객체지향 세미나이다.
https://www.youtube.com/watch?v=dJ5C4qRqAgA
https://www.slideshare.net/baejjae93/ss-151545329
'ProgrammingTheory > OOP' 카테고리의 다른 글
설계 품질 TradeOff [오브젝트 chpt 4] (1) 2023.04.07 객체지향이란 ? 객체지향 특징 4가지 (0) 2023.04.07 RDD & SOLID 원칙 [오브젝트 chpt 3] (0) 2023.03.31 객체지향의 사실과 오해 [chpt 5,6] (0) 2023.03.24 객체지향의 사실과 오해 [chpt 3,4] (0) 2023.03.24