전체 글 썸네일형 리스트형 연관관계 매핑(2) 일대다 단방향 관계 매핑단점 : 매핑한 객체가 관리하는 외래 키가 다른 테이블에 있다 ( → insert, update SQL 모두 필요)@JoinColumn 사용→ 일대다 단방향 매핑보다는 다대일 양방향 매핑이 권장됨 일대일양쪽이 하나의 관계만 가짐. 반대도 일대일 → 주 / 대상 테이블 중 아무 테이블이나 외래키를 가질 수 있음객체 매핑에 @OneToOne 사용. 이때 외래 키에 유니크 제약조건을 추가해야 DB가 물리적으로 일대일 임을 보장 가능1. 주 테이블에 외래 키2. 대상 테이블에 외래 키 - 양방향으로 매핑해서 사용, 단방향은 지원 X 🛑 주 테이블 VS 대상 테이블 ✔️ 주 테이블 (연관관계의 주인)외래 키(Foreign Key)를 가지고 있는 쪽즉, DB에 실제로 외래 키 컬럼이 .. 더보기 길벗 코딩 자율 학습단 1주차 JDK : 자바 코드의 번역과 실행을 담당하는 자바 개발 도구start.spring.io 에서 Artifact = 프로젝트 이름빌드(Build) = 소스 코드를 실행할 수 있는 독립적인 형태로 만드는 것→ 프로젝트를 빌드 = 독립된 파일이 생성되고 이를 실행해 프로젝트에 작성한 기능들 이용가능해짐 메타데이터 : 컴파일 및 실행과정에서 코드를 어떻게 처리해야 할지 알려주는 추가 정보템플릿화한다 : 코드를 하나의 틀로 만들어 변수화한다 스프링 부트 프로젝트의 구조java = 자바 코드 저장resources = 외부 파일 저장+) localhost 의 ip주소 = 127.0.0.1 웹 서비스의 동작 원리웹 서비스는 클라이언트의 요청에 따른 서버의 응답으로 동작웹 브라우저(클라이언트) ←→ 스프링 부트(서버).. 더보기 연관관계 매핑(1) 관계 맺기객체 : 참조(주소)를 사용테이블 : 외래키(FK)를 사용' 객체의 참조와 테이블의 외래 키를 매핑 ' keyword● 방향 단방향 (한 쪽만 참조)/ 양방향 (서로 참조) || 테이블 관계는 항상 양방향● 다중성 다대일 / 일대다 / 일대일 / 다대다● 연관관계의 주인 객체를 양방향 연관관계로 만들 경우 주인 명확히 해야함단방향 연관관계 (1 : N) @ManyToOne - 다중성을 나타내는 어노테이션@JoinColumn(name="매핑할 외래 키 이름") - 외래 키를 매핑하는 것→ 이것은 1:N의 N에 해당하는 entity에 작성 !! JPA에서 엔티티를 저장할 때 연관된 모든 엔티티는 영속 상태여야 함 연관관계가 있는 엔티티를 조회하는 방법객체 그래.. 더보기 내 첫 스프링 CRUD 만들기 드디어 스프링으로 첫 CRUD를 만들게 되었다.. 아니나 다를까 처음 해보는건 막막하다...도메인 → 레포지토리 → 서비스 → 컨트롤러 순으로 만든다고 한다 1️⃣ 클래스명은 대문자로 시작 (Java Naming Convention)2️⃣ 일반적으로 "도메인 객체"는 단수형을 사용 (Members ❌ → Member ⭕) 정적 팩토리 메서드: 객체를 생성하는 역할을 하는 정적(static) 메서드이를 통해서 직접 생성자를 호출하는 대신, Member.create(...) 같은 메서드를 제공하는 방식 장점✅ 필요한 상황에 맞게 정적 팩토리 메서드를 여러 개 만들어 사용하면 된다!✅ 이름을 잘 지으면 객체의 용도를 직관적으로 알 수 있어 가독성이 좋아진다!✅ 객체 생성 과정을 변경해야 할 때, 기존 코드 .. 더보기 SuperStruct 왜 Superstruct 를 사용할까?node.js + express 환경 → express는 입력 데이터 검증을 안해줌node.js+express는 서버 환경이고, 대부분의 요청은 외부 클라이언트로 부터 옴 = 이 데이터는 믿을 수 없음 ex) email 자리에 숫자 넣기, users POST요청에서 body에 이름이 빠져있는 등..typescript → 런타임 검증을 못함 (컴파일 타임에만 체크)→ 실제 api 요청으로 무엇이 들어올 지 모름Superstruct : 런타임에서 들어오는 데이터를 구조화 (structrue)해서 유효성 검사할 수 있게 해주는 라이브러리 = 런타임 스키마 검증 도구데이터가 기대한 타입인지필수 필드가 빠지지 않았는지값의 길이나 범위가 적절한지중첩된 구.. 더보기 이펍 세미나(1) Node.js 랑 생각보다 Spring이랑 부분부분 다른 점이 많아서 헷갈리지 않도록 신경써야 할 것 같다. +) Spring Boot에서는 객체를 반환하면 자동으로 JSON 변환됨. EnumSpring Boot에서 JPA를 사용할 때 Enum을 어떻게 저장할지 결정해야한다.Node.js에서는 그냥 enum을 객체처럼 만들어서 쓰면 되지만, JPA에서는 Enum을 직접 저장하는 방식이 두 가지가 있기 때문에 이를 명확히 지정해야한다.//example@Enumerated(EnumType.STRING)private AccountStatus status = AccountStatus.ACTIVE; Enum Type에는 ORDINAL 과 STRING 타입이 있는데, STRING 타입이 이름을 지정해서 저장하는 n.. 더보기 엔티티 매핑 JPA : 엔티티와 테이블을 정확히 매핑하는 것 @Entity: JPA를 사용해서 테이블과 매핑할 클래스이 어노테이션이 붙으면 JPA가 관리함, 엔티티라고 부름속성● name :: 엔티티 이름주의 사항● 기본 생성자 필수● final, enum, interface, inner 클래스에 사용 불가● final 사용 불가능 @Table: 엔티티와 매핑할 테이블 지정속성● name :: 테이블 이름● catalog :: catalog 기능● schema :: schema 기능● uniqueConstraints(DDL) :: DDL 생성 시 유니크 제약조건 데이터베이스 스키마 자동 생성: JPA는 클래스의 매핑 정보와 데이터베이스 방언을 사용하여 데이터베이스 스키마 생성//애플리케이션 실행 시점에 데.. 더보기 영속성 관리 JPA => 설계 (: 엔티티와 테이블을 매핑) + 활용 (: 매핑한 엔티티 실제 사용) 활용 => 엔티티 매니저 & 영속성 컨텍스트 엔티티 매니저 팩토리 makes 엔티티 매니저엔.매.팩 은 여러 스레드가 동시에 접근해도 안전 하므로 서로 다른 스레드 간에 공유 OK엔.매 는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 공유 X 동시성 문제동일한 하나의 데이터에 2개 이상의 스레드, 혹은 세션에서 가변 데이터를 동시에 제어할 때 나타나는 문제하나의 세션이 데이터를 수정중일 때, 다른 세션에서 수정 전의 데이터를 조회해 로직을 처리함으로써 데이터의 정합성이 깨지는 문제 JPA는 데이터베이스에 접근할 때 데이터베이스 커넥션을 사용함. 그러나 JPA는 직접 커넥션 객체를 다루지 않고, Entit.. 더보기 이전 1 2 3 4 ··· 10 다음 목록 더보기