All102 [Java] var var란?Java 10에서 도입된 지역 변수 타입 추론 문법var로 선언하면 컴파일러가 우변(= 초기화 값)을 보고 정적 타입을 결정예약된 타입 이름(reserved type name)타입 위치에서만 특별한 의미가 있고, 그 외 위치(메서드명 등)에서는 식별자로 쓸 수 있다 어디서 사용하나지역 변수, for-each 변수, try-with-resources 리소스 변수, 람다 파라미터(Java 11 이상)에서 사용 가능.단, 필드(멤버 변수), 메서드 매개변수/반환 타입(람다 파라미터는 예외)에서는 사용 불가! 예시// 지역 변수: 우변으로 정적 타입이 확정var n = 1; // intvar l = 1L; // longvar name.. 2025. 8. 10. [Java] Jackson #1 1. Jackson이란?목적Java 객체를 JSON(또는 다른 포맷)으로 직렬화하거나, JSON을 Java 객체로 역직렬화하기 위한 오픈소스 라이브러리.특징빠른 성능(스트리밍 API 기반)풍부한 애노테이션과 플러그인 구조XML·YAML·CSV·CBOR·Smile 등 다양한 포맷 모듈 제공 2. 핵심 모듈 구조모듈Maven역할jackson-corecom.fasterxml.jackson.core:jackson-core저수준 파서/제너레이터(API)jackson-databindcom.fasterxml.jackson.core:jackson-databindObjectMapper 등 고수준 바인딩 기능jackson-annotationscom.fasterxml.jackson.core:jackson-annotation.. 2025. 8. 10. [DEV] Tomcat 서버를 윈도우 서비스로 등록 톰캣을 실행할 때 보통 catalina.bat run 명령어를 사용하지만, 서버를 재부팅할 때마다 매번 수동으로 실행하는 것은 너무너무 번거롭다.그럼 어떻게 자동으로 켜지게 할 수 있을까? 바로 윈도우 서비스로 등록하는 것이다! Windows Service(윈도우 서비스)Windows Service는 Windows 운영체제에서 백그라운드로 실행되는 프로그램 일반적인 응용 프로그램처럼 사용자 인터페이스(UI)는 없으며, 컴퓨터가 부팅될 때 자동으로 시작되거나 사용자가 로그인하지 않아도 동작할 수 있음!서버 애플리케이션이나 모니터링 도구처럼 항상 실행되어야 하는 프로그램을 운영할 때 매우 유용하다. 서비스 관리 명령어관리자 권한으로 cmd에서 실행# 서비스 목록 보기sc query# 서비스 시작sc star.. 2025. 7. 31. [DEV] DHCP DHCP란DHCP (Dynamic Host Configuration Protocol) - 동적 호스트 설정 프로토콜역할 : 네트워크에 연결된 기기에 IP 주소, 서브넷 마스크, 게이트웨이, DNS 서버 주소 등을 자동으로 할당.자동으로 설정해주기 때문에, 사용자가 일일이 IP를 수동으로 입력하지 않아도 된다.집이나 회사에서 와이파이만 연결하면 인터넷 되는 것, 다 DHCP 덕분.IP 충돌 방지, 관리 편의성, 확장성에서 매우 유리. 동작 방식단계메시지명설명1단계DHCPDISCOVER클라이언트가 네트워크에 접속하면서, DHCP 서버를 찾음2단계DHCPOFFERDHCP 서버가 사용 가능한 IP와 설정값을 제안함3단계DHCPREQUEST클라이언트가 특정 제안에 대해 요청4단계DHCPACK서버가 최종적으로 IP.. 2025. 7. 27. [Java] Java Remote Debugging 자바 원격 디버깅 #2 (JDWP 디버깅 옵션) JDWP 디버깅 옵션1. 디버깅 JVM 방식 (server) 모드 설명 server=yJVM이 디버거 요청을 수신하는 서버 역할 (일반적으로 많이 사용)server=nJVM이 디버거(IDE)로 접속을 시도함 (거의 사용 안 함) 2. JVM 실행 대기 여부 (suspend)모드설명 suspend=y 디버거가 연결되기 전까지 JVM 실행을 멈춤 (초기 진입 디버깅 시 사용) suspend=n 디버거 연결 여부와 무관하게 JVM 실행 (운영 환경에서 일반적으로 사용) 3. 디버깅 포트 지정 (address) 값 예시 설명 50055005 포트에서 디버거 연결 수신 (localhost 기본 바인딩)*:5005모든 IP에서 연결 수신 허용 (JDK 9 이상)127.0.0.1:5005로컬 루프백 전용.. 2025. 7. 24. [Java] Java Remote Debugging 자바 원격 디버깅 #1 (개념) 이미 배포된 어플리케이션에서 발생한 오류를 디버깅하고 싶다면 어떻게 해야 할까? JPDA란? JPDA (Java Platform Debugger Architecture) Java 애플리케이션을 외부에서 디버깅할 수 있도록 만들어진 디버거 통신 아키텍처즉, 디버거(IDE)와 JVM(실행 중인 애플리케이션) 간의 통신 프로토콜을 정의한 표준JDK에 기본 포함되어있음 JPDA의 구성 요소 (4 계층 아키텍처) 계층 구성 요소 설명 1️⃣JDI (Java Debug Interface)디버거 측에서 사용하는 고수준 API (IntelliJ, Eclipse 등이 이걸 사용)2️⃣JDWP (Java Debug Wire Protocol)디버거와 JVM 간의 통신 형식과 의미를 정의 (네트워크 프로토콜)3️.. 2025. 7. 17. [Oracle] ojdbc8.jar + interrupt 함수 = Socket read interrupted Oracle DB로 기동 된 서버의 웹소켓을 호출하는 부분에서 알 수 없는 로그와 함께 에러가 발생하였다. 에러 내용org.springframework.dao.DataAccessResourceFailureException: PreparedStatementCallback; SQL [INSERT INTO SPRING_SESSION_ATTRIBUTES (SESSION_PRIMARY_ID, ATTRIBUTE_NAME, ATTRIBUTE_BYTES) VALUES (?, ?, ?)]; IO 오류: Socket read interrupted; nested exception is java.sql.SQLRecoverableException: IO 오류: Socket read interrupted 에러 파악사용자가 기능을.. 2025. 7. 15. [Git] Worktree 현재 작업하고 있는 내용이 있는데, 다른 브랜치를 수정해야할 때면 매번 stash를 하곤 했다. 그렇지만 그걸 반복하다보면 헷갈리기도 하고, 중간에 내용이 누락될 수도 있어 불안전하다고 느껴졌다. 그러다가 이번에 git worktree라는 기능을 알게되어 정리해보았다. 1. git worktree란git worktree는 하나의 Git 저장소에서 여러 작업 디렉토리를 사용할 수 있게 해주는 기능기존에는 다른 브랜치로 작업하고 싶을 때마다 git checkout으로 이동해야 했지만, worktree를 이용하면 여러 브랜치를 서로 다른 폴더에 동시에 checkout해 둘 수 있다.즉, clone처럼 보이지만 원격 저장소 없이, 하나의 Git 히스토리를 공유하며 여러 작업 폴더를 운영할 수 있다. 2. 기본.. 2025. 7. 13. [Security] HttpFirewall 최근 URL에서 // 와 같은 이중 슬래시를 사용한 것과 관련하여 핸들링 요청이 들어왔었다. 이중 슬래시 막는 방법을 찾아봤는데 다음과 같이 여러 방식이 있었다.400 에러로 직접 응답하는 방식슬래시를 하나로 치환(replace)하는 방식Spring Security 설정으로 제어하는 방식 등등..그러던 중, HttpFirewall이라는 Spring Security 속성을 알게 되었고, 그 내용을 정리해보게 되었다. HttpFirewall이란? Spring Security가 제공하는 URL 검사기FilterChain에 들어가기 전에 요청을 점검해 위험한 요청을 선제적으로 차단대표적으로 차단되는 경우이중 슬래시 / 디렉토리 이동 / 잘못된 인코딩이러한 요청들은 디렉토리 우회 공격이나 URL 인코딩 우회 등.. 2025. 7. 11. 이전 1 2 3 4 ··· 12 다음