목록2025/06 (36)
변수의 기록

🌐 NGINX + CORS + Reverse Proxy 완전 정리이 글은 실무 개발자와 블로그 작성을 위해, **CSR (Client Side Rendering, React 등)**과 SSR (Server Side Rendering, JSP 등) 환경에서 발생할 수 있는 CORS 문제, Reverse Proxy의 필요성, 그리고 NGINX 설정과 역할에 대해 깊게 정리한 문서입니다.1. CORS란?**CORS (Cross-Origin Resource Sharing)**는 브라우저 보안 정책 중 하나로, JS에서 API 요청 시 출처(origin)가 다르면 차단합니다.출처는 프로토콜 + 도메인 + 포트 조합이 일치해야 동일 출처로 인정됩니다.🔹 브라우저는 어떤 기준으로 CORS를 판단하는가?오직 브라우..
자바에서 업캐스팅과 다운캐스팅, equals와 hashCode, toString의 역할 및 오버라이딩 이유1. 업캐스팅과 다운캐스팅의 원리와 목적✅ 업캐스팅 (Upcasting)자식 객체를 부모 타입으로 참조하는 것예: Parent p = new Child();자동 형변환이 일어나며, 부모가 가진 멤버만 접근 가능런타임 시에는 실제 객체가 Child이더라도, 컴파일러는 Parent 기준으로 접근 허용다형성의 핵심: 다양한 자식 객체를 하나의 부모 타입으로 묶어 공통된 방식으로 처리 가능✅ 다운캐스팅 (Downcasting)부모 타입으로 참조된 객체를 다시 자식 타입으로 변환예: Child c = (Child) p;명시적 형변환이 필요하며, 실제 객체가 해당 자식 타입일 때만 안전하게 가능그렇지 않으면 C..

더보기문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전..
더보기문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. 입출력 예 n result 78 83 15 23 입출력 예 설명 내가 최초 생각한 답. class Solution { publi..
스프링과 리플렉션 정리2: 실행 흐름, 어노테이션, Bean 등록까지스프링을 공부하면서 헷갈리는 개념 중 하나가 바로 "리플렉션과 스프링 컨테이너의 관계"입니다.이번 글에서는 제가 직접 학습한 내용을 바탕으로, 스프링의 실행 흐름과 리플렉션이 어떻게 작동하는지그리고 @Component, @Service 등의 어노테이션이 실제로 어떻게 처리되는지 정리해보았습니다.✅ 0. 리플렉션 복습: 런타임의 동적 처리 기술📌 리플렉션이란?리플렉션(Reflection)은 자바에서 런타임 중 클래스, 메서드, 필드 등의 정보를 조회하고 조작할 수 있는 기능이다.java.lang.reflect 패키지를 통해 제공되며,Class 객체를 통해 메서드를 호출하거나 필드에 접근하는 것이 가능하다.Class clazz = Clas..
1. 상속 시 생성자 규칙기본 규칙자식 클래스의 생성자에서는 무조건 부모 생성자를 먼저 호출해야 한다.명시하지 않으면 컴파일러가 자동으로 super();를 추가함그런데 부모 클래스에 기본 생성자가 없으면, 자동 super(); 호출이 불가능하므로 컴파일 에러 발생예시 1: 부모에 기본 생성자 없을 때class Parent { public Parent(String name) {} // 기본 생성자 없음}class Child extends Parent { // 컴파일 에러! super() 자동 삽입 → 오류 public Child() {}}해결법:부모에 기본 생성자 추가자식에서 명시적으로 super("값") 호출class Child extends Parent { public Child..
1. 리플렉션의 개념리플렉션(Reflection)은 자바에서 런타임 중 클래스, 메서드, 필드 등의 정보를 조회하고 조작할 수 있는 기능이다.java.lang.reflect 패키지를 통해 제공되며,Class 객체를 통해 메서드를 호출하거나 필드에 접근하는 것이 가능하다.Class clazz = Class.forName("com.example.MyService");Object instance = clazz.getDeclaredConstructor().newInstance();Method method = clazz.getMethod("run");method.invoke(instance); 이처럼 클래스 이름이 문자열로 주어졌을 때도 객체 생성과 메서드 호출이 가능하다는 점이 리플렉션의 핵심이다.컴파일 타임이..