Spring/Spirng_CRUD(MVC_Patterns)

Basic_MVC

whyWhale 2020. 11. 12.

환경 : Intelij +Maven + JDK11 + SpringInitiallize(web,mustach,devtool)

 

오늘은 스프링 부트를 직접 해보고 흐름을 읽히기 위해 간단한 회원등록과 회원정보를 보여주는 것을 만들어 보았습니다.

- DB 연동은 하지 않아 서버가 재 실행시 데이터가 사라집니다.

- DB 대신 User class 에 담고 java의 collection List 를 이용하여 회원 등록 후 정보를 클래스에 담아내어 회원 정보를      사용자 View에 뿌려주었습니다. 

 

GIT-HUB      ▶    github.com/KBY-TECH/SpringBasic_MVC

 

스프링 이론을 빠르게 한번 훑어보고 간단한 실습을 통하여 희미하지만 개략적인 흐름과 많은 것들을 알 수 있는 계기가 되었습니다. 

 

<주요 기능>

 

Controller

  • 사용자의 요청이 진입하는 지점 이며 어떤 처리를 할지 결정하는 곳이다. 
  • (단지 결정만 해주는 부분이고 실질적인 처리는 서비스에서 담당한다는 것.)
  • 사용자에게 view를 통해 응답한다. (서버에서 처리된 데이터를 보여준다.)

    Contoller 사용 이유

 

  • 서비스 처리가 많아지면서 하나의 클래스에 모두 모아 처리 하는 것이 아닌 중간제어자의 역할인 Controller를 이용하여 서비스를 분리하고 구분할 수 있기 때문인 것 같다.
  • MVC(Model View Controller) 패턴에 포함된 것이며 각 역할에 따라 설계 구현을 하면서 유지보수하는데 편리하다.
  • 한 마디로 정리하자면,역할 분담의 핵심이다.

mustache(Template Engine)

 

Template Engine

  • 프로그램의 로직과 프레젠테이션(7계층)을 분리하기 위한 수단이다.
  • ex) Controller -> view 로 데이터를 던지면 어떻게 계층을 분리하여 구분할지를 도와주는 "도구"이다.
  • 프레젠테이션 계층에서 로직을 쉽게 표현하고 개발의 유연성을 향상 시킴으로써 유지보수를 효율적으로 할 수있게 한다.  

 

static templates
정적 동적

-> templates 는 서버에서 처리된 데이터를 보여줄 수 있는 view 이다.

 

 

머스테치의 장점

  • 문법이 다른 템플릿 엔진보다 심플하다.
  • 로직 코드를 사용할 수 없어 View의 역할과 서버의 역할을 명확하게 분리된다.
  • ex) 사용자 view -> {{variable}} 사용.

 

어려운점

  • 처음 Controller 부분에 (return value) 템플릿 뷰를 매핑 곳에서 많은 시간을 할애하였다. 왜 매핑이 안되는지 검색을 통해 찾아봐도 나오지 않았다. 하지만 시간이 조금 지나 다시 검색을 통해 그리고 문서를 찾아보고 application.properties 부분에서 설정하는 것을 알게되었다.  application.properties에 대한 개념이 아직 잡히지 않았으며 조금 더 깊게 봐야되는 부분이라 생각한다.
  • 바로 해당 부분을 찾으려 달려들기 보다는 전체적인 부분과 어떤것이 필요할 것 같다는 생각을 가지고 침착하게 접근하게 되었다. 이로써 문제를 해결할 수 있게 되었다는 생각을 한다.

다음에는 DB 연동을 통해 서버가 재 실행시 데이터가 날아가지 않도록 하기위해 연동을 해보겠습니다. 감사합니다.

 

 

 

 

 

'Spring > Spirng_CRUD(MVC_Patterns)' 카테고리의 다른 글

Basic_MVC6(Ajax)  (0) 2020.12.09
Basic_MVC5  (0) 2020.12.01
Basic_MVC4  (0) 2020.11.30
Basic_MVC3  (0) 2020.11.26
Basic_MVC2  (0) 2020.11.19

댓글