전체 글

항상 정리하며 기록하고 있습니다.
JIT 컴파일러를 공부하다보니, AOT 컴파일러 또한 공부를 해보려 합니다. AOT 컴파일러란?AOT(Ahead-Of-Time) 컴파일러는 프로그램 실행 전에,소스 코드나 중간 코드(바이트코드)를 미리 기계어로 컴파일하는 방식입니다.즉, 실행 전에 컴파일을 모두 완료하므로, 실행 시점에서는 번역 없이 바로 실행 가능한 상태가 됩니다.AOT 컴파일러의 동작 과정소스 코드 작성:개발자가 작성한 고급 언어 코드(C, C++, Java 등)를 작성합니다.AOT 컴파일:소스 코드를 특정 플랫폼의 기계어로 변환하여 실행 가능한 바이너리 파일을 생성합니다.예: .exe, .elf, .bin 같은 파일.실행:컴파일된 바이너리 파일은 직접 운영체제와 하드웨어에서 실행됩니다.AOT 컴파일러의 장단점장점:빠른 실행 속도:이..
· Java
JIT 컴파일러란?JIT(Just-In-Time) 컴파일러는 Java Virtual Machine(JVM)의 실행 엔진의 한 부분으로,바이트코드를 프로그램 실행 중에 기계어(Machine Code)로 변환하여 실행 속도를 높이는 역할을 합니다.JIT 컴파일러의 동작 과정바이트코드 해석 시작: JVM은 프로그램을 실행할 때, 바이트코드를 인터프리터를 통해 한 줄씩 해석합니다.프로파일링(Profile): JVM은 실행 중 자주 호출되거나 반복적으로 실행되는 핫스팟(Hotspot) 코드를 식별합니다.예: 반복문, 자주 호출되는 메서드 등.JIT 컴파일 시작: 핫스팟으로 식별된 코드는 JIT 컴파일러가 기계어로 컴파일하여 변환합니다.변환된 기계어는 캐싱되어 이후에는 인터프리터 없이 바로 실행됩니다.최적화: JI..
· Spring
이와같이 패키지에 파일이 아무것도 없을때, 불편한 적이 있는데 아래와 같이 있는 루트로 들어가게되면 Compact Middle Packages 항목의 체크표시를 풀어주면 됩니다!!   저는 이와같이 전체 분리되어있는게 보기 더 편하더라고요 :) 혹시나 저와같이 찾는 분이 있을까봐 정리한, 인텔리제이 사용법이였습니다 :)
· Spring
과 같은 에러가 발생했다. 이 이유는 Spring Boot 파일을 처음 생성했을때, JAVA 21을 선택하였지만 해당 build.gradle 파일에서의 나의 설정은 17로 설정되었기 때문이다. 17 -> 21로 바꾼 후 빌드해주면 정상적으로 실행되는 것을 확인할 수 있다 :)    간단하게 해결할 수 있던 에러였지만, 앞으로 내 과거의 버그들을 하나하나씩 기록해가려한다! 어쩌면 첫 개발을 하는 사람들에게는 유용한 정보가 될 수 있고, 미래의 내가 과거의 나를 되돌아봤을때, 즐거운 추억이 될 수 있기 때문이다 :)
· Java
HashSet은 중복을 허용하지 않는 데이터 저장과 빠른 검색이 필요한 경우에 유용합니다.HashSet은 내부적으로 해싱(Hashing)을 사용하여 데이터를 관리하므로, 다음과 같은 특징과 장점을 가지고 있습니다.HashSet의 주요 특징중복된 값 저장 불가:동일한 값이 추가될 경우 무시됩니다.중복을 자동으로 제거해야 하는 경우 적합합니다.빠른 데이터 조회:내부적으로 해싱(Hashing)을 사용하여 데이터를 저장하고 검색하기 때문에, 평균적으로 O(1)의 시간 복잡도로 데이터를 검색할 수 있습니다.배열이나 리스트에서 탐색이 O(n)인데 비해 훨씬 효율적입니다.순서가 없음:HashSet은 순서를 유지하지 않으므로, 저장된 데이터의 순서는 보장되지 않습니다.데이터의 순서가 중요하지 않은 경우 적합합니다.Ha..
· Java
Java에서는 숫자의 진법 변환을 매우 간단하게 처리할 수 있는 내장 메서드를 제공합니다.특히, 8진수, 10진수, 16진수와 같은 다양한 진법을 다룰 때 효율적입니다.이번 글에서는 Integer 클래스의 주요 메서드들을 활용해 진법 변환을 정리하겠습니다.1. Integer.parseInt(String s, int radix)parseInt 메서드는 문자열로 주어진 숫자를 지정된 진법(기수)으로 해석하여 10진수 정수로 변환합니다.사용법int decimal = Integer.parseInt("17", 8); // 8진수 '17'을 10진수로 변환System.out.println(decimal); // 출력: 15매개변수s: 변환하려는 숫자를 나타내는 문자열.radix: 숫자가 표현된 진법 (2, 8, 1..
· Coding Test
해당 깃허브 레포를 참고하여 정리하였습니다 :) https://github.com/tony9402/baekjoon/1. 기초 알고리즘과 자료구조중요도 ★★★★★ (기초 다지기)implementation (구현)기초적인 문제 해결 능력을 키우기 위해 중요.math (수학)소수 판별, 최대공약수/최소공배수, 조합론 등 기본적인 수학 문제를 학습.data_structure (자료구조)배열, 리스트, 스택, 큐, 해시맵 등 기본 자료구조 학습.string (문자열)문자열 처리와 관련된 기초 문제 풀이.prefix_sum (누적합)효율적인 합 계산 방법 학습.2. 탐색과 그래프 기초중요도 ★★★★☆ (문제 풀이의 큰 축)brute_force (완전 탐색)가능한 모든 경우를 탐색하는 방법 이해.backtrackin..
· Java
Java를 배우다 보면 문자 리터럴('a')과 문자열 리터럴("a")의 차이점을 궁금해할 수 있습니다. 이번 글에서는 'a'의 의미와 특징, 활용 방법에 대해 알아보겠습니다.1. 'a'의 정의Java에서 'a'는 문자 리터럴을 의미하며, 하나의 문자만을 표현하는 char 타입으로 처리됩니다. 문자 리터럴은 항상 작은따옴표(')로 감싸야 합니다.2. 'a'의 주요 특징유니코드 값모든 문자는 유니코드 값을 가지고 있으며, 'a'의 유니코드 값은 97입니다.예를 들어:'a': 97'b': 98'z': 122char 타입'a'는 char 타입입니다. 이는 단 하나의 문자를 표현합니다.문자열과는 다릅니다. 문자열은 String 타입이며, "a"는 하나의 문자로 구성된 문자열입니다.숫자처럼 연산 가능char 타입은..