개발 간단함
deloy도 간단하다
-- smaller teams and applications 에서 !! --
Fewer cross-cutting concerns
-- security,logging,auditing 등등 single place 에서 관리하니깐--
performance 가 좋다( some scenarios )
-- 모든 비즈니스 로직이 same server에 있으니깐 other servers 와 communicating 할 필요가 없다 no network latency 임 --
새로운 기술을 adopt 하기 힘들다.
-- 예를 들어 loans 부서가 기술 업그레이드 하려고 하면 다른 부서들도 참여해야됨 --
Limited agility
-- 변화 성능업그레이드 한곳에 다 clubbing 되어있어서 힘들다 --
single code base 라서 유지보수가 너무 힘들다.
-- human being 이라면.. entire code 와 easy task가 힘듬 --
사소한 update 그리고 feature development(기능개발) 가 항상 full deployment 를 수반한다.
-- 당연하다! --
큰조직에서는 너무 힘들어서 SOA 로 움직였다.
(soa의 example 이다 )
보면은 UI와 backend dependency 사라진 걸 볼 수 있다.
Enterpise Service Bus가 cross cuttings 를 전부 handle하게 된다.
백엔드 분리 아직도 안되었다.
결국엔 single db에 기대게 된다.
서비스 재사용 가능
유지보수 더 나음
higher reliability
Paralle development
small small services 로 나눈다!!..
너무 복잡한데 spring cloud projects 를 활용하자!
단점보다 장점이 더 크다
개발 테스트 배포 쉬움
애자일력 증가
수평적으로 스케일 할 수 있음?
parallel 개발 가능
복잡함
infrastructure 오버해드 (health체크..)
보안 concerns
문제들을 극복 가능하다..! 그러면 단점보다 장점이 더 커진대요
평행적 개발, 애자일리티, 스케일 업 다운, 사용성, 복잡성과 operation 오버헤드, 보안문제 및 퍼포먼스