728x90 전체 글141 JPA 기본편0 (연관관계 관리 즉시로딩과, 지연로딩) 본 내용은 인프런 김영한 강사님 JPA 기본 편 강의를 듣고 정리한 내용입니다. https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 - 인프런 현업에서 실제로 JPA로 개발을 하고 있습니다. 그런 입장에서보면 지금 작성하고 있는 코드들이 어떻게 작동하는지 이해하는데 큰 도움을 주는 강의입니다. 다음은 제가 느낀 이 강의의 장점들 www.inflearn.com 이제 본격적으로 Member를 조회할 때 Team까지 조회할 필요가 없을 때 어떻게 해야 하는지 지연로딩을 배우면서 알아보자 지연로딩 연관된 엔티티를 사용하는 시점에서 조회가 발생하는 것을 말한다. 지연로딩 하는 방법은 연관관계 매핑에서 fetch를 LAZY로 정해주면.. 2024. 3. 4. JPA 기본편(프록시) 본 내용은 인프런 김영한 강사님 JPA 기본 편 강의를 듣고 정리한 내용입니다. https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 - 인프런 현업에서 실제로 JPA로 개발을 하고 있습니다. 그런 입장에서보면 지금 작성하고 있는 코드들이 어떻게 작동하는지 이해하는데 큰 도움을 주는 강의입니다. 다음은 제가 느낀 이 강의의 장점들 www.inflearn.com 만약 Member를 조회할 때 Team도 조회를 해야 하는지에 대해 생각을 해보자 만약 Team 조회가 필요 없을 경우 불필요하게 Team을 쿼리를 통해 가져오게 되는 경우가 존재한다. 이런 경우 프록시 + 지연로딩을 통해 해당 문제를 해결할 수 있다. 프록시란? 정말.. 2024. 3. 4. 백준 2636 치즈 (자바) https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 위 문제에서는 외부 공기와 접촉된 치즈를 고르는 기능, 고른 치즈를 삭제하는 기능 이 2가지 기능을 구현하면 쉽게 해결하는 문제이다. 뒤에 2가지 기능은 비교적 단순하지만 앞에 기능이 생각하기 어려울 수 있다. 문제에서 예시로 보여주는 원래 치즈 모양이다. 여기서 외부 공기와 접촉된 부분과 내부 치즈에 둘러싸인 부분을 구분해야 한다. 해당 부분을 구분하기 위해 탐색을 이용한다. 나는 bfs로 구현했다. 외부 공기 (.. 2024. 2. 29. 백준 14502 연구소 (자바) https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net (난이도가 어려운 문제일수록 차분하게 필요한 기능이 무엇인지 생각을 하고 해당 기능을 하나하나 구현을 해야 한다) 이 문제를 풀려면 크게 2가지 기능이 있어야 한다. 첫 번째로 3개의 벽을 두는 모든 경우의 수를 구하는 기능, 두 번째로 3개의 벽을 뒀을때 해당 경우에서 바이러스를 퍼지게 하는 기능이다. 첫 번째 기능은 3개의 좌표를 고르는 경우를 구해야 하기 때문에 모든 경우의 수를 구한다 -> dfs 탐색.. 2024. 2. 29. 백준 4949 자바 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 괄호 짝을 맞춰야 한다 -> 스택을 이용해서 풀어야 한다. (100%는 아님) 위 생각을 가지고 스택을 이용했다. 문자열을 입력받았을 때 내가 알고 싶은 건 괄호의 짝이 맞는지 확인하는 거기 때문에 일반 문자는 그냥 확인을 하지 않고 괄호만 확인한다. 만약 스택이 비어있는 상태에서 짝이 맞지 않는 ')' , ']'이 두 괄호가 들어오는 순간 더 이상 확인 안 하고 no를 출력.. 2024. 2. 29. JPA 기본편0(연관관계 매핑 기초, 연관관계가 필요한 이유 & 연관관계 매핑) 본 내용은 인프런 김영한 강사님 JPA 기본 편 강의를 듣고 정리한 내용입니다. https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 - 인프런 저는 야생형이 아니라 학자형인가봐요^^ 활용편 넘어갔다 30% 정도 듣고 도저히 답답해서 기본편을 들어버렸네요^^. 한주 한주 김영한님 강의 들으니 렙업되는 모습을 스스로 느낍니다. 특히 실 www.inflearn.com 연관관계가 필요한 이유 연관관계가 없는 객체 즉, 객체를 테이블에 맞춰 모델링을 할 경우 문제점이 존재하는데 객체 간의 협력 관계를 만들 수 없다는 것이다 이 말은 객체지향적인 코드가 아니게 된다는 것이다. 이런 식으로 하게 되면 Team과 Member의 연관관계가.. 2024. 2. 23. 백준 16234 자바 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net bfs를 이용해서 문제를 푸려고 접근했다. L이상 R이하일 경우 Queue에 넣고 넣는 x,y 좌표도 indexes라는 List에 저장한다. 그럼 리스트에는 연합된 나라의 좌표가 저장 되는데 bfs 탐색이 끝나면 해당 좌표의 값들을 다 더해 리스트의 크기만 큼 나눈 후 각각의 좌표 위치에 계산한 값을 구한다. 문제를 풀면서 하루가 지났을때 1씩 더하는게 굉장히 애매 했는데 while.. 2024. 2. 21. 백준 2589 자바 https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 맨 처음 문제를 접근할 때는 보물이 묻혀 있는 2곳을 잡는 기능과 해당 보물이 묻혀 있을 때, 최단 거리를 구하는 기능으로 하면 구할 수 있다고 생각했다. 그러나 생각해보니 bfs로 탐색할 경우 첫 위치부터 갈 수 있는 거리까지 탐색을 하기 때문에 보물이 묻혀 있는 건 신경 안 써도 된다고 생각이 들었다. 이중 for문을 이용해서 육지인지 확인하고, 방문한 곳인지 확인을 한다. 둘다 해당사항이 존재하.. 2024. 2. 21. JPA 기본편0 (기본키 매핑) 본 내용은 인프런 김영한 강사님 JPA 기본 편 강의를 듣고 정리한 내용입니다. https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 - 인프런 회사땜에 매일 바쁜 와중에 학원이라도 다닐까 생각했는데 마침 JPA 강의가 생겨서 꿀 타이밍이네요. 저는 이 전에 JPA 책을 보고 공부 했었는데요 궁금했던 점, 업무에 적용하며 고민하고 해결하 www.inflearn.com 기본 키 매핑 직접 할당할 경우 @Id 만 사용한다. 자동 생성 - IDENTITY -SEQUENCE -TABLE -AUTO IDENTITY 기본 키 생성을 데이터베이스에 위임 ( 주로 MySQL, PostgreSQL, SQL Server 등 사용) MySQL .. 2024. 2. 20. JPA 기본편0 (엔티티 매핑) 본 내용은 인프런 김영한 강사님 JPA 기본 편 강의를 듣고 정리한 내용입니다. https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 - 인프런 회사땜에 매일 바쁜 와중에 학원이라도 다닐까 생각했는데 마침 JPA 강의가 생겨서 꿀 타이밍이네요. 저는 이 전에 JPA 책을 보고 공부 했었는데요 궁금했던 점, 업무에 적용하며 고민하고 해결하 www.inflearn.com 엔티티 매핑 종류 객체와 테이블 매핑 @Entity @Table 필드와 컬럼 매핑 @Column 기본키 매핑 @Id 연관관계 매핑 @ManyToOne @JoinColumn @Entity JPA를 사용해서 테이블과 매핑할 때 필수(JPA가 관리) 기본 생성자가 필.. 2024. 2. 20. JPA 기본편0 (영속성 컨텍스트 이점(2)) 본 내용은 인프런 김영한 강사님 JPA 기본 편 강의를 듣고 정리한 내용입니다. https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 - 인프런 현업에서 실제로 JPA로 개발을 하고 있습니다. 그런 입장에서보면 지금 작성하고 있는 코드들이 어떻게 작동하는지 이해하는데 큰 도움을 주는 강의입니다. 다음은 제가 느낀 이 강의의 장점들 www.inflearn.com 지난 글에서 영속성 컨텍스트에서 1차 캐시에 대한 이점을 다뤄봤다 이제 나머지 이점에 대해서 다뤄볼 예정이다. 동일성 보장 말 그대로 동일성을 보장해주는 것이다. 이때 데이터베이스가 아닌 애필리케이션 차원에서 제공을 해준다. 위 코드에서 동일한 객체가 연산으로 동일하게.. 2024. 2. 15. 백준 17298 자바 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net n의 크기를 보면 O(n^2)으로 풀면 시간초과가 걸리는 문제인 것을 생각을 해야 한다. 해당 문제는 stack을 활용해서 문제를 푼다. 우선 스택에 첫 번째 값의 index를 넣는다. 그 후 다음 숫자가 스택의 peek()(인덱스)의 숫자와 비교를 한다. 만약 peek()가 크다면 비교하는 숫자의 index를 스택에 넣는다. 만약 비교하는 숫자가 크다면 해당 숫자보다 큰 숫자가 나올 때까지 pop을 한 후.. 2024. 2. 15. 이전 1 2 3 4 5 6 7 ··· 12 다음 728x90