- [JPA] 13. 단방향과 양방향 참조의 특징Song hyun[JPA] 13. 단방향과 양방향 참조의 특징 1. 단방향 참조(1) 장점구현이 단순하다. - 한쪽에서만 참조하기 때문에 설계가 단순하며, 필요하지 않은 방향으로의 참조를 구현할 필요가 없어 코드가 단순해진다!성능 최적화 - 불필요한 참조를 하지 않으므로 메모리 사용을 줄일 수 있고, 필요없는 객체를 로드하지 않아도 된다. // 특히 지연 로딩과 결합시 성능이 최적화된다!메모리 절약 - 단방향으로만 참조할 경우, 반대 방향으로의 객체를 유지할 필요가 없기 떄문에 메모리 사용을 줄일 수 있다.(2) 단점양방향 탐색 불가 - 한 쪽에서만 참조하기 때문에, 참조되지 않는 방향에서는 해당 객체를 참조하거나 조회할 수 없다.관계 복잡성 증가 - 반대쪽에서 객체를 참조해야 할 때, 별도의 쿼리를 작성해야 한다. =..
- 2024-09-30 12:38:39
- [JPA] 12. @Entity를 사용하여 엔티티 만들기Song hyun[JPA] 12. @Entity를 사용하여 엔티티 사용하기 1. @Entity, @GenerationValue를 사용하여 엔티티 생성하기 JPA를 사용해, 쿼리를 사용하지 않고 데이터베이스에 엔티티를 만들어보자.아무 어노테이션도 붙이지 않고, Address 객체를 생성했을 때에는 h2 console에 아무 이상이 없다. @Entity@Id@GenerationValue @Entity, @Id, @GenerationValue 어노테이션을 사용해보자. 쿼리문을 사용하지 않고도 성공적으로 생성된 것을 확인할 수 있다.package com.example.demo.model;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;i..
- 2024-09-30 11:47:02
- [JPA] 11. 단방향, 양방향 매핑에 대한 이해Song hyun[JPA] 11. 단방향, 양방향 매핑에 대한 이해 *JPA는 객체지향적 접근 방식임을 잊지 말자!! 1. 참조 방향성과 엔티티간 관계(1) 참조 방향성단방향 매핑(Unidirectional Mapping): 한쪽에서만 참조하는 관계양방향 매핑(Bidirectional Mapping): 양쪽에서 서로 참조하는 관계(2) 엔티티 간 관계일대일 매핑(One-to-One mapping)일대다 매핑(One-to-Many mapping)다대일 매핑(Many-to-One mapping)다대다 매핑(Many-to-Many mapping) 2. 시나리오 코드: 고객과 주소-고객 클래스에 고객-주소가 1:1 관계를 가지게끔 코드를 작성해보자. => 아래와 같이 코드를 작성하면, USER_TB에 FK로 address_id..
- 2024-09-30 11:43:51
- [JPA] *Springboot Starter Project - 프로젝트 설정하기Song hyun[JPA] *Springboot Starter Project - 프로젝트 설정하기 (1) Springboot Starter Project 생성(2) 스프링부트 버전 : 3.2.10(3) API 설정-[web]: spring web-[developer tools]: 롬복, Spring Boot Devtools-[SQL]: H2, JPA (4) build.grade() - [refresh]하기 (5) application 파일의 확장자를 properties에서 yml로 바꾸기(6) application.yml 작성하기spring: application: name: demo server: port: 8080 datasource: url: jdbc:h2:mem:testdb ..
- 2024-09-30 11:26:24
- [설치 메뉴얼] VSCode에서 Devtools가 제대로 작동하지 않는 오류Song hyun[설치 메뉴얼] VSCode에서 Devtools가 제대로 작동하지 않는 오류 1. Spring Boot Tools를 설치한다.2. Language Support for Java를 삭제한다. 3. Clean java language server workspace4. [cancel]5. VSCode 종료 후 재실 6. [main] 폴더 내의 클래스 파일을 하나 연 뒤, [터미널] 콘솔을 연다.7. 터미널 콘솔에 아래 명령어를 입력한다.해당 명령어가 실행된다는 것은 java home을 바라보며 실행된다는 뜻!./gradlew bootRun 8. Language Support를 다시 설치하고, VSCode를 종류-재실행한다. 이 때 절대로 [restart]를 누르지 말것!!9. [main]폴더 내의 클래스 ..
- 2024-09-30 11:13:30
- [JPA] 10. 영속성 컨텍스트Song hyun[JPA] 10. 영속성 컨텍스트 1. 영속성 컨텍스트란?-영속성 컨텍스트(Persistence Context)는 엔티티 객체들을 관리하고, DB와의 상태를 동기화하는 일종의 저장소이다.=> 쉽게 말해, 애플리케이션이 실행되는 동안 DB에서 가져온 엔티티 객체들을 임시로 보관래두는 메모리 공간이다!=> 이 공간에 있는 객체들은 영속 상태로 관리되고, 이 상태에 있는 동안 엔티티 객체의 변화는 자동으로 DB에 반영된다. 2. 엔티티 매니저와 영속성 컨텍스트의 관계엔티티 매니저: 엔티티 매니저는 JPA에서 제공하는 주요 인터페이스로, 영속성 컨텍스트를 통해 엔티티의 생명 주기를 관리한다. 엔티티 매니저는 엔티티 CRUD를 수행하며, 이는 영속성 컨텍스트 내에서 이뤄진다.영속성 컨텍스트: 엔티티 매니저가 ..
- 2024-09-30 10:16:58
- [JPA] 9. 엔티티 매니저와 영속성 컨텍스트Song hyun[JPA] 9. 엔티티 매니저와 영속성 컨텍스트 1. 엔티티 매니저란?(1) 엔티티(Entity): 데이터베이스 테이블과 매핑되는 자바 클래스이다.엔티티는 DB의 테이블과 매핑되는 자바 객체이다.엔티티는 본질적으로 자바 객체이면서, 데이터베이스의 쿼리를 실행하여 CRUD 할 수 있다.=> 이는 엔티티가 단순한 데이터 모델을 넘어, DB와의 상호작용에서 중요한 역할을 한다는 점에서 중요하다!=> 엔티티는 DB의 레코드와 직접적으로 연결되어 있고, 이 클래스의 인스턴스는 DB의 행에 해당된다! (2) 엔티티 매니저(Entity Manager): 엔티티의 생명 주기를 관리하고, CRUD 작업을 수행한다.엔티티 매니저는 JPA의 핵심 인터페이스로, 엔티티의 생명주기를 관리하는 역할을 한다.엔티티 매니저를 통해..
- 2024-09-30 09:47:42
- [JPA] 8. JPA와 하이버네이트란?Song hyun[JPA] 8. JPA와 하이버네이트란? 1. JPA와 하이버네이트?(1) JPA란?-자바에서는 JPA(Java Persistence API)를 표준으로 사용한다. 즉 JPA는 자바 진영에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. 실제로 DB와 상호작용하려면 이 인터페이스를 구현한 구체적인 도구가 필요하다. 대표적인 구현체가 Hibernate이다. -자바 객체와 RDBS를 연결해 데이터를 관리하는 표준 API이다. -JPA는 객체 지향 도메인 모델과 DB 간의 중간 역할을 하며, DB에 대한 접근을 추상화해 애플리케이션 코드에서 DB에 의존하지 않고 데이터를 처리할 수 있게 해준다. (2) Hibernate란?-Hibernate는 JPA 스펙을 구현한 ORM 프레임워크!-JPA의 표..
- 2024-09-30 09:32:45
- [JPA] 7. 스프링 부트 DB 접근 기술 ORMSong hyun[JPA] 7. 스프링 부트 DB 접근 기술 ORM 1. ORM이란?-ORM(Object - Relational - Mapping)은 자바의 객체와 DB를 연결하는 프로그래밍 기법이다. -ORM을 사용하면 DB에 있는 값들을 마치 자바 객체처럼 사용할 수 있다. -> SQL을 전혀 몰라도, 자바 언어로만 DB에 접근해 값을 받아와 사용할 수 있다.=> 객체와 DB를 자바 언어로만 다룰 수 있게 하는 기술 = ORM!!! 2. ORM의 특징(1) 장점-SQL을 직접 작성할 필요 없이, 자바와 같은 프로그래밍 언어를 통해 DB 작업을 수행할 수 있다.-객체지향적으로 코드를 작성할 수 있기 때문에, 비즈니스 로직에만 집중할 수 있다.-DB 시스템이 추상화되어 있기 때문에 방언(MySQL,Oracle 등) 전..
- 2024-09-30 09:21:22
- [독서 노트] <컨셉 수업>, 호소다 다카히로 저Song hyun[독서 노트] , 호소다 다카히로 저 프로젝트를 처음 할 때는 기술적인 완성도만이 중요할 거라고 생각했다. 하지만 프로젝트를 거듭할 수록, 기술적인 완성도도 물론 중요하지만, 전체적인 뼈대가 되는 기획, 컨셉의 중요성이 머리에서 떠나질 않았다. 좋은 아이템, 기획들은 사회적인 문제를 해결하면서도 그들만의 창의성이 있다고 하는데... 말처럼 쉽지가 않다. ^^; 그런 이유로 최근에는 기획, 아이디어, 창의성에도 많은 관심이 생겼다. 어떻게 하면 좋은 아이디어를 생각해낼지가 주요한 관심사 중 하나가 된 것이다. 오늘 소개할 책 역시 그런 맥락에서 발견하게 된 책이다. 바로 이라는 책이다. '번뜩이는 아이디어를 잘 팔리는 비즈니스로 이끄는'이라는 문구에 혹했다. 이 책은 '좋은 기획'이란 무엇인지, 우..
- 2024-09-29 12:36:53
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)