UML은 의사소통의 도구이며, 표기 방법론일 뿐이다. 의사소통의 목적을 위해서라면 UML을 비틀어서 사용해도 좋다. → UML 표기법 하나하나에 목숨 걸지 말자는 것이다. 필자는 현재 Activity Diagram을 그리기 보단 순서도나 NS차트를 사용한다. But, Class Diagram, Sequence Diagram은 자주 그린다.
CBD - Component Based Development → 컴포넌트 기반 개발, CBD는 app을 통짜로 개발하지 말고, app을 의미 있는 단위로 구분하고 그 단위를 하나 하나씩 부품으로 개발해 마치 레고 블록을 쌓아 올리듯 부품을 결합해 sw 제품을 완성하자는 방법론이자 기법이다.
SOA - Service Oriented Architecture → (번역)서비스 중심 구조 또는 (의역) 서비스 지향구조이다. 개발자 입장에선 개발이 아니라 실제 현실의 업무를 기준으로 개발하자는 사상인 것이다.
즉, 블록화 개발에 CBD라는 이름을, 서비스 지향적인 개발에 SOA라는 이름을 붙였다.
만약 당신이 CBD 지향 제품을 만든다고 하면 당신에게 CBD는 바로 그 제품일 뿐이다. 남에게 강요할 필요도 없고 다른 사람에게 강요당할 필요도 없다.
<aside> 📌 우리 개발자들은 말장난에 휘둘리지 말고 그 본질을 잘 살펴서 취할 것은 취하고 버릴 것은 버리는, 선별해내는 능력이 필요하다.
</aside>
→ 만약, 객체지향의 4대 특성을 타인에게 설명할 수 없다면, 당신은 객체를 공부하지 않은 것이다.
객체지향의 4대 특성, 객체지향 설계 5원칙 SOLID, 객체지향의 베스트 프랙티스 모음인 디자인 패턴 등의 개념이 정립됐다.
객체지향을 모르고 스프링을 안다는 것은 어불성설이다. → 스프링은 객체지향의 기반 위에 굳건히 서 있기 때문.
스프링은 PSA(일관성 있는 추상화)기법을 통해 중구난방으로 구현된 다양한 기술을 표준화된 방식으로 사용할 수 있게 지원해준다.
스프링 삼각형의 POJO는 IOC/DI, AOP, PSA의 개념을 말한다.\
SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리 원칙), DIP(의존 역전 원칙)