본문 바로가기

IntelliJ

(6)
[Springboot]게시판 만들기 3장 서비스 계층과 DTO - hoyhi 실제 프로젝트 작성 시 엔티티 객체를 영속 계층 바깥쪽에서 사용하는 방식보다는 DTO(Data Transfer Object) 이용 DTO는 엔티티 객체와 달리 각 계층에서 주고 받는 우편물이나 상자의 개념 순수하게 데이터를 담고 있다는 점에서 엔티티 객체와 유사하지만 목적 자체가 데이터의 전달이므로 읽고 쓰기가 가능하고 일회성으로 사용되는 성격이 강함 JPA를 사용하면 엔티티 객체는 단순히 데이터를 담는 객체가 아니라 실제 데이터와 연관있고, 내부적으로 엔티티 매니저가 관리하는 객체이며, DTO가 일회성으로 데이터를 주고 받는 용도로 사용되는 것과 달리 생명주기도 달라 분리해서 처리하는 것을 권장 예제에서는 서비스 계층을 생성하고 서비스 계층에서는 DTO로 파라미터와 리턴 타입 처리 DTO를 사용하면 엔..
[Springboot]게시판 만들기 2장 Querydsl 설정 및 테스트 - hoyhi Querydsl 이용 시 코드 내부에서 상황에 맞는 쿼리 생성이 가능하지만 이를 위해서는 작성된 엔티티 클래스를 그대로 사용하는 것이 아니라 Q도메인 이라는 것을 이용해야 함 그리고 이를 작성하기 위해서 Quertdsl 라이브러리를 이용해서 엔티티 클래스를 Q도메인 클래스로 변환하는 방식 이용 -> 추가적인 설정 필요 1. build.gradle 에 코드 추가 plugins { id 'org.springframework.boot' version '2.4.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'war' // Querydsl 사용을 위해 추가 id 'com.ewerk.gradle.plugins.queryds..
[Springboot]게시판 만들기 1장 프로젝트 설정 및 테이블 생성 - hoyhi 1. 프로젝트 생성 2. build.gradle -> dependencies 에 코드 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' annotationProcessor ..
[Spring boot] Entitiy, DTO, VO 차이 -hoyhi-tistory 엔티티(Entity) JPA @Entity 실제 Database의 테이블과 1:1 매핑 DB의 테이블내에 존재하는 컬럼만을 속성으로 가짐 상속받거나 구현체여서는 안됨, 존재하지 않는 컬럼을 가지면 안됨 VO와 다르게 식별성을 가짐 무분별한 Setter는 객체의 일관성 보장을 해치므로 사용 자제(객체의 생성자에 값 추가하는 형식으로 사용) // @Builder public User(String username, String password, String name) { this.username = username; this.password = password; this.name = name; } // User user = User.Builder() .username("name") .password("1234..
Spring Model 객체 Controller 의 메서드는 Model 이라는 타입의 객체를 파라미터로 받을 수 있다 JSP의 request.setAttribute() 와 비슷한 역할을 한다고 생각하면 된다. 개발자가 직접 model을 생성할 필요 없이 파라미터로 선언만 해주면 스프링이 알아서 만들어준다. 스프링 MVC의 Controller는 기본적으로 Java Beans 규칙에 맞는 객체는 자동으로 화면에 전달해준다. 전달될 때는 클래스명의 앞글자를 소문자로 처리하여 전달한다.
스프링부트 프로젝트 생성 1. Spring Initializr 프로젝트 생성 File -> New -> Project Spring Initializr -> Next *Spring Initalizr : SpringBoot 프로젝트 구조를 만드는 웹 애플리케이션 기본적인 프로젝트 구조와 코드를 빌드하는 데 필요한 maven이나 gradle 빌드 명세를 만들어줌 2. 프로젝트 세팅 프로젝트 이름, 빌드할 때 maven과 gradle 사용 , 자바 버전, 프로젝트의 기본 사항 등을 설정 3. 의존성 추가 프로젝트에서 필요한 종류의 의존성을 미리 추가 가능 Web, Thymeleaf, JPA 정도는 설정하는 것이 편리 4. 프로젝트 이름, 경로 설정