본문 바로가기

전체 글9

int 와 long의 자료형 범위 공부하게 된 계기 프로그래머스 두 원 사이의 정수 쌍 이라는 문제를 풀면서 int , long범위에 대해서 와닿을 수 있었고 항상 자바 기본을 공부하면 초반에 나왔던 자료형 범위에 대해서 깊게 알 수 있는 뜻 깊은 시간이 되었기에 다음에는 틀리지 않도록 기록하려고 합니다.https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  핵심 포인트// 1 ≤ r1 이 코드가 올바르게 작성한 코드입니다. 문제에서 주어진 범위를 생각해보면 r2는 최대 10^6이 되는데 이걸 제곱하게 된다면 10^12이 됩니다.. 2025. 1. 18.
멀티스레드 이해하기 import java.awt.*;public class BeepPrintExam { public static void main(String[] args) { Toolkit toolkit = Toolkit.getDefaultToolkit(); for(int i=0; iToolkit 객체를 사용한 소리 발생Toolkit.getDefaultToolkit() 메서드를 통해 기본 툴킷 객체를 가져옵니다.toolkit.beep() 메서드는 시스템의 기본 소리를 발생시킵니다. 예를 들어 컴퓨터에서는 "삑" 소리가 나게 됩니다.단일 싱글스레드로 소리가 난 뒤에 띵이라는 글자가 콘솔창에 출력된다.import java.awt.*;public class BeepPrintExam { pub.. 2025. 1. 8.
[트러블슈팅] JAR파일 빌드 오류 상황설명Docker Compose를 사용하여 프로젝트를 실행하기 위해 먼저 docker-compose.yml 파일을 완성했습니다. 이후 컨테이너 실행을 위해 docker-compose up 명령어를 실행하려 했지만 컨테이너 실행에 필요한 Spring Boot의 JAR 파일과 React의 빌드 파일이 아직 준비되지 않은 상태였습니다.먼저 Spring Boot 애플리케이션을 빌드하기 위해 ./gradlew build 명령어를 실행했으나 빌드 실패(Build Failed) 오류가 발생했습니다.   문제원인빌드 실패의 원인은 Spring Boot의 테스트 실행 과정에서 데이터베이스 연결 실패였습니다.Spring Boot는 application.properties에 정의된 데이터베이스 연결 정보를 기반으로 테스트.. 2025. 1. 2.
도커와 VM VM의 이해Virtual Machin 가상 머신이 등장하게 된 배경은 컴퓨팅 자원을 보다 효율적으로 활용하고 시스템간의 격리와 이식성을 제공하려는 기술적 요구에서 비롯되었습니다.조금 더 자세히 이야기하자면 초창기 컴퓨팅에서는 애플리케이션이 물리적인 서버에 직접 설치되어 실행 되었습니다. 이 방식에는 낮은 자원 활용도 , 격리 부족 , 비용 증가 시스템 활장의 어려움이 문제점으로 남아있었습니다.낮은 자원 활용각 서버 컴퓨터는 단일 애플리케이션에 사용되는 경우가 많았습니다. 결과적으로 서버 용량의 일부만 활용되고 나머지는 유휴상태로 낭비되었습니다.격리 부족낮은 자원 활용 문제로 하나의 서버 컴퓨터에 여러 애플리케이션을 설치하면 각 애플리케이션이 실행 될 때 발생하는 충돌이 발생하였습니다.비용 증가새로운 애플.. 2025. 1. 1.
Spring DI에서 private final사용 이유와 멀티스레드 안전성 final 키워드는 주로 불변성을 유지하기 위해 사용하는 코드 요소입니다.예를 들어 아래와 같은 코드가 있다고 가정해봅시다:private final TeacherRepository teacherRepository;이 코드에서 teacherRepository는 스프링 컨테이너에서 주입받은 TeacherRepository 타입의 객체를 참조합니다.final 키워드가 선언되어 있기 때문에 이 필드는 한 번 초기화된 이후로 다른 객체를 참조할 수 없게 됩니다. 왜 이런 특성이 중요한가요?멀티스레드 환경에서 안정성을 보장하기 위해서입니다. 멀티스레드 환경에서는 JVM이 어떤 스레드를 먼저 처리할지 보장하지 않습니다(비결정적 스케줄링). 만약 final이 선언되지 않았다면, 스레드 B가 teacherReposito.. 2024. 12. 28.
참조 타입 배열과 기본 타입 배열의 차이: 이해와 정리 문제 - https://school.programmers.co.kr/learn/courses/30/lessons/42895?language=java풀이 블로그 - https://isshosng.tistory.com/173    코딩테스트 연습을 위해 “N으로 표현”이라는 DP 문제를 공부하던 중 블로그에서 아래와 같은 코드로 DP 저장 배열을 만들었습니다.ArrayList> list = new ArrayList(); 그러나 이를 바탕으로 저만의 코드를 작성하려다 고민을 하게 되었습니다. “굳이 ArrayList를 사용하지 않고 입력값도 1에서 9로 정해져 있으니 고정된 배열 형태로 만들어보면 어떨까?” 라는 생각이 들었고 아래와 같은 코드를 작성했습니다.Set[] list = new HashSet[9];.. 2024. 12. 27.