분류 전체보기 367

[Java] 메서드와 필드 접근: 런타임과 컴파일 타임의 차이

Java에서는 클래스에서 정의한 필드(변수)와 메서드(함수)에 접근할 때 서로 다른 원칙을 따릅니다. 메서드는 객체의 실제 타입(런타임 타입)을 따르고, 필드는 선언된 타입(컴파일 시점)을 따라갑니다. 🔍 예제 코드 분석class Parent { String str = "Parent"; String getStr() { return str; }}class Child extends Parent { String str = "Child"; String getStr() { return str; }}public class Main { public static void main(String[] args) { Parent parent = ne..

JVM 2025.06.05

[Java] 제네릭과 오버로딩, 왜 예상과 다를까?

Java에서 흔히 사용하는 제네릭과 오버로딩은 각각 명확한 규칙을 가지고 있지만, 함께 사용할 때는 가끔 예상과 다른 결과가 발생합니다. 이번 글에서는 왜 이런 일이 발생하는지, Java 컴파일러의 동작 원리까지 함께 살펴보겠습니다.예제 코드 분석class Display { void show(String s) { System.out.println("String: " + s); } void show(Object o) { System.out.println("Object: " + o); }}public class GenericExample { public static void main(String[] args) { Holder holder = n..

JVM 2025.06.05

대선 후보의 자본시장 공약

📌 이 글은 각 후보의 공식 공약집을 바탕으로 정리한 것으로, 정치적 편향 없이 투자자 입장에서 중립적으로 해석한 내용입니다. 🧩 코리아 디스카운트, 왜 생겼을까?‘코리아 디스카운트’는 한국 기업이 해외보다 낮은 가치로 평가받는 현상입니다. 대표적인 원인으로는 다음과 같은 것들이 있습니다.대주주 중심 경영 → 소액주주 권익 무시불투명한 지배구조 → 기업 신뢰도 하락배당 성향 낮음, 세금 부담 높음제도 불확실성, 내부자 거래 의혹이런 환경은 국내외 투자자들의 신뢰를 떨어뜨리고, 기업가치 저평가 → 주가 부진 → 자본시장 위축으로 이어집니다.🗳️ 후보별 자본시장 공약 요약구분이재명 후보 (더불어민주당)김문수 후보 (국민의힘)접근 방식강한 규제 중심의 상법 개정유연한 세제 중심의 자본시장법 개정주된 목표..

금융 2025.06.02

BoA 전략가가 주목한 3B 지표: XBD, IXG, Bitcoin

참조: MarketWatch - Bank of America Strategist이 글은 Bank of America의 수석 전략가 마이클 하트넷(Michael Hartnett)의 시장분석을 요약한 것입니다. 다만, 저는 시장이 일정한 규칙을 가지고 움직인다고 생각하지 않습니다. 시장 참여자들의 심리와 외부 변수는 언제든 예측을 벗어날 수 있다고 보기 때문에, 이 글은 특정 방향성을 제시하기보다 하트넷이 주목한 지표와 해석을 정리하는 데 목적이 있습니다. Markets are finely poised between a bullish breakout and bearish breakdown.Bank of America의 수석 전략가 마이클 하트넷(Michael Hartnett)이 최근 고객에게 보낸 메모에서..

금융 2025.05.31

Spring 서버가 자체 서명 SSL 서버와 통신할 때 생기는 문제와 해결 방법

✅ 문제 배경Spring 서버가 자체 서명된(Self-signed) SSL 인증서를 사용하는 서버와 HTTPS 통신을 시도할 때 다음과 같은 SSL 오류가 발생합니다.javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: unable to find valid certification path to requested target ✅ 직접 생성한 인증서라면🚩 1단계: OpenSSL과 CNF 파일로 인증서 생성CNF 파일이란?OpenSSL 인증서 생성 시 사용하는 설정파일로, 인증서에 포함될 정보를 정의합니다. 특히 subjectAlt..

JVM 2025.05.29

Node.js 서버가 자체 서명 SSL 서버와 통신할 때 생기는 문제와 해결 방법

✅ 문제 배경회사 내부 시스템이나 개발 환경에서는 종종 Let's Encrypt 같은 인증기관(CA)을 거치지 않고, OpenSSL 등으로 만든 자체 서명된 인증서(Self-signed certificate) 를 사용하는 경우가 많습니다. 예를 들면, 다음과 같은 시스템에 자체 인증서가 사용될 수 있습니다:내부 로그인 서버 (예: Keycloak)내부 파일 저장 서버 (예: MinIO)API 서버 (직접 만든 HTTPS 서버)이때 이들 서버와 Node.js 기반 서버(Next.js, NestJS 등) 가 통신하려고 하면, 아래와 같은 에러가 발생할 수 있습니다:Error: self signed certificateUNABLE_TO_VERIFY_LEAF_SIGNATURE🧨 왜 이런 문제가 생기나요?📌 ..

Javascript 2025.05.29

[Nuxt3] Next-Auth 사용 시 쿠키 중복 및 SSR 처리 주의사항

문제 상황Nuxt3와 Next-Auth를 함께 사용할 때, 서버 사이드 렌더링(SSR) 과정에서 useAuth().getSession()을 호출하면 매번 새로운 set-cookie 헤더가 응답에 추가됩니다. 특히 아래와 같은 상황에서 문제가 심각해집니다:다수의 API 호출: SSR 중 여러 컴포넌트가 각각 getSession()을 호출하는 경우헤더 크기 제한 초과: HTTP 쿠키 헤더 전체 크기가 일반적으로 4KB를 넘으면 브라우저가 쿠키를 거부하거나 잘라냅니다.중복 세션 쿠키: 동일한 세션 쿠키가 반복 삽입되어, 실제 필요한 쿠키 외에 불필요한 메타 정보가 헤더에 포함됩니다.결과적으로 SSR 중 렌더링이 실패하거나, 클라이언트에 쿠키가 제대로 전달되지 않는 현상이 발생할 수 있습니다.원인 분석클라이언트..

Javascript/NuxtJS 2025.05.27

[Keycloak] 클라이언트별 그룹 로그인 제한 구현

Keycloak 26 버전에서는 클라이언트 단위로 로그인 제어를 정교하게 할 수 있는 기능이 제한적입니다. 본 포스트에서는 특정 클라이언트에 특정 그룹만 로그인 가능하도록 제어하는 커스텀 Authenticator SPI를 구현하고, 이를 Browser Flow에 적용하는 과정을 정리합니다.1. 요구사항 정리특정 클라이언트(clientId)에 대해서만 특정 그룹(Group.name)에 속한 사용자만 로그인 가능클라이언트별로 매핑된 허용 그룹 리스트는 관리자가 UI에서 직접 설정할 수 있어야 함설정은 Keycloak Admin Console의 Authentication Flow에서 입력2. 해결 전략Keycloak의 Authenticator SPI를 구현하여 사용자 인증 시점에 그룹 조건을 체크실행 위치는 ..

Keycloak 2025.05.27

SLR 규제 완화란 무엇이며 왜 중요한가?

https://news.mt.co.kr/mtview.php?no=2025052715083385255 베선트가 꺼낸 'SLR 완화' 카드, 국채 시장 진정시킬까 - 머니투데이미 국채 금리가 여전히 높은 수준을 유지 중인 가운데 스콧 베선트 미 재무장관이 올 여름 예고한 보완적 레버리지 비율(SLR) 완화가 국채 시장을 안정시킬 수 있을지 관심이 쏠린다. 높은 국채news.mt.co.kr 최근 금융시장에서는 미국이 SLR 규제를 완화할 가능성이 주목받고 있습니다. 금융 뉴스를 보면 자주 등장하는 이 'SLR 규제'라는 용어, 도대체 무슨 뜻이고 왜 중요한지 쉽게 알아보겠습니다.SLR이란?SLR(Supplementary Leverage Ratio, 보완적 레버리지 비율)은 쉽게 말해 "은행이 보유한 전체 자산..

금융 2025.05.27

[Java] 자바는 Call by Value

자바는 기본형(primitive이든, 참조형(reference type이든 무조건 "값"을 복사해서 함수에 전달합니다.차이점은 기본형은 실제 값, 참조형은 객체의 주소(참조값)가 복사된다는 점입니다.참조값 복사는 "Call by Reference 아니야?"라는 오해가 생길 수 있습니다.. 특히 객체나 배열을 다룰 때 원본이 바뀌는 것을 보고 더 혼란스러울 수 있죠.기본형: 값 자체가 복사됨void change(int x) { x = 10;}int a = 5;change(a);System.out.println(a); // 출력: 5a의 값이 x로 복사됩니다.함수 안에서 x를 변경해도 a는 영향을 받지 않습니다.참조형: 참조값(주소)이 복사됨void change(int[] arr) { arr[0..

JVM 2025.05.17