Dev 122

[CS] 메일 헤더를 분석해보자

메일 헤더(Header)란 무엇인가?메일 헤더는 "이 메일이 어디서, 누구에 의해, 어떤 방식으로 전달되었는지"를 기록한 메일의 이력서 같은 존재다. 본문은 사용자에게 보이는 영역이라면 헤더는 메일 서버와 보안 시스템을 위한 영역이다. 스팸 분석, 위·변조 판단, 발송 경로 추적 시 가장 먼저 확인하는 게 바로 이 메일 헤더다.메일 헤더 분석 가이드 (예시 헤더 기반 정리)/* ChatGPT를 통해 만든 샘플 메일 헤더입니다. */Received: from mail.example-sender.com (203.0.113.10) by mail.example-receiver.com with ESMTP; Tue, 04 Feb 2026 15:20:11 +0900Authentication-..

Dev/CS 18:10:44

🐳 도커(Docker) 프록시 네트워크 설정

포트 직접 접근에서 프록시 네트워크 방식으로 전환한 이유기존에는 아래처럼 포트를 직접 열어서 접근했다.http://도메인:8080http://도메인:9000 이 방식은 간단하지만, 운영 환경에서는 여러 문제가 있다.포트 직접 노출 방식의 한계서비스가 늘어날수록 포트 관리 지옥방화벽, 보안 장비 설정 복잡서비스 구조가 외부에 그대로 노출HTTPS 적용 시 서비스마다 설정 필요“서비스가 많아질수록 관리 포인트가 기하급수적으로 늘어난다.”프록시 네트워크 방식이란?외부에서는 단 하나의 진입점(WEB) 만 바라보고 실제 서비스들은 Docker 내부 네트워크에서만 통신하게 만드는 구조다.외부 사용자 ↓ HTTPS[Nginx Reverse Proxy] ↓ Docker Network[서비스 / 배치 / 관리자]..

Dev/CS 2026.01.21

🐳 도커(Docker) 기본 개념과 용어 정리

도커 프로젝트를 진행하면서 관련된 단어 정리를 해보려 한다.이미지? 컨테이너? 볼륨? 다양한 용어들이 한꺼번에 쏟아져서 어렵게 느껴졌지만 막상 두들겨보니 일상에서 익숙한 예시를 찾게되어 알기 쉽게 정리해 보았다.도커란?도커는 ‘애플리케이션을 실행하는 데 필요한 것을 한 번에 담아 어디서든 똑같이 실행할 수 있게 해주는 기술’도커 이미지(Image) = 🍱 밀키트도커 이미지는 애플리케이션 실행에 필요한 모든 것을 담아놓은 설계도 + 재료 세트 밀키트레시피손질된 재료양념조리 순서도커 이미지OS 기반 환경라이브러리실행 파일설정 값밀키트는 아직 요리된 상태가 아니고,도커 이미지도 아직 실행된 상태가 아니다.컨테이너(Container) = 🍳 실제로 조리된 요리컨테이너(Container)는 도커 이미지를 실제..

Dev/CS 2026.01.20

Docker 관리 도구(Portainer) 도입 시 겪은 시행착오 정리

운영 중인 서버에서 Docker 기반 서비스가 늘어나면서 컨테이너 상태와 리소스를 직관적으로 확인할 수 있는 관리 도구의 필요성을 느끼게 되었다. 이에 Docker 관리 UI 도구인 Portainer 도입을 검토했고 그 과정에서 겪은 시행착오와 최종 판단을 정리해본다.1 .기존 운영 환경현재 서버는 다음과 같은 Docker 컨테이너가 운영 중인 상태였다.nginx: 외부 요청 및 SSL 처리Spring Boot 웹 서비스RedisDaily Scheduler모든 서비스는 Docker Compose로 관리되고 있으며, 운영 서버 특성상 기존 서비스에 영향을 주지 않는 것이 최우선 원칙이었다.2. Portainer 도입 목적실행중인 컨테이너 상태 확인리소스 사용량 모니터링로그 확인 및 컨테이너 관리 편의성 향..

Dev/Docker 2026.01.16

Docker 컨테이너 로그 기본 정보와 관리하는 방법

1. 작업 배경운영 중인 서버에 서비스들을 Docker 컨테이너로 신규 구성하면서 로그가 파일로 남지 않고 docker logs 명령어에서만 확인되는 현상을 발견했다.docker logs -f - 애플리케이션은 정상 동작- 콘솔 로그는 확인 가능하지만 서버 디렉토리에는 로그 파일 생성x 처음에는 애플리케이션 로그 설정 문제로 판단했으나, 확인 결과 이는 Docker 기본 로그 동작 방식 때문이었음.2. Docker 컨테이너 로그의 기본 동작 방식도커에서 별도의 설정을 하지 않으면 로그는 아래와 같이 처리된다.기본 로그 드라이버json-file (Docker 기본값)로그 수집 대상표준 출력 (STDOUT)표준 에러 (STDERR)즉, Spring Boot 애플리케이션의 콘솔 로그는 파일이 아니라 Dock..

Dev/Docker 2026.01.15

[SpringBoot] Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

제목과 같이 오류가 발생한 사유는 Database에 연결할 때 필요한 정보가 없기 때문이다.초기 세팅 후 DB 설정하기 전까지는 아래 예시 코드와 같이 설정하고, DB 설정 후 원복해주자.// 수정 후package com.text.notify;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; // 추가@SpringBootApplication(exclude={DataSourceAutoConfiguration..

Dev/Spring&Java 2026.01.12

[Tomcat] SERVER: Error processing requestjava.lang.NullPointerException

하나의 Tomcat 인스턴스에서 여러 개의 웹 애플리케이션을 운영하다 보면, 그중 일부 홈페이지를 운영 중단(폐기) 및 추가해야 하는 경우가 생긴다.이때 단순하게 소스 폴더만 삭제하면 톰캣 로그에 NullPointerException 등의 오류가 반복적으로 발생할 수 있다.server.xml을 수정 후 아래와 같은 에러가 1분 정도 간격으로 반복되어 출력되었다.서비스나 기능적인 측면 문제는 없지만 불필요한 로그가 지속적으로 쌓이다보니 해결 방법을 찾게 되었다.org.apache.coyote.http11.AbstractHttp11Processor processSEVERE: Error processing requestjava.lang.NullPointerException원인server.xml에 정의된 def..

Dev/Linux 2025.10.22

[Java] SQL Injection 및 XSS 방지를 위한 SecurityUtil 클래스

작년쯤 처음이자 마지막으로 SQL Injection 공격을 받은 후에 보안에 대한 중요성을 다시한번 느끼게 되었다.웹 애플리케이션을 개발할 때 SQL Injection과 XSS(크로스 사이트 스크립팅) 공격을 방지하는 것은 필수적인 보안 조치다.이번 글에서는 Java에서 이러한 보안 취약점을 방지하기 위한 SecurityUtil 클래스를 구현하고, 직접 JAR 파일을 라이브러리로 추가하는 방식까지 확인해보자.1. SecurityUtil 클래스아래 코드는 SQL Injection과 XSS 공격을 방지하기 위한 유틸리티 클래스다.import org.owasp.encoder.Encode;import java.util.regex.Pattern;public class SecurityUtil { // SQL ..

Dev/Spring&Java 2025.03.19