Developer Diary/Java, Spring 4

Spring Boot Security 람다식으로 수정

security에 의한 로그인 화면을 사용하지 않게 설정하려고아래 코드를 사용하였더니, 아래 메시지를 마주하였다. 'csrf()' is deprecated since version 6.1 and marked for removal 'formLogin()' is deprecated since version 6.1 and marked for removal package com.companion.app.config;import org.springframework.context.annotation.Bean;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.w..

Spring Boot Project dependencies 설정

dependencies 설정 시 어느 것을 사용하는 게 적합할지 궁금하여 알아본 내용을 정리하였다. LombokLombok은 주로 컴파일 타임에만 필요한 라이브러리이다.implementation: 의존성을 컴파일 타임과 런타임에 모두 포함시킨다.compileOnly: 의존성을 컴파일 타임에만 포함시키며, 런타임에는 포함시키지 않는다. 빌드 과정에서만 Lombok을 사용하고, 생성된 코드에는 Lombok이 포함되지 않는다. Lombok 주석을 사용하여 소스 코드를 생성하지만, 실제 실행 시에는 해당 코드가 이미 존재하기 때문에 Lombok 라이브러리가 필요하지 않다. 이 경우 compileOnly로 설정하여 불필요한 의존성을 줄일 수 있다.💡 Lombok은 애너테이션을 통해 소스 코드를 생성하고 수정하는..

[Spring Boot] ORM, 엔티티매니저, 영속성 컨텍스트

프레젠테이션 계층HTTP 요청을 받고 이 요청을 비즈니스 계층으로 전송하는 역할컨트롤러가 프레젠테이션 계층 역할을 한다. 비즈니스 계층비즈니스 로직을 처리한다.비즈니스 로직이란 서비스를 만들기 위한 로직을 말한다. 퍼시스턴스 계층모든 데이터베이스 관련 로직을 처리한다.리포지터리가 퍼시스턴스 계층의 역할을 한다. ORM (Object-Relational Mapping)자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법ORM이 있다면 데이터베이스의 값을 객체처럼 사용할 수 있다. ORM의 장점과 단점장점단점1. SQL을 직접 작성하지 않고 사용하는 언어로 데이터베이스에 접근할 수 있다.1. 프로젝트의 복잡성이 커질수록 사용 난이도도 올라간다.2. 객체지향적으로 코드를 작성할 수 있기 때문에 비즈니스 로직에..

[Spring boot] Hibernate vs JPA

JPA defines the specification. It is an API.JPA는 엔티티가 무엇인지 정의하는 방식을 정의한다.엔티티를 정의하는 방법은 @Entity 어노테이션을 추가하는 것이다. How do you define a primary key? @IdHow do you map attributes? @Columnpackage com.in28minutes.springboot.learnjpaandhibernate.course.course;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.Id;//자바 빈과 테이블 사이에 매핑을 생성하고 //그 매핑을 이용해서 값을 삽입하고 값을..