General 17

JPA, Hibernate, spring Data JPA

JPA는 표준 인터페이스를 제공하고, Hibernate는 JPA를 구현하며, Spring Data JPA는 JPA 사용을 간편하게 만들어주기 때문에 이 세 가지를 함께 사용합니다. Spring Data JPA는 Repository 인터페이스를 통해 데이터 액세스 코드를 줄이고, Hibernate는 JPA 표준을 준수하며 실제 데이터베이스와의 통신을 담당합니다. 1. JPA (Java Persistence API)JPA는 Java 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의하는 표준 명세이다. JPA는 인터페이스의 집합이며, 실제 구현은 제공하지 않는다. JPA는 객체-관계 매핑(ORM)을 위한 인터페이스와 어노테이션을 제공하며, EntityManager와 같은 핵심 인터페이스를 정의함.주..

General/JPA 2025.05.09

[JPA] orphanRemoval vs CascadeType.REMOVE 정리

orphanRemoval 과 CascadeType.REMOVE 는 JPA(Java Persistence API)에서 엔티티 간의 관계를 관리하고, 둘다 부모 엔티티와 자식 엔티티 간의 관계에서 자식 엔티티를 삭제하는 데 사용된다는 점에선 같지만, 삭제 트리거(Trigger)가 다르다. ✅ 요약비교: CascadeType.REMOVE vs orphanRemoval = true항목CascadeType.REMOVEorphanRemoval = true삭제 trigger부모 엔티티 자체가 삭제될 때연관관계에서 자식이 제거될때실행 시점entityManager.remove(parent)parent.getChildren().remove(child) 등자식 삭제 방식부모와 함께 삭제부모와의 관계가 끊어지면 삭제삭제 대..

General/JPA 2025.05.07

[JPA] 연관관계 주인이란?

✅ 결론부터 말하자면연관관계의 주인은 외래 키를 직접 가지므로, 해당 테이블에 외래 키 컬럼이 존재함.연관관계의 주인이 아닌 쪽은 외래 키 컬럼이 테이블에 존재하지 않는다.@Entitypublic class Member { @Id @GeneratedValue private Long id; @ManyToOne @JoinColumn(name = "team_id") // 외래 키가 있는 쪽 → 연관관계의 주인 private Team team;}@Entitypublic class Team { @Id @GeneratedValue private Long id; @OneToMany(mappedBy = "team") // 주인이 아님 (읽기 전용) private List..

General/JPA 2025.05.07

CSS-in-JS

React는 크게 2가지 방식으로 컴포넌트의 스타일을 적용한다.CSS in CSS리액트 컴포넌트 별로 css 파일을 갖는 형식으로 스타일을 관리CSS Module별도의 자바스크립트 전환 필요 없음(속도가 빠름)CSS in JS자바스크립트 내에서 css를 작성하는 방식대표적인 라이브러리로 styled-component, emotion 등이 있음현재 사용중인 스타일만 DOM에 포함시킬 수 있음별도 패키지를 설치하기 때운에 용량이 증가함(스크립트 전환이 필요하여 속도가 다소 느려짐) 🔥 CSS in JS 방식으로 하기위해 Emotion 적용하기yarn add @emotion/react @emotion/styled또는npm install @emotion/react @emotion/styled 설치 완료되면 ..

General/React⚛️ 2025.05.06

yarn 설치 오류 (Internal Error: EPERM: operation not permitted)

yarn 설치후 yarn 명령어 인식 안되어서 해결 방법을 찾아 아래처럼 실행 하였지만corepack enablecorepack prepare yarn@stable --activate Internal Error: EPERM: operation not permitted 에러 발생.. 🔥해결 방법시작 메뉴 > PowerShell 우클릭 > "관리자 권한으로 실행" 클릭.다시 아래 명령어 실행:corepack enablecorepack prepare yarn@stable --activate 이제 yarn -v로 Yarn이 설치됐는지 확인yarn -v

General/React⚛️ 2025.05.06

[React] Invalid options object. Dev Server has been initialized using an options object that does not match the API schema.

React - Spring 연동 시 Proxy 설정 프록시란?프록시(Proxy)는 "대리"의 의미로, 인터넷과 관련해서 쓰이는 경우, 특히 내부 네트워크에서 인터넷 접속을 할 때에, 빠른 액세스나 안전한 통신등을 확보하기 위한 중계서버를 "프록시 서버"라고 일컫는다. 클라이언트와 Web서버의 중간에 위치하고 있어, 대신 통신을 받아 주는 것이 프록시 서버이다. 왜 해야하는가?리액트의 기본 Port 넘버는 3000번, Spring은 8080번으로 서로 다르기 때문이다.CORS 문제가 생기므로 프록시 설정 필수. package.json에 아래와 같이 추가( 나같은 경우는 아래처럼 추가해도 안됐다..)"proxy": "http://localhost:8080" 원인(추측): 지금 이 문제는 proxy 때문이..

General/React⚛️ 2025.04.28

id 필드에 Long 타입을 사용하는 이유

@Entitypublic class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) // auto increment private Long id = null; @Getter @Column(nullable = false) private String name;}Long 타입 vs long 타입" data-depth="1" data-heading="">Long 타입 vs long 타입Long (Wrapper 클래스):Long은 long 기본형 타입의 래퍼(Wrapper) 클래스입다.객체이므로 null 값을 가질 수 있다 .Long 객체는 힙(Heap) 메모리에 저장된다.컬렉션(Collections)이나 제네릭(Ge..

General/Java☕️ 2025.04.16

JDK와 JRE의 차이점

JDK (Java Development Kit)JDK는 자바 애플리케이션을 개발하기 위한 도구 모음으로, 컴파일러(javac), 디버거, JRE 등을 포함하고있다.JDK는 JRE를 포함하고 있어 자바 프로그램을 개발하고 실행하는 데 필요한 모든 것을 갖추고 있다. ○ 역할 : 자바 애플리케이션 개발 ○ 포함 요소 : JRE + 개발도구 (javac, javadoc, jdb 등) JRE (Java Runtime Environment)JRE는 자바 프로그램을 실행하기 위한 환경을 제공하며, JVM, 클래스 라이브러리, 런타임 라이브러리 등을 포함.JRE만 설치하면 자바 프로그램을 실행할 수 있지만, 개발은 할수없다. ○ 역할 : 자바 애플리케이션 실행 ○ 포함 요소 : JVM + 자바 클래스 라이브..

General/Java☕️ 2025.04.15