CS/Software Engineering 3

[Software Engineering] MVC 2022.12.10

MVC (Model-View-Controller)는 사용자 인터페이스로부터 비즈니스 로직을 분리 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 스타일의 아키텍처 사용자 인터페이스를 담당하는 계층의 응집력을 높일 수 있음 여러 개의 다른 UI를 만들어 그 사이에 결합을 낮출 수 있음 응용프로그램을 서로 상호작용하는 세 가지의 논리적인 구성요소로 나눔 Model 데이터와 해당 데이터와 연관된 작업을 관리함 데이터의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보함 통보를 통해 뷰는 최신의 결과를 보여줄 수 있음 컨트롤러는 모델의 변화에 따른 적용 가능한 명령 (추가, 제거, 수정)을 내릴 수 있음 MVC를 다르게 구현한다면 통보 대신 뷰나 컨트롤러가 ..

[Software Engineering] 시스템의 타입 2022.12.10

개발할 시스템의 타입은 분석, 모델링, 설계, 구현, 테스팅 거의 모든 개발 작업에 영향을 줌 소프트웨어 아키텍처를 설계할 때 시스템의 타입이 고려되어야 함 설계 방법과 아키텍처 스타일을 선택할 때 시스템의 타입이 영향을 줌 일반적으로 네 가지 타입으로 나눌 수 있음 대화형 시스템 대화형 (interactive) 시스템은 PC와 웹 애플리케이션이 널리 사용되면서 가장 보편적이 되었음 EX) 시스템을 사용하기 위해 먼저 로그인 링크를 클릭하면 시스템은 로그인 페이지를 보여줌 사용자가 아이디와 패스워드를 입력하면 시스템은 웰컴 페이지를 디스플레이 함 대화형 시스템의 상태를 파악하는 것은 곧 비즈니스 프로세스를 반영하는 것임 EX) 온라인 쇼핑몰 시스템 - 고객이 로그인하여 상품을 고르고 결제함 - 고객이 로..

[Software Engineering] 아키텍처 (Architecture) 2022.12.05

아키텍처는 원래 건축용어 == "건축물, 건축양식, 건축 기술" Q) 왜 건축용어인 아키텍처를 소프트웨어에서 아키텍처라는 용어를 쓰게 되었나 컴퓨터 초기의 프로그램 1) 주로 어셈블리 언어로 작성되었음 2) 높은 수준의 언어를 사용해도 이미 추상화를 통하여 이해하기 쉬운 규모 프로그램의 규모 ⬆ EX) 15 ~ 30개의 프로시저 → 전체를 한꺼번에 작업하거나 생각하기 어려움 해결책 == "추상화" - 프로시저를 그룹화, 단위 그룹을 한 덩어리로 취급하여 그룹 수준에서 설계 ➡ 아키텍처의 개념 프로그램의 규모가 커지면 함께 작업하거나 전체적으로 생각하기가 어렵기 때문에 그룹화 함 아키텍쳐 == 소프트웨어를 그룹 수준에서 디자인 하는 것 서브시스템 수준의 덩어리화 (chunking) 작업 구성 요소와 구성 ..