EntityManagerFactoryjpa에 사용되는 인터페이스로 EntityManager 인스턴스를 생성하고 관리하는 역할을 합니다.EntityManagerFactory를 사용하는 이유EntityManager 생성: EntityManagerFactory는 EntityManager 인스턴스를 생성합니다. EntityManager는 JPA 엔티티 관리를 위한 핵심 인터페이스입니다.설정 관리: EntityManagerFactory는 데이터베이스 연결 정보, 트랜잭션 관리, 캐싱 등의 JPA 설정을 관리합니다.성능 향상: EntityManagerFactory는 내부적으로 연결 풀링, 캐싱 등의 기능을 제공하여 애플리케이션 성능을 향상시킬 수 있습니다.스레드 안전성: EntityManagerFactory는 스레..

httpSession 객체를 이용하여 로그인을 한 뒤에 로그아웃을 해야할 때,세션의 정보를 제거하기 위해 취하는 방법으로 HttpSession의 removeAttribute()와 invalidate() 메서드가 존재한다.invalidate() 메서드는 사전적 의미로는 무효화한다라는 의미를 지녔고, 기능은 세션 자체를 무효화 하고 제거를 한다.removeAttribute는 세션에 등록된 자바 세션 저장형태인 Map형태의 저장형태를 가지게 되는데, 이때 가지고 온 session의 특정 정보인 key-value만 제거한다.따라서 removeAttribute로 키만 제거하게 되면 HttpSession 인스턴스는 Was의 세션 저장소에 남아 있기 때문에 invalidate()를 사용하는 것이 좋다.

ERROR 12256 --- [ main] o.s.boot.SpringApplication : Application run failedFactory method 'dataSource' threw exception with message: Cannot load driver class: com.mysql.cj.jdbc.DriverSpring Boot Application에서 MySQL JDBC드라이버를 찾을 수 없다는 오류가 발생했습니다.드라이버 종속성을 추가하기 위해서 build.gradle 파일에 아래 코드 작성.implementation 'mysql:mysql-connector-java:8.0.32'추가로 DB에 대한 정보 작성코드를 추가해주면서 오류를 해결할 수 있었습니다.

ERROR 11584 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed라는 오류로 Application의 실행을 실패하였다고 오류가 떴다.이유로는 database-platform 설정을 최신 Hibernate 버전에서 지원하는 MySQL버전으로 다시 수정을 하지 않았기 때문이다. 아래 코드에서 # spring data jpa 설정jpa: database-platform: org.hibernate.dialect.MySQL5InnoDBDialect open-in-view: false show-sql: true hibernate: ddl-auto: update이 코드로 다시 변경을 해주면서 제대로 정상 작동하는 것을 ..

스프링 부트 작업을 하다가 콘솔창에 Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.라는 오류 코드를 만났다. 해결방법으로 Run - Edit Configurations...Modify options 클릭.Enable debug output 체크

Lombok의 자주 사용하는 어노테이션을 정리해보려고 한다.어노테이션이란?어노테이션이란 사전적 의미로 주석이란 의미인데, 실제로 주석으로 사용자가 해당 어노테이션을 통해 클래스에 선언된 표시를 읽기도 하지만, 어노테이션을 통해 해당 클래스 객체에 대한 프로그램 기능을 부여하는 것이 큰 특징입니다.대표적인 특징으로 메타데이터를 제공함으로써 컴파일러나 빌드 도구, 런타임 환경 등의 코드를 더 잘 처리할 수 있게 만들어 줍니다.문서화를 지원함으로써 개발자들이 코드를 더 쉽게 이해를 하고 유지보수를 할 수 있게 해줍니다.코드 생성 도구에 의해서 새로운 코드를 자동으로 생성하는데에 도움을 줍니다.런타임시에 특정 기능을 실행하도록 정보를 제공합니다.어노테이션 종류@NoArgsConstructor : 매개 변수가 ..

Spring FrameworkSpring Framework는 Java 애플리케이션 개발을 위한 포괄적인 프레임워크입니다.특징의존성 관리, 웹 개발, 데이터 액세스, 보안 등 다양한 기능을 제공합니다.개발자가 직접 구성 및 설정해야 하는 부분이 많습니다.애플리케이션 개발 시 필요한 의존성을 직접 관리해야 합니다.사용 이유복잡한 애플리케이션 개발에 적합합니다.개발자가 직접 프레임워크 구성을 제어할 수 있고,다양한 기능과 확장성을 필요로 하는 경우에 사용됩니다.Sprign BootSpring Boot는 Spring Framework 기반의 빠른 애플리케이션 개발을 지원하는 프레임워크입니다.특징자동 구성 기능으로 개발 시간을 단축할 수 있고,내장 웹 서버(Tomcat, Jetty 등)를 제공하여 별도의 서버 설..
@Entity해당 클래스가 엔티티임을 나타냅니다.엔티티 클래스는 반드시 기본 생성자가 있어야 합니다.@Table엔티티와 매핑될 데이터베이스 테이블을 지정합니다.name, schema, catalog, uniqueConstraints 등의 옵션을 제공합니다.@Id엔티티의 기본 키(Primary Key)를 지정합니다.@GeneratedValue기본 키 값의 자동 생성 전략을 지정합니다.IDENTITY, SEQUENCE, TABLE, AUTO 등의 전략을 사용할 수 있습니다.@Column엔티티 필드와 데이터베이스 컬럼을 매핑합니다.name, nullable, unique, length, precision, scale 등의 옵션을 제공합니다.@Temporal날짜/시간 타입 필드를 지정합니다.TemporalTyp..
RegistrationRegistration (클라이언트 등록)OAuth2 인증 프로세스를 사용하기 위해서는 먼저 클라이언트 애플리케이션을 등록해야 합니다.클라이언트 등록 시 필요한 정보Client ID: 클라이언트를 식별하는 고유한 IDClient Secret: 클라이언트 인증을 위한 비밀 키Redirect URI: 인증 완료 후 리디렉션될 URL권한 범위(Scope): 클라이언트가 요청할 수 있는 권한 범위클라이언트 등록은 일반적으로 OAuth2 Provider 측에서 제공하는 관리 콘솔이나 API를 통해 이루어집니다.ProviderProvider (인증 서버 구현)OAuth2 Provider는 인증 서버 역할을 수행하며, 다음과 같은 기능을 구현해야 합니다클라이언트 인증: 등록된 클라이언트 ID와 ..
MustacheMustache는 논리 없는 템플릿 엔진(logic-less template engine)으로, 다양한 프로그래밍 언어에서 사용되는 템플릿 시스템입니다. Mustache는 데이터와 프레젠테이션을 분리하는 것을 목표로 하며, 템플릿 내에 복잡한 로직을 포함하지 않습니다.논리 없는 템플릿: Mustache 템플릿에는 조건문, 반복문 등의 복잡한 로직이 포함되지 않습니다. 대신 데이터 바인딩, 섹션, 부분 템플릿 등의 기능을 제공합니다.다양한 언어 지원: Mustache는 JavaScript, Ruby, Python, Java, C++, PHP 등 다양한 프로그래밍 언어에서 구현되어 있어 언어 간 호환성이 높습니다.간단한 문법: Mustache 문법은 매우 간단하며, 중괄호 {{}} 기호를 사용..