java(40)
-
12. JPA에서 지연로딩과 N+1번 문제
1. 주제 선정실제 개발 프로젝트를 하면서 마주치는 “지연로딩” 과 “N+1 문제” 해결하기 JPA 파트를 마치면서, 실제로 이 JPA를 사용하면서 마주하는 이슈에 대해서 찾아보았다. 그 중 지연로딩 N+1 문제에 대해서 자주 마주친다고 한다. 그래서 각각의 주제에 대해서 어떤 것인지 알아보고, 실제로 발생하는 상황을 한번 재현해보고자 한다.2. 문제 정의(1) 로딩 전략 (참고자료)JPA에서의 로딩 전략이란 연관된 엔티티를 언제 데이터베이스에서 불러올지를 결정하는 방식입니다지연 로딩즉시 로딩각각의 전략은 장단점이 존재한다. 필요한 상황에 맞추어 전략을 선택적으로, 그리고 신중하게 적용해야 한다.(1)-1. 지연로딩관계가 있는 엔티티를 실제로 **사용할 때까지 로딩을 지연**하는 전략이다.지연로딩 전략을..
2025.08.29 -
5. JUnit을 통해서 Test 실행해 보기
팀 프로젝트를 진행하면서, 콘솔을 통해서 사용자와 간단하게 인터렉션하는 게임을 구현해 보았다. (링크) 우리 게임이 제대로 동작하는지 확인하기 위해서는 코드가 제대로 실행되는지 확인할 필요가 있는데, 이때마다 매번 프로젝트를 실행시키고 단어를 입력하고 등등 번거롭기도 하고 놓치는 부분이 발생하기도 할 것이다. 따라서 우리는 JUnit이라는 프레임워크를 통해서 테스트 코드를 작성하고 실행하는 방법을 한번 알아보고자 한다. JUnit이란?JUnit 사용 방법Test File 실행하기 1. JUnit이란?https://junit.org/ JUnitNetflix Unlimited movies, TV shows, and morejunit.orgJUnit이란 자바 프로그래밍 언어를 위한 오픈 소스 단위 테스트..
2025.08.11 -
4. VisualVM 사용해서 시각적으로 Thread 확인하기
Backend 파트 수업을 하면서, 간단하게 미니 프로젝트를 진행했다. 객체 지향 프로그래밍을 위한 설계 방법을 익히고, 또 추상화/멀티 스레딩 등 학습한 개념을 적용해볼 수 있는 시간이었다. 주제는 간단한 "행맨 Hangman Game 구현"하는 프로젝트이다. (링크) 해당 프로젝트를 구현하면서, Thread를 직접 넣어보았는데 이 Thread를 시각적으로 보는 방법인 "Visual VM"을 직접 한번 해보았다. 1. VisualVM이란?VisualVM: Download VisualVM: DownloadFirst Steps Unzip the downloaded archive. The archive already contains the top-level visualvm directory. Start V..
2025.08.11 -
3. 프로세스(process)와 스레드(thread)
💡 CPU의 특징: 한 시점에 하나의 기계 명령어만 수행이 가능하다우리가 코딩하고 프로그램을 작성하고 난 후, 프로그램을 실행하기 위해서는 실행 가능한 환경이 필요하다. 우리가 만든 프로그램은 어디서 실행되는 걸끼? 바로 "CPU의 Core"이다. 간단하게 실행 단계에 대해서 작성해 보자면소스코드 작성: 프로그래밍 언어로 프로그램 개발컴파일/인터프리팅: 완성된 프로그램을 기계어로 변환실행파일 로드: 기계어는 컴퓨터 메모리에 저장실행 파일 실행: CPU에서 실행 가능한 상태가 되면, 저장된 메모리에서 명령어를 가져와서 수행 앞서 CPU는 한 시점에 하나의 기계 명령어만 수행이 가능하다고 했는데, 동시에 실행되어야 하는 프로세스가 여러 개일 경우에는 어떻게 될까? 바로 "프로세스 스케줄링"을 통해서 수행해..
2025.08.10 -
[baekjoon] 10818. 최소, 최대
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 1. 첫 번째 코드import java.util.Scanner;import java.util.collections;import java.util.Arrays;import java.util.List;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); scanner.nextLine(); String[] numStringList = scanner.nextLine().split(" "); ..
2025.07.10 -
[baekjoon] 10871. X보다 작은 수
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오. 1. 첫 번째 코드import java.util.Scanner;import java.util.ArrayList;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int N,X; String[] list1 = scanner.nextLine().split(" "); N = Integer.parseInt(list1[0]); X = Integer.parseInt(list1..
2025.07.10