Study/소프트웨어공학

소프트웨어 아키텍처

Gyuri 2021. 8. 22. 20:56
소프트웨어 아키텍처란?
상위 수준에서 소프트웨어를 설계하는 기본 틀 제공

 

 

마이크로서비스 아키텍처 (microservice)

: 마이크로 서비스는 대형 소프트웨어 프로젝트의 기능들을 작고 독립적이며 느슨하게 결합딘 모듈로 분해해 서비스를 제공하는 아키텍처 (결합력이 약함).

서비스가 개별적으로 독립적인 단위의 애플리케이션이기 때문에 변경이 용이하고 그 변경이 다른 서비스에 미치는 영향이 적음.

개별 서비스 단위의 배포가 가능하기 때문에 하루에도 필요에 따라 여러 번 배포 하는 것 가능.

부하가 집중되는 특정 서비스를 위해 전체 애플리케이션을 스케일아웃할 필요가 없기 때문에 불필요한 자원 낭비 줄일 수 있음. 해당 서비스의 개선과 수정 작업이 다른 서비스의 이해 당사자들과 독립적으로 진행될 수 있기 때문에 의사결정이 빠르고 독립적인 테스트 구축이 용이하기 떄문에 품질 개선으로 이어짐

 

모노리식 아키텍처 (monolithic)

: 모든 서비스가 하나로 패키지화 돼있음. 한 프로젝트의 덩치가 너무 커펴서 애플리케이션 구동시간이 늘어나고 빌드/배포 시간도 길어짐. 작은 수정사항이 있어도 전체를 다시 빌드하고 배포해야함.

많은 양의 코드가 몰려있어 개발자가 모두를 이해할 수 없고 유지보수 힘듦. 일부분의 오류가 전체에 영향 미침. 기능별로 알맞은 기술, 언어, 프레임워크를 선택하기 까다로움

'Study > 소프트웨어공학' 카테고리의 다른 글

결합도  (0) 2021.08.22
응집도  (0) 2021.08.22
UML, 유스케이스 모델링  (0) 2021.08.22
릴리스 계획/스크럼 도구  (0) 2021.08.22
스프린트 계획  (0) 2021.08.22