[우테코 6기] 프리코스 3주차 미션 - 4일차
우아한테크코스 6기 백엔드 프리코스 - 로또
계층화
현재 애플리케이션은 이렇게 생겼다. 모든 로직이 뒤엉켜 있다. 새로운 기능을 추가하기 힘들고 코드를 수정할 경우 어디까지 영향을 미칠지 알기 힘들다.
MVC 패턴
이전 미션에서도 미션의 코어 로직과 입출력 로직을 분리했지만 명시적으로 디렉토리를 나누지 않아서 코드를 보지 않는 한 어떤 클래스가 어떤 종류의 로직에 참여하는지 알기 힘들었다.
이번 주차부터는 핵심 로직과 UI를 분리하여 구현하라는 추가 요구사항이 있어서 디렉토리까지 나누고 그 과정을 기록하기로 했다.
MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. MVC 소프트웨어 디자인 패턴의 세 가지 부분은 다음과 같이 설명할 수 있습니다.
- 모델: 데이터와 비즈니스 로직을 관리합니다.
- 뷰: 레이아웃과 화면을 처리합니다.
- 컨트롤러: 모델과 뷰로 명령을 전달합니다.
View
뷰는 앱의 데이터를 보여주는 방식을 정의합니다.
이번 미션에서 뷰가 보여줘야 할 데이터는 아래와 같다.
이 데이터들은 모두 LotteryPortfolio
인스턴스에 저장되어 있다.
Controller
컨트롤러는 앱의 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직을 포함합니다.
사용자에게 입력을 받아 모델(Lotto
LotteryPortfolio
등)을 만든 뒤 적절한 뷰를 생성하고 출력한다.
개선할 점
하나의 컨트롤러 객체가 한 개 이상의 작업을 하고 있다. 입력에 대한 View를 생성하고 출력까지 하고 있다.
Comments