코드스쿼드 5일차
MVC
Model View Controller 의 약어로, 에플리케이션을 세가지의 역할로 구분한 개발 방법론이다.
MVC 패턴 구조를 유지하면서 프로그래밍을 구현하면 큰 틀에서의 분리가 가능하다.
ex) 만약 콘솔 뷰를 웹이나, 모바일로 바꾸고 싶다면 View 부분만 바꾸면 된다.
Controller
사용자가 접근 한 URL에 따라서 사용자의 요청사항을 파악한 후에 그 요청에 맞는 데이터를 Model에 의뢰하고, 데이터를 View에 반영해서 사용자에게 알려준다.
보통 Main 메서드가 컨트롤러에 속한다.
Domain (= Model)
뷰와 컨트롤러는 모델에 의존하지만 모델은 뷰와 컨트롤러와는 독립적이다.
즉, 모델에 대한 작업이 뷰나 컨트롤러에 영향을 주지 않는다.
이 부분에서 단위 테스트를 가장 집중하여야 한다. 뷰는 할 필요없다.
View
뷰는 컨트롤러를 통해 모델로부터 데이터를 받고 시각화를 한다.
복잡한 로직은 포함되지 않아야 하며, 최대한 간결하게 유지하고 간단한 비교문과 반복문만 사용한다.
사다리 게임 개발 TIP
- 상태값을 조작하기 위한 메서드는 인스턴스 메서드로 구현하고, 나머지는 클래스 메서드를 사용하여 구현
- 최소한의 자료만 사용하여 구현
Step 을 끝냈을 때 해야할 일
미션 한 게임이 끝나면 javajigi 브랜치를 검색해서 pobi가 작성한 코드를 볼 수 있는데,
받아서 확인하고 자기것으로 만들어라!
생성자를 private 로 만드는 것이 의미가 있을까?
생성자가 private 이면 다른 클래스에서 접근이 불가능 하다.
따라서, 클래스 메서드만 가지는 클래스는 생성자를 private 으로 만들어서 불필요한 인스턴스 생성을 방지하는 효과가 있다.
자료구조
자료구조를 검색해서 해당 메소드에 맞는 자료구조를 적용하는 연습을 꾸준히 해라
5개의 자료구조에만 제대로 쓸 줄 아는 능력을 길러도 10년동안 먹고 사는데 지장 없다.
Q. 수강신청은 어떤 자료구조로 만들어야 할까?
ArrayList : (x)
Queue : First In Last Out (o)
질문 Time
하드코딩하지마라!
작은 게임에서는 하드코딩한 상수값을 한 곳에서 밖에 사용하지 않지만
프로그램이 커지면 상수 값이 여러 곳에 쓰이기 때문에 반복적인 연습을 통해 실수를 줄이는 것이 좋다.
else를 사용하지 않는 이유
else 를 사용하면 코드를 읽을 때 메소드를 처음부터 끝까지 다 읽어야 코드를 이해할 수 있다.
if else 를 사용하지 않으면 코드가 짧아지고 indent (들여쓰기) 를 줄일 수 있다.
단위 테스트
TDD로 메서드를 구현하고 (Test 코드 메서드 명을 한글로 써도 된다. 명확하게 알아볼 수 있는 것이 중요!)
한번에 하나의 일만 하도록 바로 리팩토링을 하라!
Ex ) public void add_숫자하나() throws Exception{}
assertThat().isEqualTo() VS assertEquals( , )
assertThat().isEqualTo() 가 더 최신의 메서드라 이걸 쓰는 걸 추천, 메서드 기능이 더 풍부
assertEquals( , ) : 이건 어떤 것이 기대하는 값인지를 햇갈리는 경우가 많음
상수값 OR
public static final String SEPARATOR = ",|:";
=> ' , ' 또는 ' : '
'코딩 교육 기관 > 코드스쿼드 백엔드 레벨2' 카테고리의 다른 글
2018.10.01 (월) (2) | 2018.10.25 |
---|---|
2018.09.24 (월) (1) | 2018.10.22 |
2018.09.17 (월) (5) | 2018.10.17 |
2018.09.13 (목) (3) | 2018.10.16 |
2018.09.11 (화) (0) | 2018.10.10 |
댓글