비밀 메시지를 위한 특별한 밸런타인 러브 카드

발행: (2026년 2월 16일 오전 10:13 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

LSB 스테가노그래피를 사용하여 발렌타인 카드 이미지에 비밀 메시지를 숨기는 Spring Boot 웹 애플리케이션.

아름다운 발렌타인 이미지를 보내면 그 안에 숨겨진 사랑 메시지가 비밀리에 포함됩니다. 앱을 가진 사람만이 이를 해독할 수 있습니다 – 현대를 위한 디지털 보이지 않는 잉크와 같습니다.

Modes

ModeDescription
Read Mode발렌타인 카드 이미지를 업로드 → 숨겨진 메시지를 확인 (존재한다면)
Create Mode비밀 메시지를 작성 → 배경 이미지 선택 → 메시지가 스테가노그래피로 삽입된 발렌타인 카드를 다운로드

앱은 Least Significant Bit (LSB) steganography를 사용합니다 – 이미지 픽셀의 각 RGB 색상 채널의 마지막 비트를 미묘하게 변경하여 메시지를 인코딩합니다. 이러한 변화는 인간의 눈에 보이지 않지만 알고리즘으로 해독할 수 있습니다.

Tech stack

  • Java 1.8
  • Spring Boot 2.7.18
  • Thymeleaf 템플릿 (JavaScript 프레임워크 없음)
  • 반응형 하트‑형 레이아웃을 갖춘 Vanilla CSS (≈ 70 % 뷰포트, 모바일 친화적)
  • Maven 단일‑JAR 배포 (java -jar 준비)

Philosophy: 간단히 시작하라. 작동하는 소프트웨어를 배포하라. 나중에 확장하라.
이 프로젝트는 과도하게 야심찬 7계층 멀티‑모듈 아키텍처로 시작했지만, 깔끔한 단일‑JAR 설계로 빠르게 전환한 뒤 제품을 몇 시간 만에 배포했으며, 며칠이 걸리지 않았습니다.

Build & Run

# Build
mvn clean package

# Run
java -jar target/valentine-love-heart-cards-0.0.1-SNAPSHOT.jar

브라우저를 열고 다음 주소로 이동하세요:

http://localhost:8080

Application Pages

Home (Read Mode)

  • 중앙에 활 모양 버튼이 있는 하트‑형 UI.
  • 활을 클릭 → 발렌타인 카드 이미지를 업로드.
  • 앱이 숨겨진 메시지를 해독하여 표시합니다.

Create Page

  • 메시지 입력을 위한 텍스트 영역이 있는 하트‑형 UI.
  • 배경 이미지 선택 (PNG/BMP/GIF).
  • “Create Card” 클릭 → 삽입된 메시지가 포함된 발렌타인 카드를 다운로드.
  • 이미지를 공유하면 수신자가 업로드하여 비밀 메시지를 확인합니다.

View Page

  • 업로드 후 해독된 메시지를 표시합니다.
  • 가능한 상태: 메시지 발견, 메시지 없음, 오류, .

(스크린샷은 여기서 하트 레이아웃, 활 버튼, 메시지 표시, 그리고 생성 폼을 보여줄 것입니다.)

Project Documentation (the “Agents” approach)

저는 Agents.md 문서를 만들어 시작했습니다 – 정의된 간결한 “계약서”는 다음과 같습니다:

  • 기술 스택: Java 1.8, Spring Boot 2.7.18, 프론트엔드 프레임워크 없음.
  • 아키텍처 규칙: 레이어 의존성, 모듈 구조.
  • 금지 기술: TypeScript, Angular, React, npm 등.
  • 테스트 철학: 별도 테스트 모듈, 프로덕션 JAR에 테스트 코드 없음.

이 단일 파일 덕분에 GitHub Copilot이 코드 생성기에서 자율적인 시니어 개발자로 변했습니다. 모든 세션에 Agents.md를 첨부했으며, Copilot은 세부 관리 없이 올바른 아키텍처 결정을 내렸습니다.

Documentation Flow

  1. PLAN.md – 단계별 실행 로드맵.
  2. README.md – 프로젝트 개요 + 빠른 시작.
0 조회
Back to Blog

관련 글

더 보기 »