
ServletContext의 Attribute에서 List 값을 다운 캐스팅해서 가져올 때 Unchecked Warning이 발생했는데 이 경고를 해결하는 두 가지 방법을 소개해보겠다.1. Unchecked Warning 원인1.1 제네릭과 타입 소거Unchecked Warning은 주로 제네릭과 관련해서 발생한다. 제네릭은 컴파일 타임에만 타입을 유지하고 런타임에는 타입이 소거된다.이로 인해 컴파일 타임에는 타입 안전성을 보장하더라도 런타임에서는 이를 보장하지 못하게 된다.1.2 주요 원인은 Object로 저장해서 제네릭 타입으로 다운 캐스팅을 해야할 때반환 타입이 Object이므로 특정 타입으로 캐스팅할 때 컴파일러는 타입 안전성을 검증할 수 없다. 왜냐하면 런타임에는 제네릭이 소거되기 때문이다.아래..

자바 애플리케이션 개발 시 외부 설정을 읽을 수 있는 다양한 방법이 존재한다.이 글에서는 OS 환경 변수, JVM 시스템 속성, 커맨드 라인 인수, 그리고 커맨드 라인 옵션 인수(스프링부트)를 통해 설정값을 전달하는 방법을 자세히 알아보겠다.1. OS 환경변수OS 환경 변수는 운영체제에서 설정된 전역적인 값이다. 이러한 환경 변수는 다양한 프로그램에서 활용될 수 있다.1.1 터미널에서 환경 변수 조회Mac/Linux에서 터미널로 조회printenv 또는 env 명령어를 사용하면 현재 시스템에 설정된 환경 변수를 확인할 수 있다.printenvWindows에서 환경 변수 조회명령 프롬프트에서 다음 명령어를 실행한다.set1.2 자바 코드에서 환경 변수 조회자바에서는 System.getenv()를 통해 O..