일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 프레임워크
- JavaScript
- 우아한형제들
- DFS
- Vue
- 데이터베이스
- BOJ
- Algorithm
- Vue.js
- 탐색알고리즘
- codeground
- BFS
- mobx
- 알고리즘
- 단위테스트
- BAEKJOON
- 우아한테크캠프
- react
- 웹프로그래밍
- TypeScript
- framework
- Spring
- 백준
- Java
- SQL
- 연습문제
- JPA
- springboot
- Backtracking
- Database
- Today
- Total
목록Spring (7)
설모의 기록
상속 관계 매핑 여러 클래스를 구현할 때 공통된 기능이나 변수가 있다면 상위 클래스를 만들어 그 곳에 모아두는 '상속' 을 이용하는 경우가 많습니다. 가장 대표적인 예로 Animal 클래스라는 상위 클래스를 만들어 bark() 라는 함수를 만들어두고, 하위 클래스로 Dog, Lion, Cat 등을 만들어 bark() 함수를 오버라이딩하는 경우입니다. 그렇다면 객체의 상속 관계가 데이터베이스에서는 어떻게 매핑이 될까요? 이에 대한 설명을 아래에 기록하겠습니다. 상속 관계 매핑사실 RDB에서는 '상속' 개념이 따로 있지 않습니다. 따라서 ORM 에서 이야기하는 상속 관계 매핑은 객체의 상속 구조와 데이터베이스의 슈퍼타입 서브타입 관계를 매핑하는 것입니다.슈퍼타입-서브타입 논리 모델을 실제 물리 모델인 테이블..
데이터베이스에서의 연관관계와 JPA 에서의 연관관계 Spring 을 공부하면서 가장 헷갈리는 내용이 연관관계 매핑입니다. 데이터베이스의 외래키와 똑같이 생각하다가 함정에 빠지는 것이 태반입니다.데이터베이스에서는 외래키라는 하나의 컬럼을 가지고 연관관계를 표현합니다. 그러나 JPA 에서는 객체를 매핑합니다. 따라서 JPA에서의 연관관계 매핑은관계의 방향다중성 (다대일? 일대다? 다대다?)연관관계의 주인이 세가지가 중요합니다. 아래에 정리한 내용에서 위의 3가지를 알아볼 것입니다. 단방향 연관관계연관관계 중 다대일(N:1) 을 먼저 알아보겠습니다. 다음에서 설명할 예제의 객체들은 다음의 관계입니다.사람은 가족이 있습니다.사람은 하나의 가족에만 소속될 수 있습니다.사람과 가족은 다대일 관계입니다.위의 관계를 ..
JPA Persistence Spring JPA 를 공부하다보면 persistence 라는 말을 많이 들어보게 됩니다. (출처 : 네이버 영어사전) 무슨 소리지...하고 매번 넘어갔었는데 이번 기회에 정리를 하게 되었습니다. JPA 에서의 영속성은 위의 단어 해석처럼 Entity를 영구적으로 저장해주는 환경을 의미합니다. 책의 내용을 바탕으로 자세하게 정리해보겠습니다. EntityManagerFactory 와 EntityManager데이터베이스를 하나만 사용하는 애플리케이션은 보통 EntityManagerFactory 를 하나만 생성합니다. EntityManagerFactory 는 여러 EntityManager 를 생성하는 객체입니다. 두 객체의 차이점은 아래와 같습니다.EntityManagerFacto..
HandlerMethodArgumentResolver 인터페이스 적용 Spring 프레임워크를 이용해 API 를 관리할 때 컨트롤러에 들어오는 파라미터를 공통적으로 추가해야 하는 경우가 있습니다. 예를 들어, 로그인한 유저만 할 수 있는 기능이 많다고 생각해보자. 그러면 보통은 매번 HttpSession 에서 유저를 꺼내 체크해주는 로직이 반복될 것입니다.이럴 때 사용하는 것이 HandlerMethodArgumentResolver 인터페이스입니다. HandlerMethodArgumentResolver 는 컨트롤러에 사용자의 요청이 도달하기 전에 요청에 대한 파라미터를 수정해 넘길 수 있습니다. 아래의 예제로 살펴보겠습니다. 우선 @LoginUser 라는 인터페이스를 구현하겠습니다.import java.l..
Spring @Entity 간의 관계 + 프론트엔드 코드 구성 오늘은 어제 구현했던 게시판을 좀 더 리팩토링하는 시간을 가졌습니다. 친구들과 프로젝트를 하다보면 데이터베이스 테이블끼리 서로 Join 해야 하는 것에 항상 고민을 많이 했었는데요. ORM 표준인 JPA 를 사용하다보니 이런 고민을 많이 안할 수 있다는 것에 놀라웠습니다. 이번 글에서는 캠프 동기와 함께 예외 처리에 대해 고민한 부분과 ManyToOne 관계인 테이블 처리에 대해 말씀드리겠습니다. 그리고 서버에게 비동기적으로 요청하거나 서버가 보내는 데이터를 받아 비동기적으로 처리하는 클라이언트 코드에 대해 알아보겠습니다. 예외처리우아한테크캠프에 참여하지 못했다면 깨닫지 못했을 예외처리에 대해 말씀드리겠습니다. 이전에는 예외처리를 try-ca..
HTTP 통신과 Spring 에서의 Bean 객체 오늘은 HTTP 통신에서의 쿠키와 세션에 대한 개념과 Spring 에서의 Bean 객체에 대해 공부했습니다. 학교 강의를 통해 배운 내용이라고 생각했었는데 포비의 강의를 들으며 다시 한 번 기억할 수 있었던 하루가 됐습니다. (포비는 항상 절 반성하게 만드는..) 쿠키와 세션(이미지는 포비의 강의 자료에서 가져왔습니다.) 위의 이미지에서 보면 Client 가 Server 에게 요청을 보내고, Server 가 응답을 보낸 후 Client 가 다시 요청을 보내는 과정을 나타낸 그림입니다.첫번째 HTTP 통신 과정을 보면, Client 가 Server 에게 GET 요청을 보냈고 Server는 그에 대한 응답으로 200 응답코드와 session-id 라는 쿠키에..
HTTP통신과 Spring을 이용한 데이터 저장 오늘은 기본적인 HTTP통신이 이루어지는 간략한 과정과 h2database 를 이용해 Spring에서 데이터를 관리하는 방법에 대해 학습했습니다. HTTP통신 브라우저에서 http://hyeooona825.tistory.com/ 를 검색하면 그냥 해당 페이지 하나가 로드되는 것과 같아 보이지만, 실제로는 많은 일이 일어납니다. 위의 그림이 간략하게 나타낸 모습입니다. 1. http://hyeooona825.tistory.com/ 를 입력하면 해당 도메인에 대한 IP주소를 알기 위해 DNS 서버에게 요청합니다. 그림에는 DNS 서버가 한 대이지만, 실제로는 여러 상위 DNS 서버가 있을 수 있습니다. 2. DNS 서버는 요청받은 도메인에 해당하는 IP주소를 ..