ProgrammingTheory/OOP

우아한 객체 지향 정리 (유투브)

sung.hyun.1204 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

 

[수정본] 우아한 객체지향

[수정본] 우아한 객체지향 - Download as a PDF or view online for free

www.slideshare.net