본문 바로가기

Plo Hanghae99

항해99 12,13일차 Spring 입문

= 주특기 입문 시작! =

미니프로젝트 , 알고리즘 두개 키워드의 2주가 끝나고

주특기인 Spring 입문의 1주일이 시작됐다.

쉽진 않다던 spring , 금방 익숙해지리라 믿는다.

과제 완성 파일들로 게시글을 쓰고 싶었는데

배포하는 과정에서 build를 했더니 .jar로 압축돼버렸다...

압축푸는 방법을 찾아봐야할 것 같다..

= 입문 주차 과제 영상 =

입문주차 과제영상!

출처:  https://addio3305.tistory.com/41


= Spring MVC = 

Model , View , Controller 패턴의 개념이다.

Model

데이터 저장소와 연동하여 사용자의 데이터를 저장하거나

데이터를 출력하는 등의 일을 수행함 여러개의 데이터 변경작업(추가, 변경 , 삭제)들을

하나로 묶는 트랜잭션의 역할도 수행함 DAO class중 service에 해당됨

DAO(Data Access Object)

DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트

View

모델이 처리한 데이터나 결과를 바탕으로 사용자에게 출력할 화면을 만드는 역할

뷰 컴포넌트는 html , css , Js를 사용하여 출력할 UI를 생성해줌 생성된 UI는 웹 브라우저가 출력

Controller

Client의 요청을 받았을 때 그 요청에 대해 실제 업무를 수행하는 Model을 호출

클라이언트가 보낸 데이터가 있다면 Model을 호출할 때 전달하기 쉽게 데이터의 가공

모델의 업무 수행이 완료되면 그 결과를 바탕으로 화면을 구성하도록 View에 전달

MVC 패턴의 사용 이유

Business logic과 Presentation logic을 분리하기 위함

Business logic : 데이터의 처리 및 응용을 수행하는 로직

Presentation logic : 화면상의 디자인 구성을 위한 로직

 

TestCase or TDD

개발을 통해서 구현한 기능을 실행할 때

자바의 main method를 통해서 실행하거나 웹 어플리케이션의 컨트롤러를 통해서 실행한다 .

이러한 방법은 준비하고 실행하는데 오래 걸리고 , 반복 실행하기 어렵고

여러 테스트를 한번에 실행하기 어렵다는 단점이있다.

Java는 Junit이라는 frameWork로 테스트를 실행해서 이러한 문제점을 해결한다.

TDD

구현 클래스 개발전 testCode의 작성을 선행(틀) →

정상 작동여부 확인 →

구현 클래스 개발 (test 주도 개발 TDD의 개념이다.)


= Spring Controller , Service , Repository  , Domain , DTO = 

출처 : https://dahye-jeong.gitbook.io/til/spring/2020-04-12-layer
폴더구조


@Controller

- Controller -

Client의 요청을 받았을 때 그 요청에 대해 실제 업무를 수행하는 Service를 호출

클라이언트가 보낸 데이터가 있다면 Service를 호출할 때 전달하기 쉽게 데이터의 가공

모델의 업무 수행이 완료되면 그 결과를 바탕으로 화면을 구성하도록 View에 전달


@Service

Service : Controller의 요청을 받아 알맞은 정보를 가공 Controller에게 재전달한다.

Repository를 상속받아 .findByID , .save()등의 함수 사용이 가능해진다.


DAO / Repository

Repository : Entity에 의해 생성된 DB에 접근하는 메서드를 사용하기위한 interface이다.

JPA를 상속받음으로써 기본적인 CRUD의 동작(함수 사용)이 가능해진다.

JpaRepository<대상 엔티티, Entity에 접근할 객체의 Type>


&amp;amp;amp;nbsp;Data Transfer Object

DTO : 계층간의 데이터 교환을 위한 객체이다.


- Domain(Entitiy) -

domain / @Entitiy

Domain : Db의 테이블과 매핑되며 Entity class라고도 부른다.

실제 DB에 저장되는 내용들을 구현하는 class이다.

하나의 객체가 DB의 하나의 Column처럼 작용한다


주특기 입문 주차..

시작부터 쉽지 않다.

아직 내용이 정확히 이해는 안되지만

기록을 해놓지 않으면 틀린 개념을 바로잡기 전에 까먹는다.

머리에 붕 떠있는 개념들을 찾아보며 정리하는 느낌이지만

후에 하나 하나 세부적으로 정리해보면 이해할 수 있을 것 같은 느낌이다.

시간을 내어 정리해보며 Spring 계층에 대한 이해가 우선이란 생각이 들어

계층에 대한 내용을 공부해보려한다.

처음부터 완벽하게 이해하기는 당연히 쉽지않으니까

어려운게 당연하다!


22년 3월 21일

오전 1시 30분

항해 타이머 :9시간 1분