전체 글 170

스트리밍 서비스 최적화를 위한 Chrome Extension 개발기 (StreamLite)

YouTube는 다양한 추천 영상, 댓글, Shorts, 라이브 채팅 등 많은 UI 요소를 제공하지만 사용 목적에 따라서는 이러한 요소들이 오히려 집중도를 떨어뜨리고 페이지 성능에도 영향을 줄 수 있다.그래서 이번 프로젝트에서는 YouTube 페이지를 단순화하고 성능을 개선하는 Chrome 확장 프로그램 StreamLite를 개발하였다.프로젝트 목표이 확장 프로그램의 최초 목표는 크게 두 가지였다.YouTube 페이지에서 불필요한 요소 제거페이지 성능 변화를 사용자에게 시각적으로 제공즉, 단순한 UI 제거 확장이 아니라 성능 개선 효과까지 확인할 수 있는 확장 프로그램을 목표로 했다.그런데 왜 YoutubeLite가 아니라 StreamLite냐?최초 목표는 Youtube에 대한 개선이고 추후 릴리즈를 통..

SideProject 2026.03.12

SVN 저장소를 Git으로 백업 및 이관하기 (SVN → Git Migration)

사내 프로젝트는 오래전부터 SVN(Subversion) 으로 소스코드를 관리하고 있었다.하지만 대부분의 개발 조직이 Git 기반 협업 환경(GitHub / GitLab 등) 을 사용하고 있기 때문에, 기존 SVN 저장소를 사내 Git 서버로 백업 및 이관하는 작업을 진행하게 되었다.이번 글에서는 실제 프로젝트를 이관하면서 진행했던 과정과 그 과정에서 겪었던 트러블슈팅까지 함께 정리해보려고 한다.1. 목표이번 작업의 목적은 단순히 소스를 옮기는 것이 아니라 아래와 같은 조건을 만족해야 했다.기존 SVN 저장소는 그대로 유지Git으로 전체 소스 백업SVN Commit History 유지사내 GitHub 서버(Gitea)로 Push즉 구조는 다음과 같다.SVN (기존 운영) ↓Git 로컬 변환 ..

카테고리 없음 2026.03.06

[형상관리] GitHub에 잘못 PUSH한 폴더 및 파일 완전 삭제하기 (BFG 사용)

프로젝트를 진행하다가 Docker 설정 폴더를 GitHub에 실수로 Push하는 일이 발생했다.단순히 git rm으로 삭제하면 최신 버전에서는 사라지지만, 히스토리에는 그대로 남아있다.특히 설정 파일 안에 민감 정보(DB 계정, 내부 IP, Key 등)가 포함되어 있다면 반드시 히스토리까지 완전 삭제해야 한다.이번 글에서는 BFG Repo Cleaner를 이용해 특정 폴더를 Git 히스토리에서 완전히 제거하는 방법을 정리한다.1. 왜 git rm으로는 부족한가git rm -r Dockergit commit -m "remove docker folder"git push위 방법은 현재 브랜치에서만 삭제된다.하지만 Git의 과거 커밋 기록에는 Docker/ 폴더가 그대로 남아있다.즉, 누군가 이전 커밋을 조회하..

Dev/CS 2026.03.04

Docker 기반 웹 푸시 알림 시스템 - 5

PWA 웹 푸시 시스템 구축 최종 정리1. 프로젝트 개요이번 프로젝트의 목표는 PWA 웹 푸시 기능을 Docker 기반 구축하는 것이 목표였다.단순히 기능 구현이 아니라,실제 운영 서버 적용Docker 기반 배포 환경 반영Oracle 10g 사용 환경 고려기존 통합 로그인 시스템과의 분리를 기준으로 설계를 진행했다.2. 기술 스택최종 운영 환경은 다음과 같다.[Backend]- Spring Boot 3.5.9- Java 17- Spring Data JDBC- Oracle 10g[Infra]- Docker (Rocky Linux)[Frontend]- PWA- Service Worker- Web Push API[Push 인증]- VAPID Key 기반 인증특이사항:로컬 / 운영 동일 버전 DB 사용Oracl..

SideProject 2026.03.04

Docker 기반 웹 푸시 알림 시스템 - 4.5

소스 형상관리 및 사내 Git 서버(Gitea) 연동이번 단계에서는 프로젝트 소스 형상관리를 위해 Git을 도입하고,초기 GitHub 연동 이후 사내 Git 서버(Gitea) 로 이전한 과정을 정리한다.1. Git 도입 배경Spring Boot 기반 웹 푸시 알림 서버를 개발하면서 다음과 같은 필요성이 있었다.코드 변경 이력 관리기능 단위 버전 관리협업 및 추후 확장 대비회사 내부 정책에 맞는 형상관리 체계 구축초기에는 사이드 프로젝트 개념으로 GitHub Private Repository로 관리했으나,추후 내부적으로 활용이 가능할 것으로 판단되어 사내 보안 정책에 따라 내부 Git 서버(Gitea)로 이전하게 되었다.2. gitignore 구성기존 연동했던 Github에선 IDE 설정 파일, 빌드 산출..

SideProject 2026.02.12

연말정산 구조 쉽고 간단하게 알아보자

1️⃣ 연말정산을 한 문장으로 요약하면1년 동안 미리 낸 세금이 적절했는지 다시 계산해서 더 냈으면 돌려주고 덜 냈으면 추가로 받는 과정” 즉, 새로운 세금을 매기는 게 아니라 이미 낸 세금을 정산하는 것이다.2️⃣ 연말정산 전체 프로세스 (큰 그림)연말정산은 항상 아래 순서로 흘러간다.연봉 (총급여) → 1. 자동으로 빼주는 금액 (근로소득공제) → 2. 세금 계산 기준 금액 (과세표준) → 3. 세율 적용 (누진세) → 4. 깎아줄 수 있는 세금 차감 (세액공제) → 5. 최종 세금 → 6. 이미 낸 세금과 비교 후 환급 or 추가 납부 위 순서는 연봉이 얼마든 동일하다.3️⃣ 단계별 구조를 쉽게 풀어보면연봉 (총급여)세전 연봉상여금 포함1. 근로소득공제 (자동계산)“회사 다니는 사람이라서 깎아줌”자..

[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 2026.02.09

메이플키우기 환불 방법 총정리 (환불 링크 포함)

최근 메이플키우기 관련하여 넥슨에서 결제 금액 환불 안내를 공지했다.그래서 환불 링크 + 환불 절차를 간단하게 정리했다.메이플키우기 환불 대상 안내이번 환불은 메이플키우기에서 유료 결제를 진행한 사용자를 대상으로 진행된다.메이플키우기 유료 상품 결제 이력 보유넥슨 계정 로그인 필요PC / 모바일 브라우저 모두 가능정확한 환불 대상 여부는 환불 페이지 접속 후 자동으로 확인된다.메이플키우기 환불 신청 링크아래 링크를 통해 바로 환불 신청 페이지로 이동할 수 있습니다.https://maplestoryidle.nexon.com/ko/refund 메이플 키우기출구 없는 무한 성장의 재미, 방치형 RPG로 돌아온 메이플스토리!maplestoryidle.nexon.com메이플키우기 환불 방법 (순서대로 따라 하기)..