JPA 관계 설정 JPA 관계 설정 JPA 관계 설정이란 단방향 연관관계 매핑 일대다 단방향[1:N] 일대다 단방향[1:N] 예제 다대일 단방향[N:1] 다대일 단방향[N:1] 예제 다대일 양방향[N:1] 다대일 양방향[N:1] 예제 편의 메소드 다대다(N:N) 양방향 다대다(N:N) 양방향 예제 다대다 연관관계 정리 마치며 JPA 관계 설정이란 엔터티 또는 도메인들은 각각 관계를 맺고 있습니다. 예를 들어 유저는 여러 개의 제품을 주문할 수 있다고 하면 유저 엔터티는 주문 엔터티와 관계를 갖습니다. 또 주문 엔터티는 어떠한 제품이 주문됐는지 알아야 하기 때문에 제품엔터티와 관계를 맺습니다. JPA에서 관계 설정을 하게 되면 알아서 객체에서는 참조를 사용해서 관계를 맺고 테이블은 외래 키를 통해 관계를 ..
서블릿 컨테이너, 스프링부트 동작 과정 autoauto- 서블릿 컨테이너, 스프링부트 동작 과정auto- 서블릿 컨테이너auto- 서블릿 구현auto - Servletauto - GenericServletauto - HttpServletauto - 서블릿 실행순서auto- Spring boot와 Servletauto - 스프링 부트 실행과정auto - 클라이언트 요청으로부터 DispatchServlet의 전체 흐름auto - Application contextautoauto 톰켓 즉 서블릿 컨테이너에 의해 개발자가 정의한 프로그램들이 실행되고, 더 나아가 스프링 부트는 어떻게 실행될까 해서 글을 정리하게 되었습니다. 서블릿 컨테이너 먼저 서블릿컨테이너를 정의하면 다음과 같을 수 있다. 서블릿 컨테이너는 ..
정규식 / 정규표현식 (Regular Expressions; Regex) 정규표현식은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단이다. matches (일치하는지 확인) replace(패턴에 맞는 값을 새로운 값으로 치환) Matcher, Pattern, find(), group() find(), group() (패턴에 맞는 값 1개씩 찾아내기) find(), group() (패턴에 맞는 값 모두 찾아내기) 대표적인 정규표현식 표현식 설명 ^ 문자열의 시작 ([]대괄호 안에서는 부정을 의미한다.) $ 문자열의 종료 . 임의의 한 문자 (문자의 종류 가리지 않음) * 앞 문자가 없을 수도..
Step-05 : 테스트 코드 작성하기 목차 온라인 서점 API 만들기로 살펴보는 Spring Boot OOP 5 Step-05 : 테스트 코드 작성하기 목차 테스트 코드의 필요성 Test code 작성 방법 Junit Mockito Unit Test(단위 테스트) 컨트롤러 테스트(예제) 서비스 테스트(예제) 4. Integration Test(통합 테스트) 통합테스트 예제 @RunWith(SpringRunner.class) @SpringBootTest MockMvc 사용하기 TDD 5. 마무리하며 테스트 코드의 필요성 회원가입 기능을 완성했지만 기능을 테스트하기 위해서는 Postman이나 Swagger로 테스트를 하거나 프론트엔드 화면을 구성해서 테스트를 해야 합니다. 기능 테스트 하나를 해야 하더라도..
Step-04 회원가입 Service 만들기 : 응용영역 효율적으로 관리하기 - Part2 응용 영역(서비스) 이번 단계는 응용영역 효율적으로 관리하기 - Part2 편으로 어떻게 하면 응용영역을 응집력 있고, 변경에 유연하고, 가독성 좋은 코드를 작성할지에 대해 알아볼 것입니다. 이장에서는 크게 아래와 같은 주제로 응용영역을 효율적으로 관리하는 방법에 대해 알아보겠습니다. 책임 도메인 HelperService 만들기 DTO 사용하기 최종적인 회원가입 코드 Swagger를 통한 회원 가입 API CALL 4. 책임(단일책임원칙) 객체지향 설계를 하는 데 있어 기준을 잡아주는 원칙들이 있는데 이것을 SOLID 원칙이라고 합니다. 이중 먼저 단일 책임 원칙에 대한 내용을 얘기하려고 합니다. 단일 책임 원칙은..
온라인 서점 API 만들기로 살펴보는 Spring Boot OOP 4 Step-04 회원가입 Service 만들기 : 응용영역 효율적으로 관리하기 - Part1 응용 영역(서비스) 이 단계에서는 회원가입 기능을 구현하면서 응용 영역을 어떻게 하면 응집력 있고, 변경에 유연한 코드를 작성할지에 대해 알아볼 것입니다. 크게 아래와 같은 주제로 응용영역을 효율적으로 관리하는 방법에 대해 알아보겠습니다. (소프트웨어에서 변경이 유연하고, 확장가능한 코드는 아주 핵심적인 부분입니다.) 서비스크기 요구사항 정리 및 초난감 회원가입 Service 구현 캡슐화 1. 서비스크기 드디어 회원가입을 하기 위한 signUp 서비스를 구현할 차례입니다. 먼저 회원가입 서비스 기능을 구현하기 전에 회원가입 서비스를 어느 정도의 ..
Step02 - 회원 엔터티 정의 1. 회원 엔터티 정의 먼저 앞에서 설계 테이블을 간단히 보겠습니다. 다음과 같은 member 테이블이 있었습니다. 회원을 가입시키기 위해서는 member 엔터티를 정의해야할 필요가 있습니다. 위 그림 테이블을 기반으로 Member 엔터티를 정의해볼것입니다. @Entity @Table(name = "member") @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter public class Member { @Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; @Embedded private Email ema..
Step01 - 프로젝트 설계 및 프로젝트 생성 이장에서는 아래의 내용을 중점으로 살펴볼 것 입니다 어떤 서비스를 만들것인가. 도메인구조, 테이블구조 프로젝트구조 Spring boot 프로젝트 생성 1. 어떤 서비스를 만들것인가. 온라인 서점에서 한번에 여러개의 책을 주문할 수 있는 주문 시스템 API 서비스 구축 간단히 말하면 위 소제목과 같은 간단한 API 서버를 만들 것입니다. 좀 더 상세히 말하면 아래와 같을 수 있습니다. 책을 주문하기 위해서는 Spring boot 온라인 서점 회원이어야 합니다. 회원은 여러 개의 주문 신청을 할 수 있습니다. 주문을 할 때 한 번에 여러 개의 책을 주문할 수 있습니다. 책은 여러 주문의 의해 주문될 수 있습니다. 주문이 완료된 이후에 배송이 시작됩니다. 배송을..
- Total
- Today
- Yesterday
- Github
- Chache
- HMAC
- tobi
- OAuth
- SSH
- Collection
- Quasar
- batch
- vue
- eslint
- Angular
- Infra
- OS
- java
- kotlin
- IntelliJ
- Spring
- aws
- Gradle
- jenkins #mac방화벽
- JPA
- Jenkins
- Linux
- javascript
- https
- network
- #linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |