분류 전체보기

페치 조인 (Fetch Join)
JPQL에서 성능 최적화를 위해 제공하는 기능이다. 연관된 엔티티나 컬렉션을 한 번의 SQL로 모두 조회하는 기능이다. join fetch를 이용한다. // jpql select m from Member m join fetch m.team // SQL select m.*, T.* from Member m inner join team t on m.team_id = t.id List resultList = em.createQuery("select m from Member m", Member.class).getResultList(); for (Member member1 : resultList) { System.out.println("member1.getUsername() = " + member1.getUser..

2022 상반기 회고
벌써 8월이다. 7월 중순쯤 2022년 상반기를 돌아보면서 노션에 회고록을 작성했었지만, 이제야 글을 올리게 되었다. 🐾 나의 첫 사이드 프로젝트! 막상 퇴사를 하고 나니 정말 막막하고 막연했다. 대학교를 졸업하자마자 운이 좋게 첫 번째 지원한 기업에 바로 합격해 입사하게 된 나로서는 “회사가 원하는 개발자"가 되기 위해 어떤 공부를 하고 어떤 기술을 습득해야 하는지 너무나도 어려웠다. 뭐라도 해보자는 마음에 다른 회사에 다니고 있는 프론트엔드 개발자 지인과 취업을 준비 중인 지인에게 사이드 프로젝트를 해보자고 제안했고 지인들도 경험해 보고 싶은 기술이 있어서 프로젝트에 적용해보고 싶다고 했다. 나도 예전부터 기술 블로그나 유튜브를 보면서 MSA 아키텍처에 관심이 생겨 기회가 되면 공부해보고 싶은 마음이..

JPQL 기본
소개 EntityManager.find → 이후 필요시 객체 그래프 탐색 검색을 하는 경우 엔티티 객체를 대상으로 쿼리를 작성해야한다. 모든 DB 데이터를 객체로 변환하는 것은 좋지 않기 때문에 필요한 데이터만 불러오기 위해 검색 조건이 포함된 SQL을 사용한다. JPQL은 객체 지향 쿼리 언어이고 엔티티 객체를 대상으로 쿼리를 날린다. (SQL은 DB 대상 쿼리) SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. List members = em.createQuery( "select m from Member m where m.username like '%kim%'", Member.class ).getResultList(); Criteria JPQL은 동적 쿼리를 만드는 것이 어렵다. 또한 ..
![[백준, Java] 14226번 : 이모티콘](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FccTOAC%2FbtrIn37iegK%2FAAAAAAAAAAAAAAAAAAAAAEW8SnuTCE2dUtNaKi_fXwiOzQbVsPPKPvprYyjcDzDB%2Fimg.gif%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1751295599%26allow_ip%3D%26allow_referer%3D%26signature%3Df4c3eC9FLLL2wEF31FE9k0lmcAI%253D)
[백준, Java] 14226번 : 이모티콘
🔗 문제 링크 https://www.acmicpc.net/problem/14226 😮 문제 해결 방법 BFS를 이용한 완전 탐색 방식으로 문제를 해결했다. 최초의 경우에는 화면에만 이모티콘이 있으므로 큐에 넣고 시작한다. 현재 시간에만 할 수 있는 행동을 구분하기 위해서 큐의 사이즈만큼만 현재 초에는 반복을 돌게 한다. 각각의 행동은 아래와 같은 조건에 따라서 할지 말지 구분할 수 있다. 클립보드에 있는 모든 이모티콘을 화면에 붙여넣기 한다. 보내려는 이모티콘 개수보다 화면에 있는 이모티콘의 개수가 더 적은 경우에 이모티콘을 복사하는 것이 의미있다. 화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다. 보내려는 이모티콘 개수보다 화면에 있는 이모티콘의 개수가 더 적은 경우에 이모티콘을 클립보드로 가..
![[백준, Java] 21610번 : 마법사 상어와 비바라기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FIqboa%2FbtrIioSjeNW%2FAAAAAAAAAAAAAAAAAAAAADcMvDcPV5gxrevrx86uaTqLbXHLqTGUOg_WVYiGbloq%2Fimg.gif%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1751295599%26allow_ip%3D%26allow_referer%3D%26signature%3D7axHj62uQhUS8fnWrHLmcI9KIQ4%253D)
[백준, Java] 21610번 : 마법사 상어와 비바라기
🔗 문제 링크 https://www.acmicpc.net/problem/21610 😮 문제 해결 방법 주어진 기능 순서대로 구현하면 되는 시뮬레이션 문제이다. 구름이 di 방향으로 si칸 이동한다. 이 부분에서는 배열의 범위가 넘어가는 경우 처음 아니면 마지막으로 온다. 다음 행과 열을 구한다. (현재 행 , 열 + DX[방향] * 거리) 다음 행과 열이 0보다 작거나 N보다 크거나 같은 경우 넘어간 범위를 구해야한다. 0 보다 작은 경우 : (다음 행 or 열 + 1) % N + N - 1; N보다 크거나 같은 경우 : 다음 행 or 열 % N 넘어간 인덱스까지 구해진 경우 이동 후 구름 배열에 표시하고 해당 바구니의 물을 1 증가시킨다. 방금 물을 뿌린 부분에 물복사 버그를 진행한다. 이동 후 구름 ..