728x90

전체 글 24

Certbot으로 생성한 인증서 갱신 방법 (Standalone 모드 기준)

Let's Encrypt의 무료 SSL 인증서를 사용하고 있다면, 인증서의 자동 갱신 설정이 매우 중요합니다. 특히 --standalone 모드로 인증서를 발급한 경우라면, 갱신 시 주의할 점이 있습니다. 이 글에서는 certbot certonly --standalone으로 생성한 인증서를 어떻게 갱신하고, 자동화하는지 자세히 설명드립니다. Certbot Standalone 인증서 갱신이란?--standalone 모드는 웹 서버 없이 Certbot이 자체적으로 HTTP 서버를 띄워 인증서를 발급하는 방식입니다.주로 DuckDNS, 공유기 DDNS, 라즈베리파이, 간단한 웹 서비스에서 사용되며, nginx나 apache와의 연동이 없는 환경에 적합합니다.하지만 이 방식은 웹서버가 동시에 포트 80/443을..

[Spring Boot DDNS 자동 갱신] DuckDNS와 함께하는 DDNS IP 자동화 프로그램 만들기

DDNS란? DuckDNS 설정? 공인 IP가 바뀌어도 외부 접속을 유지하는 방법!이 글에서는 DuckDNS와 Spring Boot를 활용해 공인 IP 자동 갱신 프로그램을 만드는 방법을 소개합니다. DDNS란? 왜 필요한가?고정 IP가 없는 환경에서 외부 접속을 원할 때DDNS(Dynamic DNS)는 공인 IP가 자주 변경되는 환경에서도 고정된 도메인 주소로 외부 접속이 가능하게 해주는 기술입니다.예를 들어 집에서 웹서버, CCTV, NAS 등을 운영하는 경우, ISP(통신사)가 할당하는 IP는 일정 시간마다 변경될 수 있습니다. 이때 DDNS를 사용하면 example.duckdns.org 같은 고정 도메인 주소로 계속 접속할 수 있습니다.무료 DDNS 서비스: DuckDNShttps://www.du..

[Tomcat Memory Leak 해결] Spring + Quartz + JDBC 사용 시 발생하는 경고 제거 방법

문제 상황 : Tomcat 종료 시 Memory Leak 경고 발생Spring 기반 테스트 프로젝트를 실행 후 종료했을 때, 다음과 같은 Tomcat의 Memory Leak 경고 메시지가 출력되었습니다.WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [test] registered the JDBC driver [oracle.jdbc.OracleDriver] but failed to unregister it...WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The..

[Spring + MyBatis + Oracle] ORA-01861 오류 추적기: "literal does not match format string" 해결법

문제 상황 : 자바는 잘 보냈는데, 프로시저 내부에서 터지는 ORA-01861Spring 환경에서 MyBatis를 통해 Oracle 프로시저를 호출할 때 아래와 같은 오류를 만난 적 있으신가요?ORA-01861: literal does not match format string이 에러는 자바에서 전달한 값이 Oracle이 기대하는 날짜/타임스탬프 포맷과 일치하지 않을 때 발생합니다. 일반적인 경우라면 금방 해결할 수 있지만, **프로시저 내부에서 동적 SQL(String 조합으로 만든 쿼리)**을 실행하는 구조라면, 디버깅이 훨씬 어려워집니다. 현상 재연이 어려웠던 이유디버 도구(DB Visualizer, DBeaver 등)로 해당 프로시저를 호출하면 정상 동작자바 프로그램에서만 동일 입력으로 오류 발생..

