목록분류 전체보기 (22)
enginner_s2eojeong

목표객체와 테이블 연관관계 차이 이해하기객체의 참조 ↔ 테이블의 외래 키(FK) 매핑 방법방향 (단방향, 양방향), 다중성 (1:N, N:1, 1:1 등) 이해연관관계의 주인 개념 정리1. 1 단방향 연관관계테이블은 외래키(FK)로 조인을 해서 연관된 테이블을 찾지만, 객체는 참조를 통해서 연관된 객체를 찾는다.객체 연관관계와 테이블 연관관계를 매핑 -> ORM 매핑을 해주어야 한다. 회원 & 팀 Class@Entitypublic class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String username; @M..

1. 엔티티 매핑 소개엔티티와 테이블 매핑@Entity: JPA가 관리하는 엔티티 클래스@Table: 엔티티와 매핑할 테이블 지정필수 어노테이션@Entity 필수기본 생성자 필요 (파라미터가 없는 public 또는 protected 생성자)2. 객체와 테이블 매핑@Entity@Entity가 붙은 클래스는 JPA가 관리하는 엔티티로 간주된다.주의사항final 클래스, enum, interface, inner 클래스 사용 X저장할 필드에 final 사용 금지@Entity 어노테이션속성기능기본값nameJPA에서 사용할 엔티티 이름을 지정한다.같은 클래스 이름이 없으면 가급적 기본값을 사용한다.클래스 이름을 테이블 이름으로 사용@Table엔티티와 매핑할 테이블 이름을 지정@Table 어노테이션속성기능기본값nam..

1. 영속성 컨텍스트 (Persistence Context)정의: JPA에서 영속성 컨텍스트는 엔티티 객체가 영구적으로 저장되는 환경을 말한다.EntityManger.persist(entity)로 엔티티를 영속성 컨텍스트에 저장할 수 있다.EntityManager를 통해 영속성 컨텍스트에 접근하고 이를 관리한다.엔티티의 생명주기를 관리하고 트랜잭션 내에서 엔티티의 상태를 자동으로 추적해준다.2. 엔티티 생명주기비영속 (Transient): 엔티티 객체가 새로 생성되었지만 영속성 컨텍스트에 의해 관리되지 않는 상태영속 (Managed): 엔티티 객체가 영속성 컨텍스트에 의해 관리되는 상태준영속 (Detached): 영속성 컨텍스트에서 분리된 엔티티로 더 이상 관리되지 않는 상태삭제 (Removed): 엔티..

1. 프로젝트 생성H2 데이터베이스 설치 및 실행최고의 실습용 DB별도의 툴 없이 웹 브라우저에서 간편하게 SQL 실행 가능시퀀스(Sequence), 자동 증가(AUTO INCREMENT) 기능 지원프로젝트 생성Java 8 이상 (Java 8 권장)Maven 설정- groupId: jpa-basic- artifactId: ex1-hello-jpa- version: 1.0.0라이브러리 추가pom.xml 4.0.0 jpa-basic ex1-hello-jpa 1.0-SNAPSHOT org.hibernate hibernate-entitymanager 5.3.10.Final ..

1. JPA 개요JPA(Java Persistence API)는 자바 진영의 ORM(Object-Relational Mapping) 기술 표준이다.SQL 중심적인 개발 방식의 문제를 해결하기 위해 등장했다.객체 지향 언어와 관계형 데이터베이스(RDB)를 연결하는 기술이다.2. SQL 중심 개발의 문제점반복적인 CRUD 코드:SQL을 직접 작성해야 하므로, 같은 패턴의 코드가 반복된다.필드가 추가될 때마다 모든 SQL을 수정해야 한다.객체와 RDB의 패러다임 불일치:상속 문제: RDB는 테이블 구조 기반이라 객체의 상속을 표현하기 어렵다.연관관계 문제: 객체는 참조를 사용하고 테이블은 외래 키를 사용하므로 매핑이 어렵다.데이터 타입 차이: 객체와 DB의 데이터 타입이 일치하지 않을 수 있다.데이터 식별 방..

Recipe-Recommender Model더보기💡Goal : 사용자가 가입 시 등록한 알레르기 정보와 선호도를 기반으로 '오늘의 추천 레시피'를 제공JSON 요청: user_idJSON 응답: recipe_id 문제데이터/ai 팀에서 전달받은 input, output 값을 바탕으로 모델 api에 user_id를 넘기고, recipe_id를 받아오는 코드를 작성하였다.근데 Postman으로 GET localhost:8080/api/recipes/recommend 요청을 보냈더니 json 필드가 일치하지 않는다는 에러가 발생했다. RestTemplate은 기본적으로 Jackson을 사용해Map를 JSON으로 변환하기 때문에 {"user_id": "146"} 같은 JSON 형태로 모델 API에 전송된다.응..

문제)로컬 환경에서는 이미지 업로드가 정상적으로 작동하는걸 확인하고 배포를 했는데 레시피 업로드 과정에서 "요청 중 오류가 발생했습니다. load failed"라는 문구가 뜨면서 이미지 업로드가 되지 않는 문제가 발생했다. 예상 원인1. application.yml 파일 크기 제한혹시 용량을 너무 작게 설정했나 싶어 내가 업로드하려던 이미지 파일들의 크기를 다 계산해보았는데 충분히 넉넉했다. PASSservlet: multipart: max-file-size: 10MB max-request-size: 10MB 예상 원인 2) S3와의 연결 문제S3와의 연결 문제인지 확인하기 위해 로그를 찍어 보았다. 코드 상에서 s3Uploader.saveFile()메서드의 로그를 통해 S3에 정상적으로 이..