일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 99클럽
- 자료구조
- 코딩문제
- 코딩
- 자바
- 정렬 알고리즘(sort algorithm)
- 회고
- cs 공부)준비
- HTML
- 면접(java
- aop
- Grafana
- Til
- 이진 탐색(binary search)
- CS
- 코딩테스트 준비
- Entity
- wil
- 개발자 취업
- Java
- github
- ArrayList
- 프로그래머스
- 항해99
- GIT
- Spring
- css
- 배열
- 코딩공부
- 메서드
- Today
- Total
목록프레임워크/spring (29)
hayu's 개발 일지
일대다(1:N) 단방향 관계 일대다 관계는 @OneToMany이다. 다대일 관계에서는 @JoinColumn을 둔 엔티티에 외래키가 생성되고 관리한다. 하지만 일대다 단방향 관계에서는 team 엔티티의 반대편인 member엔티티에 외래키가 생성되고 관리된다. 일반적으로 일대다 단방향 관계 매핑은 권장되지 않는다. 연관관계의 주인 엔티티에서 외래키를 관리하지 않고 반대편 엔티티에서 외래키를 관리하기 때문에 관리가 부담스럽다.(1:N에서 N이 관리한다.) → 단방향으로 할때는 일대다 보다는 다대일 단방향으로 하는 것이 좋다. 일대다(1:N) 양방향 관계 일반적으로 일대다 양방향 관계는 존재하지 않는다. 일대다 관계의 주인은 항상 다(N)이기 때문에 일대다 양방향이나 다대일 양방향은 같은 말이다. 다대다(N:M..
엔티티(Entity) 란? 데이터 베이스(DB)의 테이블을 나타내는 클래스이다. 이 클래스는 JPA(Java Persistence API)를 사용하여 데이터 베이스에 저장되고 관리된다. 추가 내용은 이 블로그에서 참고하자 : https://yuha00e.tistory.com/entry/TIL240308-스프링-부트와-AWS로-혼자-구현하는-웹서비스-3장-JPA 엔티티(Entity) 연관관계 관계형 데이터 베이스는 테이블 간 Foreign Key(외래키)로 연관관계를 맺고 JOIN을 통해 테이블을 조회한다. 연관관계에서는 생각해야할 부분이 몇 가지 존재한다. 방향: 단방향, 양방향이 있다. 한쪽만 참조하면 단방향, 서로 참조하면 양방향이라고 한다. 다중성: 일대일, 일대다, 다대일, 다대다 연관관계의 주인..
Entity란? Entity 클래스는 실제 DB 테이블과 매핑되는 클래스로 데이터 베이스의 테이블에 존재하는 컬럼들을 필드로 가지는 객체이다. (엔티티 클래스는 실제 DB의 테이블과 1:1 매핑된다.) Entity는 데이터 베이스 영속성의 목적으로 사용되는 객체이기 때문에 요청(Request)이나 응답(Response)을 전달하는 클래스로 사용하는 것은 좋지 않다. Entity에서는 Setter 메서드의 사용을 지양해야 한다. 변경되지 않는 인스턴스에 대해서도 Setter로 접근이 가능해지기 때문에 객체의 일관성, 안전성을 보장하기 힘들어진다.(Setter 대신 생성자나 Builder를 사용하는 것이 좋다.) Dto란? 계층(Layer) 간 데이터 교환이 이루어질 수 있도록 하는 객체이다.(직렬화에도 사..
문제 엔티티 연관매핑 후 코드 실행했는데 테이블에 연관된 엔티티의 아이디값이 들어가지 않고 null이 나오는 문제. 원인 아직 모르겠다. 엔티티 연관관계도 확인했는데 서비스 코드에서 choice에 게임 아이디 주입 코드가 필요한 것 같다. /* * 밸런스 게임 생성*/ @Transactional public GameResponseDto createGame(GameRequestDto gameRequestDto, UserDetails userDetails) { User user = userRepository.findByEmail(userDetails.getUsername()) .orElseThrow(()->new CustomApiException("사용자를 찾을 수 없습니다.")); /* * 선택지 생성*/..
Swagger 란? - API의 스펙(spec)을 설명하고 관리할 수 있는 API문서이다. - API 사용 방법을 이해관계자에게 알려주는 문서이다. 1. application.properties server.forward-headers-strategy=FRAMEWORK spring.mvc.pathmatch.matching-strategy=ant_path_matcher url = "" dom_id = "#swagger-ui" validatorUrl = "" 2. build.gradle // Swagger implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' 3. SwaggerConfig 3.1 Spring Security impo..
Builder Pattern 이란? - 복잡한 객체의 생성 과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만드는 생성 패턴이다. - 생성자에 들어갈 매개 변수를 메서드로 하나한 받아서 마지막에 빌드해서 객체를 생성한다. Builder Pattern 탄생 배경 - 이전에는 Setter 메서드를 호출함으로써 유연적으로 객체 생성이 가능해졌다. 하지만 이런 방식은 객체 생성 시점에 모든 값들을 주입하지 않아 일관성 문제와 불변성 문제가 나타났다. 일관성문제 - 필수 매개변수는 객체가 초기화될 때 반드시 설정되어야 하는 값이다. 하지만 개발자가 메서드를 호출하지 않았다면 이 객체는 일관성이 무너진 상태가 된다. 즉, 객체가 유효하지 않은 것이다. 불변성문제 - Setter 메서드는 객체를 처음 생성할 때..