[CI/CD 서버 구축 #5] Maven deploy 시 자동 생성된 pom.xml로 인한 문제와 해결법

폐쇄망 환경에서 mvn deploy:deploy-file 명령어로 외부 라이브러리를 Nexus Repository에 수동 업로드할 때, 종종 발생하는 문제가 있습니다. 바로 자동 생성된 pom.xml이 실제 배포된 라이브러리의 메타 정보와 다를 경우 발생하는 의존성 충돌 또는 빌드 실패입니다.이 글은 이전글인 [이 글]과 이어진 글이므로 같이 보시면 좋습니다. 문제 : Maven이 생성한 POM이 원본과 다를 때 mvn deploy:deploy-file 명령어는 .jar 파일만 있으면 기본적으로 groupId, artifactId, version 등의 메타 정보만을 바탕으로 간이 POM 파일을 자동 생성합니다. 하지만, 실제 Maven Central에 배포된 라이브러리의 pom.xml에는 다음과 같은 중..

서버/CI 및 CD 2025.04.23

[CI/CD 서버 구축 #4] 폐쇄망 환경에서 오픈소스 라이브러리를 Nexus에 업로드하는 3가지 방법

기업 내부망이나 보안 상의 이유로 인터넷 접속이 제한된 환경에서도 개발에 필요한 오픈소스 라이브러리를 활용해야 하는 경우가 많습니다. 이럴 때 Sonatype Nexus Repository Manager를 이용해 외부 라이브러리를 내부망으로 안전하게 가져오는 3가지 주요 방법을 소개합니다.설치에 관해 궁금하시면 이전 글인 [이 글]을 참고 하시기 바랍니다. 1. 프록시 리파지토리 등록 (인터넷 가능 환경에서 미리 캐시)Nexus는 외부 저장소를 프록시(Proxy) 리파지토리로 설정하여 필요한 라이브러리를 자동으로 가져오고 로컬에 캐시할 수 있습니다. 인터넷이 가능한 세팅 초기 단계에서 이 방법을 활용하면 수많은 라이브러리를 자동으로 확보할 수 있습니다.설정 방법Nexus Repository Manager..

서버/CI 및 CD 2025.04.23

Java에서 암호화된 ZIP 파일 푸는 방법 (Zip4j 라이브러리 사용법)

Java로 개발을 하다 보면 종종 ZIP 압축 파일을 다뤄야 할 일이 생기는데, 그중에서도 비밀번호가 걸린 ZIP 파일을 해제해야 하는 경우가 있습니다.하지만 기본 Java API나 아파치 라이브러리로는 이를 처리하기 어렵습니다.이 글에서는 Java환경에서 비밀번호가 설정된 ZIP 파일을 안전하게 해제하는 방법과, 이를 위한 Zip4j 라이브러리의 사용법을 정리해드립니다. Java에서 비밀번호 ZIP 파일을 해제하려면?Java의 기본 java.util.zip 패키지는 암호화된 ZIP 파일을 지원하지 않습니다.그렇기 때문에 다음과 같은 서드파티 라이브러리를 사용하는 것이 필요합니다. 추천 라이브러리: Zip4jZip4j는 Java에서 가장 널리 사용되는 ZIP 라이브러리 중 하나로, 비밀번호 해제, AES..

PuTTY 키 기반 로그인 설정 가이드 (Windows 기준)

설정 저장 SSH 접속을 자동화하고 보안성을 강화하는 법이 설정을 하기 전에 접속하려는 서버에 키 로그인 설정을 해야 하는데 그 부분은 [이 글]을 참고 하시면 됩니다. 이 글에서 다루는 내용PuTTY에서 OpenSSH 키 변환 방법키 기반 인증을 사용하는 SSH 로그인 설정접속 자동화 및 인증 오류 해결 팁 PuTTY 키 변환 (OpenSSH → PPK)PuTTY는 .ppk 형식의 키 파일을 사용합니다. Linux나 Jenkins 환경에서 생성한 id_rsa (OpenSSH) 키를 PuTTY에서 사용하려면 변환 과정이 필요합니다.변환 절차1. PuTTYgen 실행설치된 PuTTY 폴더 내 PuTTYgen을 실행합니다.2. OpenSSH 키 불러오기메뉴에서 File > Load private key 선택..

Java XML 파서 비교 분석 – JAXB vs StAX vs SAX vs DOM

XML은 여전히 다양한 시스템 통신과 설정 파일에 널리 사용되는 데이터 형식입니다. Java에서는 XML을 처리하기 위해 여러 가지 파싱 방식이 존재하며, 그 중 대표적인 방식은 JAXB, StAX, SAX, DOM입니다.이번 글에서는 Java XML 파서 4종을 비교 분석하여, 언제 어떤 파서를 선택하면 좋을지 명확하게 알려드리겠습니다. 1. JAXB (Java Architecture for XML Binding)JAXB는 XML과 Java 객체 간의 자동 바인딩을 제공하는 프레임워크입니다. 애너테이션 기반으로 XML ↔ 객체 간 매핑을 자동으로 처리해줍니다.특징Java 클래스와 XML 간의 마샬링/언마샬링 자동화애너테이션 사용XML 스키마(XSD) 기반 클래스 생성 가능 장점코드가 간결하고 직관적객체..

Java로 DNS 서버 만들기 – 모바일 테스트를 위한 자체 DNS 구축 방법

모바일 웹 개발을 하다 보면 실제 모바일 환경에서 도메인 접속 테스트가 필요할 때가 있습니다. 하지만 네트워크 환경상 도메인을 강제로 매핑해 테스트하는 것이 어려울 경우, 자체 DNS 서버를 만들어 활용하면 큰 도움이 됩니다. 이번 포스팅에서는 Java로 DNS 서버를 구현하는 방법을 단계별로 소개합니다. DNS 서버란?DNS(Domain Name System) 서버는 사용자가 입력한 도메인 이름(www.example.com 등)을 실제 IP 주소(192.0.2.1)로 변환해주는 시스템입니다. Java로 DNS 서비스를 만들기 위해서는 다음 요소들을 이해해야 합니다:UDP/TCP 소켓 프로그래밍DNS 패킷 구조 (RFC 1035 기반)도메인 ↔ IP 매핑을 위한 Map 또는 데이터베이스 Java DNS ..

728x90