archive
사이트 변경 이력과 프로젝트, 실무 작업을 시간순으로 기록합니다.
전체69 사이트49 프로젝트7 실무7 학습2 이력4
최신순 오래된순
2026 2026.10.05 사이트
격투 8bit 효과음 · 스킬 아이콘 타격(약·강·필살)·가드·저스트 가드·잡기 풀기·카운터·휘두르기·점프·대시·필살기 발동·게이지 MAX·KO·라운드·FIGHT·재등장·메뉴 소리를 8bit 효과음 파일로 (こんとどぅふぇ 무료 소재), 능력별 덧소리·탄 소리는 합성음 유지 효과음은 최대 음량을 맞춰 다듬고 앞 무음을 잘라 넣고, 재생할 때 음높이를 살짝 흔들어 반복이 덜 질리게 캐릭터 선택 화면에 아이덴티티·필살기 스킬 아이콘, 릴리는 점프 홀딩 우산 활강 아이콘 2026.10.05 사이트
격투 화상·감전 기절·카이 공중 띄우기 · 기술 설명 정리 이그나 화상: 화염구·업화주에 맞으면 🔥화상 — 한동안 체력이 조금씩 닳음(화상으로는 안 쓰러짐), 업화주 범위 소폭 확대·화염구 재사용 대기 소폭 증가 제나 감전: 처음 걸릴 때 잠깐 몸이 굳는 짧은 기절 추가 · 릴리 비눗방울 재사용 대기 소폭 증가 카이 점프 중 L: 가는 방향 아래로 급강하해 찬 뒤 착지 충격파(2타째)가 상대를 띄움 → 바로 점프해 공중 콤보 캐릭터 선택 화면에 점프 중 L이 다른 캐릭터의 공중 기술 설명, 판 아래 조작·기술 설명을 키 표·기술 목록으로 다시 짜고 경기 중엔 두 캐릭터 기술도 표시 효과 그림을 경기 시작 전에 미리 받아서, 처음 나올 때 네모 상자로 잠깐 보이던 문제 수정 · 12~16판 시뮬레이션으로 5명 43~56% 재조정 2026.10.05 사이트
픽셀 격투 온라인 대전 (대기실 · P2P 롤백 넷코드) 온라인 로비: 방 목록·방 만들기·빠른 입장·초대 링크 — 정적 호스팅이라 Firebase Realtime Database로 방·자리·채팅을 관리하고, 자리는 규칙에서 빈자리만 차지하게 해 한 방 2명 대기실: 각자 캐릭터(랜덤 포함)를 고르고 준비, 방장이 맵을 고르고, 둘 다 준비하면 VS 화면 뒤 바로 시작. 채팅과 연결 상태(직접 연결/서버 경유, 왕복 ms) 표시 경기: WebRTC 데이터 채널로 서로 직접 연결(순서·재전송 없이 아직 확인 안 된 입력을 매번 같이 보냄), 결정론적 시뮬레이션 위에 롤백 넷코드 — 상대 입력을 예측해 진행하다 틀리면 되감아 다시 계산. 핑에 맞춰 입력 지연 2~4프레임, 앞선 쪽이 가끔 한 프레임 쉬어 속도 맞춤 P2P가 막힌 네트워크면 Realtime Database를 거쳐 중계(입력 지연·되감기 폭을 늘려서), 상대가 나가거나 끊기면 기권승 처리, 끝나면 대기실로 돌아가 한 판 더 소영 공중 L: 아래로 내리친 채찍에 맞으면 내 높이까지 띄우며 끌어와 공중 콤보로 이어짐(띄우기), 가이드에 띄우기 콤보 섹션 추가 2026.10.05 사이트
띄우기 콤보: 잡기(카이는 약 4단 어퍼컷도)로 띄우면 상대가 천천히 떨어지고, 바로 점프(점프 캔슬)해 공중 타격을 넣으면 때린 쪽 속도에 맞춰 같이 떠올라 콤보가 이어짐 — 새 키 없이 기존 조작만으로 제나 차별화: 뇌창에 맞으면 ⚡감전(이동 느려짐·제나 공격에 더 아픔), 감전 중엔 천뢰강림 번개가 발판을 넘어 따라감. 이그나(불꽃 견제)와 다른 '걸어 두고 몰아치는' 중거리형으로 AI도 띄운 뒤 점프 캔슬·공중 추격을 하도록, 12판씩 시뮬레이션으로 5명 47~54%로 재조정 전체화면 버튼을 판 아래에 따로, 가이드에 화면·소리·띄우기·감전 설명 추가, 랭킹에 어떤 캐릭터로 누구를 이겼는지 기록, 게임 메뉴 순서·설명 정리 리듬게임: 곡 선택에서 커서가 머물면 하이라이트 구간을 미리 들려줌 2026.10.05 사이트
카이·이그나·소영·릴리·제나 모두 동작마다 4~10프레임짜리 새 시트로: 단색 배경 시트를 덩어리 단위로 자동 분리해 아틀라스로 묶는 스크립트, 시트마다 캐릭터 키 자동 맞춤, 발 기준점은 신발(어두운 픽셀)로 탄·소환도 애니메이션 그림으로 (화염구·불기둥·비눗방울·파도·번개 창·번개 기둥), 채찍·창 판정을 그림 길이에 맞추고 밸런스 시뮬레이션으로 다시 조정 캐릭터·맵 랜덤 칸: 슬롯머신처럼 섞다가 멈춤 (맵을 섞는 동안 배경음악은 그대로) 최종 승리 때 승리 포즈 반복 + 도발 대사, 전체화면 버튼, 캐릭터 선택 화면 그림·설명 겹침 정리 2026.10.05 사이트
격투: 방향키 우선(공격·대시·가드 중에도 누르는 쪽으로 돎), 가드 중 누른 버튼 바로 실행, 가드는 앞뒤 다 막음, 하단 점프 제거 격투: 가드 반격은 막은 동안·직후 선입력 받기, 잡기는 살짝 어긋나게 눌러도 나가고 상대를 띄워 공중 콤보로 이어지게 격투 그림: 체크무늬 지우기를 '바깥과 이어진 배경 + 체크 질감'만 지우도록 바꿔 흰 피부·안경알 구멍 없앰, 전신 그림에 붙은 옆 그림 조각 정리 체스·장기·오목 온라인: 끝난 방에서 둘 다 '다시 하기'를 누르면 선후를 바꿔 바로 새 대국 (방 새로 안 만들어도 됨), AI 대국도 같은 상대로 다시 하기 2026.10.05 사이트
캐릭터 5명 스프라이트·전신 그림·얼굴을 새 시트로 교체. 프레임마다 크기가 다른 그림을 한 장에 빽빽이 모으는 아틀라스 형식(프레임별 위치·발 기준점) 추가 그림에 체크무늬로 그려진 '가짜 투명 배경'을 진짜 투명으로 바꾸는 스크립트: 테두리와 이어진 밝은 무채색 + 격자 무늬 비율로 칸 안쪽 배경까지 골라내고, 흰 옷·불꽃 속은 남김 새 캐릭터 제나(창·번개): 중거리 창, 빠른 번개 창 투척(긴 감전), 상대 발밑 번개 필살기, 감전 효과음 새 맵 노을 옥상: 학교 옥상 그림 위 발판 판정, 전용 배경음악. 탄(화염구·비눗방울·파도·번개 창)도 그림으로 2026.10.04 사이트
격투 엔진 직접 구현: 60fps 프레임 단위 판정(공격·피격 박스, 발동·지속·회복 프레임), 가드·히트스톱·넉백·다운, 캔슬 콤보와 콤보 보정, 필살기(탄)·초필살기 게이지, 2선승 라운드 온라인 대전(롤백 넷코드)을 붙일 수 있게 시뮬레이션을 결정론적으로: 정수 연산만, 상태 통째 복사, 입력 기록으로 커맨드(↓↘→) 판정 — 지연·순서 섞인 가상 네트워크에서 두 쪽 결과가 똑같은지 테스트 그림은 로직과 분리: 동작별 줄 격자 시트 + 설정 json만 바꾸면 캐릭터 그림 교체, 설정 json만 바꾸면 교체 캐릭터 4명(카이·이그나·소영·릴리): AI 이미지 설정화에서 스프라이트를 잘라 넣는 스크립트(배경 제거·칸 분할·발 기준 정렬)를 만들어 붙임, 맵 그림 위 발판 판정 플랫폼 대전: 한쪽 통과 발판·2단 점프·대시·공중 공격, 약 4단·발차기 2단 연속 동작, 캐릭터별 아이덴티티(재사용 대기)·필살기, 경직 감소·공중 콤보 한도 캐릭터·맵 선택 화면, 맵별 배경음악, 효과음은 Web Audio로 합성(포화·잔향·컴프레서) AI는 반응 속도·가드·대공·콤보 확률로 6단계, 이기면 랭킹 등록. 한 키보드 2인 대전, 게임패드, 휴대폰 화면 버튼 2026.10.04 사이트
오목 규칙 엔진 직접 구현: 렌주룰(첫 수 천원, 흑 3-3·4-4·장목 금수, 흑 정확히 5목·백 장목 승리)·일반룰(양쪽 3-3 금지)·자유룰 금수 판정은 렌주 공식 정의대로 — 삼은 '금수 아닌 자리 한 수로 열린 4가 되는 모양'이라 거짓 삼을 재귀로 걸러냄, 5목이 되는 수는 금수보다 우선 AI: 한 방향 ±5칸 모양(3^10가지)을 처음에 표로 만들어 두고 찾아보기, 연속 4로 이기는 수순(VCF) 탐색 + 알파-베타, 렌주에서 흑이 금수라 못 막는 자리를 노림 AI 상대 8단계(18급~5단)와 렌주룰 랭킹전, 온라인 대국은 체스·장기와 같은 공통 방 시스템에 규칙만 끼워서 휴대폰은 한 번 눌러 고르고 한 번 더 눌러 착수(잘못 누름 방지), 금수 ✕ 표시, 수 번호 보기 2026.10.03 사이트
체스 AI: Stockfish 19(lite, WASM)를 브라우저 워커로, 레이팅 400~2400 상대 6명 (1600 이상은 엔진 실력 제한, 이하는 얕은 탐색 + 무작위 수로 흉내) 장기 AI 상대를 위인 6명으로: 장영실(18급)부터 이순신(5단)까지, 탐색 깊이·실수 확률로 단계 조절 AI 상대 대사: 잡음·장군(체크)·무르기·승패 등 상황마다 말풍선 (판이 밀리지 않게 겹쳐 띄움) 체스·장기 기본 탭을 온라인 대국으로, 메뉴 대제목은 목록 페이지 링크 + 마우스 올리면 패널 2026.10.03 사이트
장기 규칙 엔진 직접 구현: 궁성 대각선, 포 넘기, 마·상 멱, 장군·외통, 빅장·한수쉼·200수 점수 판정(한 덤 1.5), 상차림 4종 AI: 알파-베타 탐색 + 잡는 수 연장 탐색, 쉬움·보통·어려움 3단계, 웹 워커에서 계산해 화면이 멈추지 않게 온라인 대국: 체스의 방 시스템(좌석·시계·무르기·관전·채팅·비밀번호 방)을 게임 공통 모듈로 분리해 같이 사용 기물 한자/한글 표시 전환, 모바일 터치 지원 2026.10.03 사이트
메뉴 대제목을 누르면 아이콘·설명 카드 격자 패널이 열리게 (항목이 늘어도 세로로 길어지지 않음) 사이트 검색: Ctrl/⌘ K 또는 /, 초성 검색(ㄹㄷ → 리듬게임) 멜론게임: 세로 화면에선 판을 돌려 칸 1.7배, '크게 보기'로 화면 가득(가능하면 전체화면·가로 고정) — 규칙·점수는 그대로 모바일에서 안내 말풍선이 화면 밖으로 나가던 문제 수정 2026.10.03 사이트
판·선택 범위·합 10/20 판정·점수·제한 시간은 그대로 두고, 규칙을 순수 함수로 분리해 화면을 새로 작성 캔버스 3장을 겹쳐 쓰던 구조 → 남은 멜론은 바뀔 때만 그려두고 한 캔버스에 매 프레임 합성 터지면 톡 커졌다가 돌며 떨어지는 멜론·과즙·+점수 연출, 합이 틀리면 선택 칸이 잠깐 붉게 파스텔 톤 디자인, 숫자 가독성 개선(흰 숫자 → 진한 초록), 배경음악·효과음 볼륨 따로 조절 결과 화면에서 다시하기·랭킹 등록 (브라우저 prompt 대신), 첫 화면이 게임 영역부터 보이게 2048px 멜론 이미지를 256px로 줄여 이미지 용량 5.8MB → 0.4MB 2026.10.03 사이트
보스곡 2곡: Monarch's Fall(매우 어려움 Lv18), Maximum Velocity(Lv19) — 센 마디마다 16분 연타·동시치기·연타 구간을 더해 실제 밀도로 레벨을 맞춤 곡 검색, BOSS 표시, 일시정지 화면에 지금까지 평균 타이밍과 '타격 싱크에 적용' 버튼 모바일 화면 깜빡임 수정 (캔버스 desynchronized 옵션 제거, 주소창 리사이즈마다 캔버스를 다시 만들지 않게) 플레이 중 레인 뒤로 곡 커버가 은은하게 보이게, 블러는 사파리에서도 되는 축소·확대 방식으로 플레이 중 스페이스로 페이지가 스크롤되던 문제, Esc 연타·재개 직전 Esc로 카운트다운이 겹치던 문제 수정 2026.10.03 사이트
게임 페이지 공통 머리말, 들어오면 게임 영역으로 바로 스크롤 (멜론·지뢰찾기·반응속도) 랭킹을 순위·이름·기록·달성일 열로 정렬, 예전 기록은 Firestore 문서 생성 시각으로 날짜 표시 게임 메뉴 순서 정리 (멜론 → 리듬 → 스케치 → 체스 → 지뢰찾기 → 반응속도) 안 쓰는 CSS 11개·미사용 구글 폰트 import 정리, ESLint 미사용 변수 규칙을 TS용으로 교체 README·아카이브·Dev Life의 리듬게임 설명을 현재 구조로 수정 2026.10.02 사이트
한 명이 그리고 나머지가 맞히는 실시간 게임, 최대 8명 (Firebase Realtime Database) 제시어 선택·글자 수 힌트·라운드 설정, 빨리 맞힐수록 높은 점수, 중복 출제 방지 정답 시도와 제시어는 그리는 사람만 읽게 보안 규칙으로 막아 채팅에 답이 새지 않게 접속이 끊기면 onDisconnect로 자리 정리, 그리는 사람이 나가면 다음 차례로 비밀번호 방(해시로만 저장·규칙에서 비교)과 초대 링크를 체스와 공통으로, 방장 강퇴(재입장 차단) 2026.10.02 사이트
검증 테스트: 정규식에 값을 넣으면 통과 여부와 걸리는 글자를 표시 정규식 만들기: 허용 문자·길이·포함 조건을 고르면 정규식과 JS/Java 코드 생성 찾기·치환: 긴 텍스트에서 매칭·캡처 그룹·치환, Java Pattern 코드 변환 2026.10.02 사이트
메인을 한 화면 벤토 그리드로, About은 일하는 방식·걸어온 길·Q&A 랜딩 페이지로 개편 메뉴 대제목(project·games·tools·devtools)을 누르면 썸네일 카드로 된 목록 페이지 처음 보는 UI에 잠깐 뜨는 안내 말풍선 (PC·모바일 문구 분리, 한 번 써보면 다시 안 뜸) 2026.10.01 사이트
지뢰찾기: 찍기(50:50) 없이 논리만으로 끝까지 풀리는 판만 생성 반응속도: 화면에 파란색이 실제로 그려지는 프레임 시각과 누르는 순간(pointerdown) 기준으로 측정, 너무 빠른 입력은 예측으로 보고 다시 관리자 페이지에서 랭킹·방명록·체스 방 데이터를 컬렉션별로 조회·정렬·수정·삭제 2026.10.01 사이트
DFJK 4키, 롱노트, 난이도 4단계(쉬움~매우 어려움), 곡·난이도별 랭킹 곡: AI 자작곡 음원(채보는 자체 분석기로 생성) + 사용자 mp3 자동 채보 모드 (파일은 서버로 안 올라감) 채보 분석기: 음원에서 타격(스펙트럴 플럭스)·템포·비트를 찾아 32분음표 격자에 맞추고, 난이도별 밀도·곡 세기에 따라 노트·롱노트·동시치기 배치 판정 PERFECT·GREAT·GOOD(100·66·33%), FAST/SLOW ms 표시, 결과 평균으로 판정 싱크 자동 보정 HP·FAILED, 롱노트 누르는 동안 콤보 상승, 타격음 4종·노트 스킨 5종, 판정선 타격 이펙트 커버 배경·점수판·마디선·박자 연출, 일시정지 중 속도·싱크·볼륨 조절, 모바일 터치 지원 2026.10.01 사이트
식약처 식품영양성분 DB 2만여 개 검색 (초성·브랜드 구분), 칼로리·탄단지 비율 도넛 차트 g·1인분 단위 계산, 여러 음식을 담아 식단 합계 대표 음식 535개는 음식별 정적 페이지로 생성해 검색엔진 노출 2026.10.01 사이트
MyBatis 로그 → SQL: Preparing/Parameters 로그의 ?에 값을 바인딩해 실행 가능한 SQL로, DB별 리터럴·줄 정리 DDL → Java: CREATE TABLE로 DTO·MyBatis resultMap·Mapper XML 생성, camelCase/snake_case 변환 JSON → Java DTO: Lombok·getter/setter·record, 하위 객체 내부 클래스/파일 분리, @JsonProperty devtools 메뉴 순서 정리 (JSON Formatter → DDL → JSON → MyBatis) 2026.10.01 사이트
체스 방 채팅: 대국자·관전자만 입력, 보안 규칙으로 참가자·길이 검증 개발 모드에서 저장된 설정이 기본값으로 덮이던 문제를 컴포넌트 8곳에서 수정 메뉴 드롭다운 항목 줄바꿈 방지 2026.09.30 사이트
헤더는 about·archive·방명록 아이콘, 메뉴는 project·games·tools·devtools로 재구성 (모바일 한 줄 유지) 사다리타기: 당첨 1명·순서 정하기·직접 입력, 결과 가리기, 결과 칸 위치를 섞어 누구든 확률 1/n 룰렛: 항목별 가중치(칸 크기·당첨 확률 비례), 당첨 항목 빼고 다시 돌리기 JSON Formatter: 정렬·압축·키 정렬, 오류 위치(줄·칸) 표시, 16자리 이상 정수 정밀도 경고 연락처 명함은 푸터 contact로 이동 2026.09.30 사이트
관리자 대시보드 및 문의하기 관리자 대시보드: 문의함(읽음·안 읽음, 메일 답장), 개인공부 글 관리, 바로가기 플로팅 메뉴 문의하기: 이름·이메일·연락처·내용 저장, 보안 규칙으로 형식 검증·관리자만 조회 글쓰기를 개인공부 목록에서 관리자 페이지로 이동 2026.09.30 사이트
지뢰찾기: 세로 화면 첫 탭에서 판 크기 불일치로 페이지가 죽던 문제 수정 멜론 게임: 진입 시 화면 폭으로 배율 고정, 터치 드래그 지원 개인공부 제목·본문 검색 추가, 메인 소개 문구 변경 게임 랭킹 규칙에 값 범위 검증 추가, 사용하지 않는 서버 코드·컬렉션 정리 2026.09.29 학습
실무에서 겪은 문제 위주로 9편 추가 (권한 설계, 트랜잭션 경계, stale closure, 다중 DataSource 등) 기존 글 작성일 정리, 일괄 등록은 글 주소를 유지한 채 작성일만 맞추도록 변경 2026.09.29 사이트
손글씨 폰트·색 선택·기울어진 메모 카드, 새 메모가 붙는 애니메이션 실시간 반영, 관리자는 메모별 삭제 가능 2026.09.29 사이트
방 생성·참여·관전(최대 2명), 방장 시작·일시정지·시간 추가, 제한 시간·선후공 선택, 무르기·무승부·기권 소켓 서버 없이 Firestore onSnapshot + 트랜잭션으로 실시간 대국, 익명 로그인으로 재접속 시 자리 복귀 하트비트 기반 접속 상태 표시, 장시간 이탈 시 승리 선언, 방 중복 생성·참여 방지 2026.09.29 사이트
소개(About) 페이지를 일하는 방식 6가지와 근거 프로젝트 링크 중심으로 재구성 메인의 외부 사이트 링크 중 현재 접근할 수 없는 사이트는 공통 모달로 안내 2026.09.29 사이트
9개 프로젝트를 개요·기술 스택·아키텍처·담당 역할·트러블슈팅·회고 구조의 전용 페이지로 재작성 각 프로젝트 저장소의 코드·커밋 이력과 발표 자료를 근거로 트러블슈팅과 담당 역할 정리 사진이 없던 Oh! Sori는 로컬 빌드 + 데모 데이터로 화면을 재현해 스크린샷 추가, 이 사이트 스크린샷은 헤드리스 브라우저로 촬영 공용 상세 페이지 UI 컴포넌트 분리, 1,000줄이 넘던 상세 페이지 파일을 프로젝트별 컴포넌트로 분할 GM Movie·Unity 게임 제외, 영천시 프로젝트 기술 태그를 실제 구조(JSP + JDBC)에 맞게 정정 플로팅 버튼 SVG 아이콘화, 아카이브 더보기·정렬 추가, 한글 고정폭 폰트 폴백(Nanum Gothic Coding) 적용 2026.09.28 사이트
공통 컴포넌트 및 UI 정비 공통 모달 컴포넌트 도입 (ESC·배경 클릭·모바일 뒤로가기로 닫기, 스크롤 잠금) 플로팅 퀵메뉴 개편: 이력 버튼 제거, 문의 버튼 추가, 모바일 크기 대응 푸터에 방문자 수(Today/Total), 달력, 시계 위젯 추가 아카이브를 개조식 타임라인으로 재구성하고 분류 필터 추가 Contact 모달이 닫히는 동안 헤더 뒤로 가려지던 문제, 상단 메뉴 활성 표시 누락 수정 2026.09.28 사이트
검색엔진 최적화(SEO) 및 개인공부 정적 생성 페이지별 title·description·canonical, Open Graph 이미지, JSON-LD 구조화 데이터 적용 sitemap.xml, robots.txt 생성 및 Google Search Console 등록 개인공부 게시글을 빌드 시점에 정적 페이지(/study/[id])로 생성하도록 변경, 매일 자동 재배포 스케줄 추가 Firebase Hosting 주소를 GitHub Pages 주소로 301 리다이렉트해 대표 도메인 단일화 2026.09.28 사이트
TypeScript 전면 전환 전체 소스(.js/.jsx)를 TypeScript(.ts/.tsx)로 전환, Firestore 데이터 계층 타입 정의 게임 페이지 경로를 /games 하위로 통합 페이지 이동 후에도 멜론 게임 BGM이 계속 재생되던 문제 수정 멜론 게임 랭킹 표시부의 저장형 XSS 취약점 수정 갤러리 페이지 및 관련 이미지 삭제 2026.09.23 사이트
배포 파이프라인 정비 GitHub Actions에 npm ci 및 .nvmrc 기반 Node 버전 고정 적용 Firebase Hosting과 GitHub Pages 동시 자동 배포 구성 Prettier 도입 및 전체 코드 포맷 통일 macOS 파일명 대소문자 미구분으로 인한 이미지 경로 추적 오류 수정 2026.09.22 사이트
Create React App → Next.js 마이그레이션 Firebase SDK v8(namespaced)을 v9+ 모듈러 SDK로 전환 (webpack 4 파서 호환 문제로 react-scripts 5 선행 업그레이드) React 17 기반 CRA 구조를 Next.js App Router 정적 export 구조로 재구성 스타일을 Tailwind CSS 중심으로 이전 프로젝트 상세 인덱스를 라우터 state 대신 URL 파라미터로 전달해 새로고침 시 상태가 사라지던 문제 해소 2026.09 실무
알림 메시지 상품 목록 분할 발송 복수 상품 선물 알림 메시지에서 내부 구분자가 그대로 노출되던 문제 정비 기존 템플릿의 표시 방식(분할 발송형 / '외 N개' 축약형)을 비교 검토한 뒤 분할 발송으로 결정 수신자별 반복 안에서 상품 묶음별로 다시 나눠 보내는 구조 설계, 고정 문구가 가장 긴 템플릿 기준으로 1,400바이트 임계값 설정 2026.08 실무
권한 체계 마이그레이션 서비스·컨트롤러·JSP 곳곳에 하드코딩된 역할/아이디 비교를 행위 단위 권한키 기반 체크로 전환 관리자 화면에서 권한키를 역할·팀·그룹·개별 사용자에 매핑하는 구조 활용 기존 최고관리자 조건은 호환을 위해 OR 조건으로 유지하고 개별 허용자 목록만 권한키로 대체 2026.08 실무
다중 배송지 주문 기능 (V2) 엑셀 업로드 기반 배송지 일괄 등록 및 배송 가능 지역·지정일 검증 모달 구현 (React, TypeScript) 그룹키 기반 주문 행 구분, Apache POI 엑셀 파싱, MyBatis 매퍼 정비 (Java) 선물하기 기능을 N:M 배송지 구조로 확장 결제 전 배송 불가 상품 검증 로직 및 안내 메시지 중복 문제 수정 2026.08 실무
결제·장바구니 프론트엔드 개선 Zustand 기반 결제 폼 스토어로 결제 상태 관리 구조화 PG 결제 세션/콜백 흐름 디버깅, 결제수단(계좌/카드) 판별에 따른 현금영수증 노출 조건 수정 포인트·예치금 사용 입력 규칙(최소 사용 단위) 처리 장바구니 체크 상태 동기화 큐 도입, URL 쿼리 기반 탭 상태 관리, 입력 필드 상태 불일치 버그 수정 쿠폰 최적 조합 계산 방식 검토 (부분집합 완전 탐색 기반) 2026.08 실무
시즌 프로모션 댓글 이벤트 API 댓글 등록과 포인트 지급을 연동한 API 구현, 레거시 이벤트 API는 Feign 클라이언트로 연결 댓글은 항상 저장하고 포인트는 최초 1회 성공 시에만 지급되도록 처리 순서 설계 2026.08 실무
보안 강화 및 본인인증 연동 저장형 XSS 대응: 기존 HTML 필터를 OWASP Java HTML Sanitizer 정책 기반으로 교체 로그인 실패 누적에 따른 계정 잠금/해제 이력 로직 수정 휴대폰 본인인증(PASS) 연동: 레거시 모놀리스와 Spring Boot MSA 양쪽, 팝업/웹뷰 흐름 및 Redis 기반 결과 조회 2026.08 실무
Spring Boot MSA 서비스 작업 JWT 기반 인증 전환 및 게이트웨이 목(mock) 구성 상품 서비스 멀티 데이터소스 JPA 설정, 알림 서비스의 모듈 간 의존성 제거 @ConfigurationProperties 기반 설정 정리, 쿠버네티스 환경에서의 URL 생성 문제 해결 2025 2025.08 프로젝트
실시간 채팅·음성채팅을 제공하는 커뮤니티 사이트 개인 프로젝트 Next.js, Express, WebRTC, Tailwind CSS, MongoDB 사용, ohsori.my로 서비스 배포 2025.05.17 사이트
지뢰 99개 고급 난이도, 첫 클릭 위치 주변은 지뢰가 생성되지 않도록 처리 모바일 길게 누르기로 깃발 표시 및 주변 칸 열기 지원 클리어 기록 랭킹 등록 (Firestore) 2025.05.11 사이트
Firebase Authentication 기반 관리자 로그인 React Quill 에디터로 글 작성·수정·삭제, 카테고리별 분류 모바일 화면 대응 및 소개 페이지 내용 갱신 2025.03.31 – 05.08 프로젝트
5주간 팀장으로 진행한 팀 프로젝트, 2025.05.08 최종 발표 완료 작가와 구매자의 실시간 소통(WebSocket), 실시간 경매 기능 구현 React, Redux, Spring Boot, JPA 사용 2025.02 프로젝트
서울시 음식점 검색 및 추천 사이트 팀 프로젝트 React, Spring Boot, JPA, MySQL 사용 2025.02 프로젝트
Spring MVC 패턴 학습을 위한 팀 프로젝트 객실·예약·후기·관리자 페이지 구현, JSP/JSTL, MyBatis, MySQL 사용 2025.01.22 사이트
스케치 퀴즈 게임 착수 (미완성) 닉네임 등록, 방 생성, 방 채팅까지 구현 그림판 및 실시간 동기화는 미구현 상태로 보류 2025.01.17 – 01.21 사이트
사이트 전면 리디자인 프론트엔드 연습용으로 제작한 디자인을 사이트 전체에 적용 플로팅 퀵메뉴, 드래그 가능한 Contact 모달 추가 멜론 게임 화면 재설계, 방명록·아카이브 디자인 정비 2024 2024.12.18 사이트
반응속도 테스트 점수 제출 개선 점수가 중복 제출되던 버그 수정 점수 제출 방식 변경 (상태 갱신 대신 새로고침 방식으로 임시 처리) 2024.12.17 사이트
반응속도 테스트 게임 추가 (5회 평균, 랭킹 등록) 요리조리 프로젝트 상세 페이지 작성 영천시 세무조사 프로젝트는 서버 재구동 시 DB 유실이 확인되어 문서화 보류 2024.12.16 사이트
아카이브 페이지 구성 및 전체 페이지 기본 기능 완료 아카이브 페이지 구성 모든 페이지의 기본 기능 구현 완료, 이후 구조 정리 및 안정화 진행 2024.12.13 사이트
아카이브 기록 시작 사이트 개발 과정과 변경 사항을 남기기 위한 아카이브 작성 시작 2024.12.12 – 12.13 사이트
갤러리 페이지 추가 직접 촬영한 사진 갤러리 및 페이지 넘김 기능 구현 (2026.09 삭제) 2024.12.09 – 12.10 사이트
소개·방명록 페이지 추가 소개(About) 페이지 추가 Firestore 기반 방명록 구현 2024.12.04 – 12.06 사이트
프로젝트 목록 카드 및 상세 페이지(infoPage) 구현 프로젝트별 이미지 슬라이드, 반응형 레이아웃 적용 헤더 디자인 재작업 2024.02 – 03 사이트
저장소 이전 및 내비게이션 개편 포트폴리오 저장소 통합 내비게이션 구성 변경 및 상단 고정 이벤트 추가 2022 2022.02 이력
아주대학교 소프트웨어학과 졸업 2021 2021.10 – 2022.01 프로젝트
세무 신고서 작성 및 조회 기능을 제공하는 웹 사이트 JSP, Spring, JavaScript, MySQL 사용 2021.08 사이트
캔버스 기반 드래그 퍼즐 게임: 합이 10 또는 20이 되도록 선택, 제한 시간 2분 Firestore 랭킹, BGM·효과음 적용 (디자인·음악 협업) 2021.07 사이트
Create React App으로 개인 사이트 개발 시작, GitHub Pages로 배포 헤더·내비게이션·푸터, 메인 페이지, 프로젝트 소개 페이지 구성 2021.06 – 08 이력
(주)트루피플 인턴 실습 2021.03 – 06 프로젝트
웹캠으로 필기·제스처 입력을 지원하는 화상 회의 플랫폼 (캡스톤디자인) 화면·카메라 공유, 음성/문자 채팅 등 기본 회의 기능 제공 JavaScript, WebRTC, OpenCV, Node.js, MongoDB 사용 2019 2019.10 – 12 프로젝트
레시피 공유 및 별점 리뷰 커뮤니티 사이트 React, Node.js, Ajax, jQuery, MongoDB 사용 2017 2017.03 – 2018.12 이력
육군 5사단 복무 2016 2016.06 – 학습
백준 온라인 저지에서 C++, Java, Python으로 문제 풀이 진행 2016.03 이력
아주대학교 소프트웨어학과 입학 더보기 (8/69)