본문 바로가기

전체 글275

[JPA] 플러시(Flush) ※ 인프런 강의 김영한님의 「자바 ORM 표준 JPA 프로그래밍」을 학습한 내용을 정리한 글입니다. 플러시 (Flush) ❓ 영속성 컨텍스트의 변경 내용을 DB 에 반영하는 것을 말한다. Transaction commit 이 일어날 때 flush가 동작하는데, 이때 쓰기 지연 저장소에 쌓아 놨던 INSERT, UPDATE, DELETE SQL들이 DB에 날라간다. ❌ 영속성 컨텍스트를 비우는 것 아님 쉽게 얘기해서 영속성 컨텍스트의 변경 사항들과 DB의 상태를 맞추는 작업이다. 플러시는 영속성 컨텍스트의 변경 내용을 DB에 동기화한다. 플러시의 발생 변경 감지 (Dirty Checking) 수정된 Entity를 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 Query를 DB에 전송한 (등록,.. 2022. 7. 18.
[JPA] 영속성 관리 ※ 인프런 강의 김영한님의 「자바 ORM 표준 JPA 프로그래밍」을 학습한 내용을 정리한 글입니다. JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 영속성 컨텍스트 영속성 컨텍스트란? 엔티티를 영구 저장하는 환경 어플리케이션과 DB사이에서 객체를 보관하는 가상의 DB같은 역할 서비스별로 하나의 EntityManager Factory가 존재하며 Entity Manager Factory에서 디비에 접근하는 트랜잭션이 생길 때 마다 쓰레드 별로 Entity Manager를 생성하여 영속성 컨텍스트에 접근 EntityManager에 엔티티를 저장하거나 조회하면 EntityManager는 영속성 컨텍스트에 엔티티를 보관하고 관리 영속성 컨텍스트는 EntityManager를 생성할 때 만들어지며 .. 2022. 7. 18.
[JPA] JPA의 소개 🔅 김영한님의 '자바 ORM 표준 JPA 프로그래밍 - 기본편' 강의를 수강하며 정리한 내용입니다. 1️⃣ SQL 중심적인 개발의 문제점 객체 지향 언어로 개발할 때 아직까지는 관계형 DB가 많이 사용된다. 1. SQL → CRUD 작성의 무한 반복 물론 MyBatis나 spring이 제공하는 JDBC Template의 도움으로 매핑 작업이 줄었어도 개발자가 쿼리문을 모두 작성해야 하는 건 여전히 남아있다. 2. 패러타임의 불일치 객체와 RDB의 차이 → 객체를 DB에 넣을 때의 문제 발생 객체와 관계형 데이터베이스의 차이 1. 상속 DB에 저장할 때는 상속관계를 사용하지 않는다. 따라서 객체를 관계형 DB에 넣고 빼는 과정이 복잡하다. 만약 자바 컬렉션을 활용한다면 add() 나 get()으로 저장, .. 2022. 7. 17.
[Programmers] 메뉴 리뉴얼 https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성.. 2022. 7. 17.
[Programmers] 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 .. 2022. 7. 7.
[JAVA] java.util.regex.PatternSyntaxException: Illegal repetition ❌문자열에서 특정한 특수문자 제거하는 과정에서 발생한 오류입니다. String arr[] = s.split("{"); // Error /* Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition { at java.util.regex.Pattern.error(Pattern.java:1957) at java.util.regex.Pattern.closure(Pattern.java:3159) at java.util.regex.Pattern.sequence(Pattern.java:2136) at java.util.regex.Pattern.expr(Pattern.java:1998) at java.util.regex.P.. 2022. 7. 7.