Programming/Spring
-
슈퍼타입과 서브타입 객체 지향 프로그래밍에는 클래스 간의 상속관계가 있지만, 데이터베이스에는 상속의 개념이 없다. 하지만 슈퍼타입(super type)과 서브타입(sub type)의 모델링 기법이 객체 상속과 유사한 개념을 가진다. 슈퍼타입: 여러 서브타입의 공통 특성을 가지고 있는 엔티티 서브타입: 슈퍼타입의 특성을 상속받은 엔티티 여러 서브타입이 하나의 슈퍼타입을 가질 수 있으며, 각 서브타입은 슈퍼타입에서 정의된 속성 외에도 고유한 속성을 가질 수 있다. 이런 식으로 엔티티 클래스 간의 상속 관계를 설정하면 여러 가지 장점이 있다. 부모 클래스에서 정의한 속성과 메서드를 자식 클래스에서 재사용할 수 있다. 공통된 속성을 하나의 부모 클래스에 정의함으로써 데이터 일관성을 유지할 수 있다. 상속을 통해..
[JPA] 상속관계 매핑하기슈퍼타입과 서브타입 객체 지향 프로그래밍에는 클래스 간의 상속관계가 있지만, 데이터베이스에는 상속의 개념이 없다. 하지만 슈퍼타입(super type)과 서브타입(sub type)의 모델링 기법이 객체 상속과 유사한 개념을 가진다. 슈퍼타입: 여러 서브타입의 공통 특성을 가지고 있는 엔티티 서브타입: 슈퍼타입의 특성을 상속받은 엔티티 여러 서브타입이 하나의 슈퍼타입을 가질 수 있으며, 각 서브타입은 슈퍼타입에서 정의된 속성 외에도 고유한 속성을 가질 수 있다. 이런 식으로 엔티티 클래스 간의 상속 관계를 설정하면 여러 가지 장점이 있다. 부모 클래스에서 정의한 속성과 메서드를 자식 클래스에서 재사용할 수 있다. 공통된 속성을 하나의 부모 클래스에 정의함으로써 데이터 일관성을 유지할 수 있다. 상속을 통해..
2024.02.09 -
스프링에서는 편의를 위해 제공하는 다양한 애너테이션이 있는데, 그중에서 자주 사용되는 애너테이션을 정리해보고자 한다. 각 애너테이션이 하는 역할을 간단하게 설명할 것이며 지속적으로 업데이트할 예정이다. 스프링 기본 애너테이션뿐만 아니라 자주 사용되는 라이브러리의 애너테이션도 포함한다. Spring MVC `@Controller` 클래스에 적용하면 해당 클래스가 컨트롤러로 사용됨 사용자의 요청을 처리하고 Model을 만들어 View에 전달하는 역할을 수행함 @Controller public class MyController { @GetMapping("/hello") public String helloWorld() { return "hello"; //hello.html } } `@RestController`..
Spring Annotation 정리스프링에서는 편의를 위해 제공하는 다양한 애너테이션이 있는데, 그중에서 자주 사용되는 애너테이션을 정리해보고자 한다. 각 애너테이션이 하는 역할을 간단하게 설명할 것이며 지속적으로 업데이트할 예정이다. 스프링 기본 애너테이션뿐만 아니라 자주 사용되는 라이브러리의 애너테이션도 포함한다. Spring MVC `@Controller` 클래스에 적용하면 해당 클래스가 컨트롤러로 사용됨 사용자의 요청을 처리하고 Model을 만들어 View에 전달하는 역할을 수행함 @Controller public class MyController { @GetMapping("/hello") public String helloWorld() { return "hello"; //hello.html } } `@RestController`..
2024.01.23 -
개요 며칠 전 검증 결과로 에러 메시지를 확인하는 과정에서 API를 사용했을 때 errors.properties를 통해 설정한 메시지가 아닌 디폴트 메시지로 나오는 것을 발견했다. 오류 메시지를 처리하는 과정이 각각의 응답 방식(타임리프와 Json 등)에 차이가 있기 때문이었다. 이번 포스트에서는 이전 글에 이어서 스프링이 오류 메시지를 처리하는 방식에 대해 간단히 알아보고자 한다. 이전글: https://hyunrian.tistory.com/84 Bean Validation - 검증 기능 사용 방법 Bean Validation이란? 회원가입 등 특정 필드에 대한 검증 로직을 모든 프로젝트에 적용할 수 있도록 표준화 한 것으로, 애너테이션을 사용하여 쉽게 검증 기능을 구현할 수 있다. 여기에서 다양한 h..
[Spring Boot] MessageSource - 오류 메시지 처리 방식개요 며칠 전 검증 결과로 에러 메시지를 확인하는 과정에서 API를 사용했을 때 errors.properties를 통해 설정한 메시지가 아닌 디폴트 메시지로 나오는 것을 발견했다. 오류 메시지를 처리하는 과정이 각각의 응답 방식(타임리프와 Json 등)에 차이가 있기 때문이었다. 이번 포스트에서는 이전 글에 이어서 스프링이 오류 메시지를 처리하는 방식에 대해 간단히 알아보고자 한다. 이전글: https://hyunrian.tistory.com/84 Bean Validation - 검증 기능 사용 방법 Bean Validation이란? 회원가입 등 특정 필드에 대한 검증 로직을 모든 프로젝트에 적용할 수 있도록 표준화 한 것으로, 애너테이션을 사용하여 쉽게 검증 기능을 구현할 수 있다. 여기에서 다양한 h..
2024.01.20 -
H2 데이터베이스의 두 가지 모드 H2 데이터베이스는 서버 모드(Server Mode)와 내장 모드(Embeded Mode) 중 하나로 선택하여 사용할 수 있다. 그중 Embeded 모드는 H2 DB를 애플리케이션 내부에 포함시켜 사용하는 모드로, 애플리케이션과 함께 실행되는 내장 데이터베이스로 활용된다. 애플리케이션이 종료되면 Embeded 모드로 동작하는 H2 DB도 함께 종료되고, 데이터도 함께 사라진다. Embeded 모드를 사용하면 별도의 서버 프로세스를 실행할 필요가 없고, DB 파일이나 인메모리 DB를 사용하여 간단하게 데이터를 저장하거나 검색할 수 있다. 테스트의 필요성과 고려사항 소프트웨어 개발에서 테스트는 매우 중요한 단계다. 코드에서 발생할 수 있는 버그를 조기에 발견하여 수정할 수 ..
[Spring Boot] Embeded Mode로 테스트 하기 (feat. H2 Database)H2 데이터베이스의 두 가지 모드 H2 데이터베이스는 서버 모드(Server Mode)와 내장 모드(Embeded Mode) 중 하나로 선택하여 사용할 수 있다. 그중 Embeded 모드는 H2 DB를 애플리케이션 내부에 포함시켜 사용하는 모드로, 애플리케이션과 함께 실행되는 내장 데이터베이스로 활용된다. 애플리케이션이 종료되면 Embeded 모드로 동작하는 H2 DB도 함께 종료되고, 데이터도 함께 사라진다. Embeded 모드를 사용하면 별도의 서버 프로세스를 실행할 필요가 없고, DB 파일이나 인메모리 DB를 사용하여 간단하게 데이터를 저장하거나 검색할 수 있다. 테스트의 필요성과 고려사항 소프트웨어 개발에서 테스트는 매우 중요한 단계다. 코드에서 발생할 수 있는 버그를 조기에 발견하여 수정할 수 ..
2024.01.16 -
Bean Validation이란? 회원가입 등 특정 필드에 대한 검증 로직을 모든 프로젝트에 적용할 수 있도록 표준화 한 것으로, 애너테이션을 사용하여 쉽게 검증 기능을 구현할 수 있다. 여기에서 다양한 검증 애너테이션의 종류와 설명을 볼 수 있다. Bean Validation 사용 방법 1. 의존관계 추가 Bean Validation을 사용하려면 우선 build.gradle에 의존관계를 추가해야 한다. 추가 후 refresh하는 것도 잊지 않도록 한다. implementation 'org.springframework.boot:spring-boot-starter-validation' 2. 적용 의존관계를 추가하면 @NotNull, @Range 등 검증과 관련된 애너테이션을 사용할 수 있다. 테스트용으로 ..
[Spring Boot] Bean Validation - 검증 기능 사용 방법Bean Validation이란? 회원가입 등 특정 필드에 대한 검증 로직을 모든 프로젝트에 적용할 수 있도록 표준화 한 것으로, 애너테이션을 사용하여 쉽게 검증 기능을 구현할 수 있다. 여기에서 다양한 검증 애너테이션의 종류와 설명을 볼 수 있다. Bean Validation 사용 방법 1. 의존관계 추가 Bean Validation을 사용하려면 우선 build.gradle에 의존관계를 추가해야 한다. 추가 후 refresh하는 것도 잊지 않도록 한다. implementation 'org.springframework.boot:spring-boot-starter-validation' 2. 적용 의존관계를 추가하면 @NotNull, @Range 등 검증과 관련된 애너테이션을 사용할 수 있다. 테스트용으로 ..
2024.01.05 -
Spring MVC - HttpSession HttpSession은 서블릿이 제공하는 일종의 쿠키로, `Cookie : JSESSIONID=3LKSAJFKJ20298349028SD9F0`과 같이 랜덤값으로 설정되며 주로 로그인 처리를 위해 사용한다. 세션에 로그인한 사용자의 정보를 넣어두고 사용하는 것이다. 컨트롤러에서 세션 사용하기 1. 세션에 값 담기 컨트롤러의 파라미터로 `HttpServletRequest`를 받아 `request.getSession()`으로 세션을 생성할 수 있다. @PostMapping("/login") public String login(@ModelAttribute User user, HttpServletRequest request) { (검증 로직 생략) HttpSession..
Session에 대해서 - 컨트롤러에서 HttpSession 사용하기Spring MVC - HttpSession HttpSession은 서블릿이 제공하는 일종의 쿠키로, `Cookie : JSESSIONID=3LKSAJFKJ20298349028SD9F0`과 같이 랜덤값으로 설정되며 주로 로그인 처리를 위해 사용한다. 세션에 로그인한 사용자의 정보를 넣어두고 사용하는 것이다. 컨트롤러에서 세션 사용하기 1. 세션에 값 담기 컨트롤러의 파라미터로 `HttpServletRequest`를 받아 `request.getSession()`으로 세션을 생성할 수 있다. @PostMapping("/login") public String login(@ModelAttribute User user, HttpServletRequest request) { (검증 로직 생략) HttpSession..
2023.12.21