목록분류 전체보기 (170)
쌩로그
목록 포스팅 개요 본론 2-1. 단방향 연관관계 2-2. 연관관계 사용 2-3. 양방향 연관관계 2-4. 연관관계의 주인 2-5. 양방향 연관관계 저장 2-6. 양방향 연관관계의 주의점 요약 1. 포스팅 개요 해당 포스팅은 인프런에서 영한님의 JPA기본 강의에서 엔티티 매핑 기초 파트와 해당 파트에 맞는 책의 챕터를 보고 학습한 내용을 요약 및 정리하는 포스팅입니다. 2. 본론 먼저 객체와 RDB의 차이를 생각해 볼 필요가 있겠습니다. 객체는 참조(주소)를 사용해서 관계를 맺지만, 테이블은 외래 키를 사용해서 관계를 맺습니다. 객체의 참조와 테이블의 외래 키를 매핑하는 것이 이번 챕터의 목표입니다. 들어가기 앞서서 세 가지의 키워드를 알아놓으시면 좋을 거 같습니다. 방향 방향은 객체 관계에만 존재하고, ..
목록 포스팅 개요 본론 2-1. 객체와 테이블 매핑 2-2. 데이터베이스 스키마 자동생성 2-3. 기본 키 매핑 2-4. 필드와 컬럼 매핑 요약 짧은 생각과 느낀 점 1. 포스팅 개요 해당 포스팅은 인프런에서 영한님의 JPA기본 강의에서 엔티티 매핑 파트와 해당 파트에 맞는 책의 챕터를 보고 학습한 내용을 요약 및 정리하는 포스팅입니다. 2. 본론 2-1. 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라 부릅니다. 속성 name JPA에서 사용할 엔티티 이름을 지정합니다. 기본값은 클래스 이름을 사용합니다. 다른 패키지에 이름이 같은 클래스가 있다면 이름을 지정해서 충돌하지 않도록 합니다. 주의사항 기본생성자는 필수입니다. JPA는 엔티티 객체를 생성할..
목록 포스팅 개요 본론 요약 1. 포스팅 개요 JPA 기초부터 강의를 차근차근 천천히 듣고 있습니다만, 하나의 컬럼에 Unique키를 설정하는 것을 보여주셨습니다. 라이브 코딩을 따라하는 과정에서, 키에 제약조건으로 unique를 주면, 보조인덱스가 자동으로 생성되는 것이 기억났고, H2에서 index를 검색했습니다. show index from MEMBER;이 명령어를 H2에 실행하면, 오류를 유발합니다. 그럼 저는 과연 어디서 이 명령어를 확인했을까요..? 제가 포스팅한 곳입니다. 바로 여기인데요. 하지만, 이 명령어의 결과는 다음과 같습니다. 예 서론이 길었군요, 여튼 챗 GPT한테 물어보고, 나중에 다시 볼 저를 위해 이 포스팅을 기록합니다. ps. 물론 저뿐만 아니라,, 다른 분에게도 도움이 된..
목록 포스팅 개요 본론 2-1. 엔티티 매니저 팩토리와 엔티티 매니저 2-2. 영속성 컨텍스트 2-3. 플러시 2-4. 병합 : merge() 요약 1. 포스팅 개요 해당 포스팅은 인프런에서 영한님의 JPA기본 강의에서 영속성 관리 파트와 해당 파트에 맞는 책의 챕터를 보고 학습한 내용을 요약 및 정리하는 포스팅입니다. 2. 본론 2-1. 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저(Entity Manager)는 엔티티를 저장하고, 삭제하고, 수정하고, 조회하는 등 엔티티와 관련된 모든 일을 처리합니다. 이름 그대로 엔티티를 관리하는 관리자입니다. 엔티티 매니저 팩토리(Entity Manager Factory)는 여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간에 공유해도 되지만, 엔..
목록 포스팅 개요 본론 2-1. 라이브러리 2-2. JPA 매핑 애너테이션 2-3. persistence.xml 2-4. EntityManager 2-5. JPQL 요약 1. 포스팅 개요 해당 포스팅은 인프런에서 영한님의 JPA기본 강의에서 JPA 시작하기 파트와 해당 파트에 맞는 책의 챕터를 보고 학습한 내용을 요약 및 정리하는 포스팅입니다. 2. 본론 2-1. 라이브러리 hibernate-entitymanager : JPA 표준과 JPA 구현체 중 하나인 하이버네이트를 포함한 라이브러리입니다. H2도 있지만, 굳이 적진 않았습니다. 2-2. JPA 매핑 애너테이션 @Entity 선언된 클래스를 테이블과 매핑한다고 JPA에게 알려줍니다. 해당 애너테이션이 선언된 클래스를 엔티티 클래스라고 합니다. @T..
목록 포스팅 개요 본론 2-1. SQL을 직접 다룰 때 발생할 수 있는 문제점 2-2. JPA를 통해서 얻어지는 이점 2-3. JPA란 무엇인가 요약 1. 포스팅 개요 해당 포스팅은 인프런에서 영한님의 JPA기본 강의에서 JPA 소개 파트와 해당 파트에 맞는 책의 챕터를 보고 학습한 내용을 요약 및 정리하는 포스팅입니다. 지양하지만, 요즘은 기록하면서 생각하다보니, 더 학습 효과를 불러오는 것 같습니다.. 역시.. 생각을 해야되.. 2. 본론 2-1. SQL을 직접 다룰 때 발생할 수 있는 문제점 진정한 의미의 계층 분할이 어렵습니다. - 객체지향의 특징인 캡슐화, 다형성, 추상화, 정보은닉, 상속 등의 특징을 이용해서 데이터 접근 객체(DAO)를 감췄다고 하더라도, DAO 내에 어떤 SQL이 실행되는지..
목록 포스팅 개요 본론 요약 1. 포스팅 개요 저번에 검색 조건을 가진 Condition클래스 작성시 바인딩 되지 않던 문제 해결이라는 주제로 포스팅을 했었습니다. 당시 검색조건을 필드로 가지던 클래스로 생성된 인스턴스를 계층별로 넘겨서 Repository 계층에서 받고, 인스턴스의 필드 값을 판별해서 데이터 조회결과를 반환하도록 했었습니다. 당시 그냥 구현에만 신경쓰다가 검색 조건 클래스에 @Setter를 무작정 쓰고, "와~ 됬다!"만 하고 끝냈었습니다. 그런데 @Setter를 쓰면, 객체의 변경 가능성의 여지를 열어두기 때문에, 다른 방법을 찾아봤어야 함에도 불구하고, 되었다고 기분이 좋아서 그냥 그대로 사용했었는데요. 이번에 @Setter를 제거하면서 객체의 변경가능성을 다시 닫고, GET매핑시 ..
목록 포스팅 개요 본론 요약 1. 포스팅 개요 자바의 정석을 9장까지 흩어보면서, 유용할 것 같은 부분, 그리고 잘 못 알고 있던 부분, 얻어갈 부분에 대한 포스팅입니다. 2. 본론 인터페이스와 클래스는 다르다 언젠가 인터페이스와 클래스를 헷갈려하며, 다르다고 한 포스팅이 있습니다. 바로 이 포스팅입니다. (당시 글의 구성이나, 솜씨는 병맛이었던 점 이해부탁드립니다) 자바의정석 6~7 챕터가 객체지향 프로그래밍 내용인데, 인터페이스와 클래스에 대해서 다시 한번 봤었던 기억이 있습니다. 해당 포스팅에서 당시 GPT가 먹통이었다고 되어있어서 GPT한테 물어봤는데, 현재 제가 내린 결론은 다음과 같습니다. 인터페이스와 클래스는 다르다. 인터페이스에서 Object클래스의 메서드를 호출하면, 컴파일 에러가 발생하..
목록 포스팅 개요 본론 2-1. 스토어드 프로시저 사용 방법 2-2. 스토어드 함수와 커서 2-3. 자동 실행되는 트리거 요약 1. 포스팅 개요 혼자 공부하는 SQL 챕터 7을 요약 및 정리한 포스팅 2. 본론 2-1. 스토어드 프로시저 사용 방법 스토어드 프로시저(stored procedure) MySQL에서 제공하는 프로그래밍 기능 SQL에 프로그래밍 기능을 추가해서 일반 프로그래밍 언어와 비슷한 효과를 낼 수 있다. SQL + 프로그래밍 기능 = 스토어드 프로시저 스토어드 프로시저를 사용하면 복잡한 SQL을 한 번에 실행할 수 있다. '쿼리문의 집합'이라고도 할 수 있다. 데이터베이스 개체로써 데이터베이스 내부에 저장된다. 스토어드 프로시저 형식 DELIMITER $$ -- 스토어드 ..
목록 포스팅 개요 본론 2-1. 인덱스 개념을 파악하자 2-2. 인덱스의 내부 작동 2-3. 인덱스의 실제 사용 2-4. 인덱스를 효과적으로 사용하는 방법 요약 1. 포스팅 개요 혼자 공부하는 SQL 챕터 6을 요약 및 정리한 포스팅 2. 본론 2-1. 인덱스 개념을 파악하자 인덱스란? 데이터를 빠르게 찾을 수 있도록 도와주는 도구 인덱스를 만들면 SELECT 문의 출력 속도가 빨라진다. 인덱스의 개념 책의 찾아보기와 비슷한 개념. 하나의 단어를 찾을 때, 책을 처음부터 전부 뒤져보는 것과 책 뒤의 index에서 찾는 것 중 후자가 더 빠른 것처럼 DB에서도 INDEX를 활용하면 보다 더 효율적으로 빠르게 데이터를 추출할 수 있다. 인덱스의 사용 여부에 따라 성능 차이가 날 수 있다. 인덱스의 사용 여부..