jjuya

· Spring Boot
연관관계 매핑객체의 참조와 테이블의 외래키를 매핑하는 것JPA에서는 연관관계에 있는 상대 테이블의 PK를 멤버 변수로 갖지 않고, 엔티티 객체 자체를 통째로 참조 방향단방향 : 두 엔티티가 관계를 맺을 때, 한쪽의 엔티티만 참조하고 있는 것양방향 : 두 엔티티가 관계를 맺을 때, 양쪽이 서로 참조하고 있는 것 다중성@ManyToOne : 다대일 (N : 1)@OneToMany : 일대다 (1 : N)@OneToOne : 일대일 (1 : 1)@ManyToMany : 다대다 (N : N) 어떤 엔티티를 중심으로 상대 엔티티를 바라보느냐에 따라 다중성이 다르게 됨 연관관계의 주인객체를 양방향 연관관계로 만들면 연관관계의 주인을 정해야 함연관관계를 갖는 두 테이블에서 외래키를 갖게 되는 테이블이 연관관계의 주인..
· Spring Boot
QueryDSL이란?QueryDSL은 하이버네이트 쿼리 언어(HQL :Hibernate Querey Languge)의 쿼리 타입에 안전하게 생성 및 관리해 주는 프레임워크.QueryDSL은 정적 타입을 이용하여 SQL과 같은 쿼리를 생성할수 있게 해 줌. Spring boot와 Spring Data JPA를 함께 사용한다. 하지만 복잡한 쿼리, 동적쿼리를 구현하는 데 있어 한계가 있다. 이러한 문제점을 해결할 수 있는 것이 QueryDSL이다 QueryDSL등장하기 이전에는 Mybatis, JPQL, Criteria 등 문자열 형태로 쿼리문을 작성하여 컴파일 시에는 오류를 발견하는 것이 불가능했다하지만 QueryDSL은 자바 코드로 SQL문을 작성할 수 있어 컴파일 시에 오류를 발생하여 잘못된 쿼리가 실..
· Spring Boot
파일 업로드 시 이미지 파일을 DB에 저장하면 절대 안 되기 때문에 작업경로에 폴더를 만들어 그쪽에 저장되도록 해야한다!application.properties폴더 이름 생성org.aaaa.upload.path=upload CustomFileUtil 파일 업로드 시 공통으로 사용할 CustomFileUtil 클래스 생성@Component 어노테이션 주입 1. 파일경로 생성@Value("${org.aaaa.upload.path}")private String uploadPath;@Value에 경로 주입 2. 초기화 메소드 생성파일을 저장할 폴더 생성@PostConstructpublic void init(){ File tempFolder = new File(uploadPath); if(!tempFo..
· Spring Boot
ControllerAdvice와 RestControllerAdvicespring은 전역적으로 예외처리 할 수 있는 @ControllerAdvice와 @RestControllerAdvice어노테이션을 각각 spring 3.2, Sprong 4.3부터 제공하고 있다두 개의 차이는 controller와 RestController와 같은데,RestControllerAdvice는 ControllerAdvice와 달리 @ResponseBody가 붙어있어 응답 Json으로 내려준다는 점에서 다르다 @RestControllerAdvicepublic class CustomControllerAdvice { @ExceptionHandler(NoSuchElementException.class) public Resp..
· Spring Boot
@Component개발자가 직접 작성한 class를 Bean으로 등록하기 위한 어노테이션  @Bean, @Configuration개발자가 직접 제어가 불가능한 외부 라이브러리 또는 설정을 위한 Class를 Bean으로 등록할 때 @Bean어노테이션 사용. 1개 이상의 @Bean을 제공하는 클래스의 경우 반드시 @Configuration을명시해주어야함
· Spring Boot
Lombok 생성자 생성 @NoArgsConsteuctor : 파라미터가 없는 디폴트 생성자를 생성@AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 생성@RequiredArgsConstructor : final이나 @NonNull으로 선언된 필드만 파라미터로 받는 생성자를 생성@NoArgsConstructor 파라미터 없는 디폴트 생성자 생성@NoArgsConstructorpublic class Member{ private String name; private int age; }NoArgsConstructor를 사용하면 아래와 같은 java코드가 된다public class Member{ private String name; p..
· Spring Boot
Spring Data JPAJPA는 java 오프젝트를 관계형 데이터 베이스에 매핑하는 java표준JPA는 개발자가 데이터 베이스에 데이터를 CRUD(Create, Read, Update, Delete)를 위해 SQL을 작성할 필요 없이 객체를 조작하는 것만으로 데이터베이스에 CRUD수행할 수 있게 해 줌대표적인 JPA기반 구현체로 Hivernate가 있음Spring Data JPA는 JPA를 더 쉽게 사용할 수 있게 도와주는 모듈JPARepository와 같은 인터페이스를 상속, 새로운 Repository 인터페이스 생성, 정해진 규칙대로 메소드명을 명명하면 Spring Data JPA가 자동으로 코드를 제공한다.public interface TodoRepository extends JpaReposit..
· Spring Boot
Spring Framework vs Spring Boot Spring Framework 자바 언어 기반의 프레임워크로, 자바 언어의 가장 큰 특징인 객체 지향 언어의 장점을 살려 애플리케이션 개발을 할 수 있게 도와주는 프레임워크   Spring Boot  스프링 프레임워크 기반 전반적인 스프링 기술들의 설정, 버전 관리를 알아서 해주고,내장서버(톰켓)을 제공 해 도와주는 개발자들이 개발에만 집중하도록 도와주는 프레임워크   스프링부트의 특징의존성 관리스프링 프레임워크에서는개발에 필요한 각 모듈의 의존성을 직접 설정해야 했습니다호환되는 버전 또한 명시해야 정상 작동이 되었습니다​이와 같은 불편함을 해소하기 위해 'spring-boot-starter'라는 의존성을 제공합니다.💡'spring-boot-st..
· Spring Boot
스프링 프레임워크란?자바 기반의 애플리케이션 프레임워크자바 언어를 이용해 엔터프라이즈급 개발을 편리하게 만들어주는 '오픈소스 경량급 애플리케이션 프레임워크'​쉽게 말해, 자바로 애플리케이션을 개발하는데 필요한 기능을 제공하고 쉽게 사용하도록 돕는 도구이다​스프링의 핵심 가치는애플리케이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있게 하는 것!​스프링의 특징과 구조에 대해 알아보자 제어 역전(Ioc)​의존성 주입의 상위 개념으로,스프링 컨테이너가 필요에 따라 개발자 대신 Bean들을 관리(제어) 해주는 행위Spring에서는 xml 파일 또는 어노테이션 방식으로 스프링 컨테이너에 Bean(객체)를 등록하기만 하면, 컨테이너에서 Bean의 생명주기(생성 -> 의존성 설정 -> ..
jjuya 개발 기록
'Spring Boot' 카테고리의 글 목록💕