본문 바로가기

분류 전체보기179

[Spring] Spring Boot에서 JAR 파일 활용 및 실행 과정 Spring Boot 애플리케이션을 실행하면 내부적으로 JAR 파일을 활용하여 실행된다.Spring Boot에서 빌드하면 **실행 가능한 JAR 파일(Fat JAR, Uber JAR)**이 생성되며, 이 JAR 파일을 실행하면 JVM이 내부 클래스를 로드하고 내장 웹 서버를 시작한 후, Spring 애플리케이션을 실행한다. (Fat JAR : 실행 가능한 JAR로, 애플리케이션 코드 + 모든 의존 라이브러리를 포함한 JAR) 1. Spring Boot에서 JAR 파일이 생성되는 과정 Spring Boot 애플리케이션은 빌드 시 JAR 파일을 생성하며, 이 JAR 파일에는 다음이 포함된다. 1. 애플리케이션 코드 (.class 파일) 2. application.properties 또는 application.. 2025. 3. 8.
[JAVA] 자바의 실행 흐름 자바(Java)의 동작 원리: 컴파일부터 실행까지 자바(Java)는 “한 번 작성하면, 어디서든 실행 가능(Write Once, Run Anywhere)”한 언어로, 이를 가능하게 하는 핵심 요소는 JVM(Java Virtual Machine, 자바 가상 머신)이다.자바 코드가 실행되는 과정은 소스 코드 → 바이트코드 변환 → JVM에서 실행의 단계로 진행된다. 1. 자바 실행 과정 개요 자바 프로그램은 다음과 같은 단계를 거쳐 실행된다. 1. 소스 코드 작성 (.java 파일) 2. 컴파일러(javac)가 바이트코드(.class 파일)로 변환 3. JVM(Java Virtual Machine)이 바이트코드를 해석하고 실행 4. 네이티브 코드(기계어)로 변환 후 실행  2. 자바 실행 과정 상세 분석 1.. 2025. 3. 8.
[Network] 쿠키(Cookie) vs 세션(Session) 쿠키와 세션은 웹에서 사용자 상태를 유지하기 위한 기술입니다.둘 다 로그인 유지, 장바구니 기능 등에 사용되지만, 동작 방식과 저장 위치가 다릅니다.쿠키는 클라이언트(브라우저)에 저장되고, 세션은 서버에서 관리됩니다.   1. 쿠키(Cookie)란?  쿠키는 클라이언트(브라우저)에 저장되는 작은 데이터 파일입니다. 서버가 응답할 때 Set-Cookie 헤더를 사용하여 설정하며, 이후 같은 도메인에 요청할 때 자동으로 전송됩니다. 쿠키는 브라우저가 관리하는 작은 데이터 조각이며, 주로 사용자 인증, 사이트 설정 유지 등에 사용됩니다.서버에 요청할 때 브라우저가 자동으로 쿠키를 포함하여 전송합니다.유효 기간을 설정할 수 있으며, 브라우저를 닫아도 유지되는 “영속적인 쿠키”도 가능합니다.  쿠키 동작 과정 1.. 2025. 2. 18.
[Network] API Gateway API Gateway는 백엔드 서버로 API 요청이 들어가기 전에 거치는 “관문(Gateway)” 같은 개념이며, 다양한 기능을 포함하는 “넓은 범위의 시스템”입니다.즉, API Gateway는 단순한 라우터(Router) 역할뿐만 아니라, 필터(Filter), 인증(Authentication), 보안(Security), 캐싱(Caching), 로깅(Logging) 등의 기능을 포함할 수 있습니다.  1. API Gateway의 개념을 쉽게 설명하면? API Gateway는 “백엔드 서버로 요청이 들어가기 전에 모든 요청을 관리하는 중앙 시스템”입니다. - API 요청을 백엔드 서버로 보내기 전에 필터링, 인증, 캐싱 등을 수행하는 관문 역할 즉, API Gateway는 하나의 기능이 아니라 여러 개의 .. 2025. 2. 17.
[Network] 모놀리식 아키텍처(Monolithic), MSA(마이크로서비스 아키텍처), 로드 밸런서(Load Balancer) 정리 1. 모놀리식 아키텍처 (Monolithic Architecture) 정의:모든 기능이 하나의 애플리케이션으로 통합된 아키텍처즉, 하나의 코드베이스에서 모든 기능이 실행되는 방식 특징: • 하나의 애플리케이션이 모든 기능(회원, 결제, 주문, 상품 등)을 포함 • 배포 시 모든 코드가 함께 배포됨 • 같은 코드를 여러 서버에서 실행 가능 (로드 밸런서를 통해 트래픽 분산 가능) 장점:- 개발과 배포가 상대적으로 단순- 초기 개발 비용이 낮음- 유지보수와 디버깅이 쉬움 (하나의 코드베이스에서 관리) 단점: • 특정 기능이 변경되면 전체 시스템을 다시 배포해야 함 • 애플리케이션이 커질수록 유지보수가 어려워짐 • 특정 서비스에 부하가 걸리면 전체 애플리케이션 성능이 저하될 가능성이 있음 • 확장성이 제한적 .. 2025. 2. 17.
[코딩테스트] 배열과 리스트 변환 배열과 리스트는 Java에서 자주 사용되는 자료구조이며, 필요에 따라 서로 변환해야 하는 경우가 많습니다. 여기서는 배열을 리스트로 변환하는 방법과 리스트를 배열로 변환하는 방법을 각각 살펴보겠습니다. 1-1. 배열을 리스트로 변환  new ArrayList(Arrays.asList()) 사용 (가변 리스트) 리스트에 요소 추가/삭제가 필요한 경우import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main { public static void main(String[] args) { String[] array = {"a", "b", "c"}; // 배열 → 리스트 변환 (가변.. 2025. 1. 30.