본문 바로가기
코딩 교육 기관/코드스쿼드 백엔드 레벨2

2018.09.20 (목)

by 성건희 2018. 10. 22.
반응형

코드스쿼드 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

댓글