본문 바로가기

spring

(26)
Entity / DTO / DAO / Repository Entity실제 데이터베이스 테이블과 매핑시키는 클래스하나의 Entity를 하나의 테이블로 작성 (1:1)클래스의 필드는 테이블 내부의 컬럼(Column)을 의미@Entity 어노테이션을 사용하여 데이터베이스와 매칭될 클래스임을 나타냄 DTO (Data Transfer Object)데이터 전송 객체뷰에서 컨트롤러로 넘어오는 데이터를 담거나 컨트롤러와 서비스 사이에 주고 받는 데이터를 담는 데 사용 DAO (Data Access Object)데이터베이스에 접근하기 위한 객체서비스와 데이터베이스를 연결하기 위한 중간 다리 역할 Repository데이터베이스에 접근하는 메소드를 사용하기 위한 인터페이스서비스와 데이터베이스를 연결하기 위한 중간 다리 역할데이터베이스에 적용하고자 하는 CRUD를 정의하는 영역DA..
PUT, DELETE API PUT API자원이 존재하면 갱신하고, 없을 경우 새로 생성하기 위해 사용되는 API업데이트에 사용되는 메소드기본적인 동작 방식은 POST API와 유사함 @PutMapping@RequestBody를 통해 값을 받아 동작 DELETE API자원을 삭제하기 위해 사용되는 APIGET API와 유사하게 @PathVariable을 통해 ID 등을 받아 처리 @DeleteMappingGET API와 유사하게 @PathVariable을 통해 ID 등을 받아 처리
POST API POST API자원을 추가하기 위해 사용되는 API값을 URL이 아닌 HTTP Body에 추가하여 서버에 요청 @PostMappingPost API를 호출하는 경우 사용@RequestMapping(method=RequestMethod.POST) @RequestBodyBody에 담겨있는 값을 받기 위해서 사용하는 어노테이션 DTOBody의 key=value가 정해져 있지만 파라미터가 많은 경우 DTO 객체를 사용
GET API GET API자원을 조회하기 위해 사용되는 API @RequestMappingvalue와 method로 정의하여 api를 개발하는 방식value는 URI, method는 HTTP Method를 지정예) localhost:8080/hello @GetMappingGET API를 호출하는 경우 사용'value=' 생략 가능 @PathVariableGET 요청은 파라미터를 전달하기 위해 URL에 값을 담아 요청URL에서 담긴 값과 변수를 매핑하기 위해서 사용예) localhost:8080/hello/daeng@GetMapping value 표현 내 {value}와 @PathVariable 변수 이름이 일치하는 경우 value값 지정 생략 가능 @RequestParamGET 요청에서 쿼리 문자열을 전달하기 위해 ..
타임리프(Thymeleaf) 타임리프(Thymeleaf)자바 템플릿 엔진으로 스프링 부트에서 권장하는 서버 사이드 템플릿 엔진  특징서버 사이드 템플릿 엔진네츄럴 템플릿 : 순수한 HTML을 최대한 유지, HTML 확장자 사용, 웹 브라우저에서 파일 오픈 가능스프링 통합 지원 : 스프링과 자연스럽게 통합되어 다양한 기능 쉽게 사용 가능 타임리프 사용법문서 최상단에 다음 코드를 넣어서 사용 가능  예제
템플릿 엔진(Template Engine) 템플릿 엔진 (Template Engine)템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어뷰 코드 (HTML)과 데이터 로직 코드 (DB Connection)을 분리하는 역할템플릿 엔진의 필요성HTML에 비해 간단한 문법으로 코드 수 감소같은 페이지에 데이터만 바뀌는 경우에 활용하여 재사용성 높음하나의 템플릿으로 여러 페이지를 렌더링하는 경우가 있어 유지보수 용이 렌더링 주체에 따른 구분서버 사이드 템플릿 엔진클라이언트 사이드 템플릿 엔진 서버 사이드 템플릿 엔진서버에서 구동되는 템플릿 엔진서버에서 데이터를 미리 정의된 템플릿에 넣어서 HTML을 생성하여 클라이언트에 전달 ** 동작 과정클라이언트에서 요청 수신서버에서 데이터를 획득 (DB or API)템플릿에 데이터를 배치데이터가 반영..
Spring Bean / 생명주기 스프링 컨테이너 : 애플리케이션의 구성 요소를 생성 및 관리> 개발자가 직접 객체를 생성하고 관리하는 부담을 줄여줌> 스프링 빈을 생성하고 의존 관계를 주입하는 역할Bean (스프링 빈) : 스프링 컨테이너가 관리하는 객체스프링 컨테이너에 의해 생명 주기가 관리됨제어 역전 (IoC) / 의존성 주입 (DI) 기능 Bean의 정의와 역할 스프링의 객체 !Spring IoC 컨테이너에 의해 인스턴스화되고 관리됨애너테이션 추가 / XML 파일 설정을 통해 Bean이 선언됨** MyBean 클래스에 @Component 애너테이션을 붙이면 클래스가 빈으로 등록됨** 빈의 이름은 클래스 이름의 첫 글자를 소문자로 바꾸어 관리 → myBean으로 등록됨 다양한 역할 수행데이터 액세스 계층의 리포지토리웹 요청을 처리하..
MVC 패턴 MVC Model - View - Controller 소프트웨어 아키텍처 디자인 패턴 사용자 인터페이스 / 비즈니스 로직을 분리하고, 각각을 독립적으로 유지 Model 데이터가 들어있는 객체 데이터를 관리하고 변경이 발생하면 View에게 알림 DB와의 연동을 위한 DAO(Data Access Object)와 데이터 구조를 표현하는 DO(Data Object)로 구성 ex) 쇼핑몰의 검색 기능 - 검색 키워드가 넘어오면 (뷰를 통해) 관련된 상품의 데이터를 찾아 결과를 뷰에 전달 View 데이터를 사용자에게 보여주는 사용자 인터페이스(UI) 모델의 데이터를 특정 형식으로 표현하여 사용자에게 보여줌 사용자 입력을 받아 컨트롤러에 전달 ex) 검색 키워드를 받아 컨트롤러에 전달 / 검색 결과를 모델로부터 받아..