Full-stack Developer

DB 설계부터 화면까지,
서비스를 끝까지 만드는 개발자 길동현입니다.

Java(JSP/Servlet, JavaFX)와 PHP로 회원·인증, 데이터 수집, 관리자 화면까지 갖춘 팀 프로젝트 4개를 만들었습니다. 비밀번호 해시를 Argon2id로 바꾸고 기존 사용자를 로그인 때 자동으로 옮기는 것처럼, 실제로 운영할 때 생기는 문제를 먼저 챙깁니다.

기술 스택

언어

  • Java 17/21
  • PHP
  • SQL
  • JavaScript
  • TypeScript

백엔드

  • JSP / Servlet (Jakarta)
  • Tomcat 10.1·11
  • PDO / mysqli
  • Java Socket (TCP/UDP)
  • Node.js

프론트엔드

  • HTML / CSS
  • JavaFX
  • React
  • Google Charts·Maps
  • Kakao 지도 API

데이터베이스

  • MySQL 8
  • MariaDB
  • HikariCP
  • 정규화 스키마 설계

보안·인증

  • Argon2id
  • bcrypt
  • Prepared Statement
  • 세션 관리

도구·배포

  • Git / GitHub (PR 리뷰)
  • GitHub Actions
  • Maven
  • Docker
  • Cloudflare Pages
  • LLM API

프로젝트

모두 팀 프로젝트입니다. 카드마다 제가 맡은 부분과 해결한 문제를 따로 적었습니다.

대표 이미지
[스크린샷 추가]

스펙 오디세이

2026.09 ~ 2026.10 · 4주 · 팀 프로젝트

취업 준비생의 스펙을 진단하고 목표 직무까지의 로드맵과 매일 할 일을 제시하는 웹 서비스

  • Java 17
  • JSP/Servlet
  • MySQL
  • HikariCP
  • LLM API
  • GitHub Actions
6.4s → 1.1s대시보드 응답 (팀 성과)
40% → 100%기술명 매칭 정확도 (팀 성과)

내 역할

  • 자소서·이력서 첨삭 AI: LLM 프롬프트를 설계하고 STAR 기법 기준으로 "추가하면 좋을 내용"을 안내하도록 개선
  • 비밀번호 해시 전환: PBKDF2 → Argon2id로 교체. 예전 해시도 검증되게 두고, 로그인할 때 자동으로 새 해시로 다시 저장해 기존 회원이 비밀번호를 바꾸지 않아도 옮겨지게 함
  • 테스트 계정 시뮬레이션: 목표 점수까지 하루치 활동을 몇 분 안에 진행·일시정지·초기화 — 장기 사용 흐름을 시연·검증할 수 있게 함
  • 스펙 아카이브 게시판: 사진이 다른 팀원 서버에서도 보이도록 파일을 DB에 저장하는 방식으로 수정
  • 데스크톱 캐릭터 앱: 하루 요약·트렌드·자동 실행·설치 파일·사이트 내 업데이트 확인까지 구현
대표 이미지
[스크린샷 추가]

Dragon Fruits — 원자재 가격 대시보드

2024.12 · 팀 프로젝트 (팀 내 최다 커밋)

금·구리·알루미늄·천연가스·국제유가 5대 원자재의 가격, 뉴스, 국제 정세를 한 화면에 모은 웹 대시보드

  • PHP
  • MySQL
  • FRED API
  • Polygon.io
  • NewsAPI
  • Google Charts·Maps

내 역할

  • 외부 API 3종 연동: FRED(과거 가격), Polygon.io(ETF 시세), NewsAPI(뉴스)에서 받은 데이터를 MySQL 4개 DB에 저장하고 PHP로 조회
  • 대시보드 위젯: 실시간 시세 바, 가격 추이 그래프, Google Maps 국제 정세 마커 구현 및 화면 디자인 통일
  • 보안 정리: 하드코딩된 API 키를 걷어내고 .env + 자체 로더로 설정 분리
대표 이미지
[스크린샷 추가]

부산 지하철 민원 신고 시스템

2025.11 ~ 2025.12 · 팀 프로젝트

지하철 승객이 열차 번호·호선을 골라 민원을 접수하고, 관리자가 처리 상태와 통계를 관리하는 웹 서비스

  • PHP
  • MySQL(MariaDB)
  • PDO
  • bcrypt
  • IMAP/POP3

내 역할

  • 문자 민원 수신: 문자로 들어온 신고를 메일함(Gmail)으로 받아 DB에 넣는 기능을 구현. IMAP에서 POP3로 바꿔 KT 회선 문자도 받을 수 있게 수정하고, 처리한 메시지는 삭제 대신 읽음 표시
  • 관리자 대시보드: 신고 처리 상태 일괄 변경, 통계 화면 추가
  • 입력 UX 개선: 열차 번호·호선 선택을 다이얼 방식으로 바꿔 잘못된 입력을 줄임
대표 이미지
[스크린샷 추가]

SafeFood — 알레르기 안전 음식 추천

2026.08 · 3인 팀 프로젝트

취향·알레르기·기분·위치를 바탕으로 메뉴와 맛집을 추천하고, 여러 명이 함께 먹을 때 모두가 먹을 수 있는 메뉴를 찾아주는 데스크톱 앱

  • Java 21
  • JavaFX
  • MySQL (테이블 22개)
  • JDBC
  • TCP 소켓
  • Kakao 지도

내 역할 — 계정·온보딩·기록·지도

  • 회원가입·로그인·온보딩: 가입 직후 취향·알레르기·가격·거리·맵기를 받아 DB에 저장하고 프로필에서 수정
  • 계층 분리: Controller가 DAO에 직접 접근하지 않도록 서비스 계층을 두고, 임시 데모 데이터를 걷어내 DB와 연결
  • 게스트 참여·같이 먹기 활성화, 식사 기록(차단한 메뉴는 추천에서 제외), 지도 보기·찜하기

그 밖에 — 실시간 서버·배포 경험: 1인 개발 웹게임(숫자 퍼즐 대전: React + Node.js/Colyseus, Cloudflare Pages 배포) · WebGameDeveloper

알고리즘 — 백준 문제 풀이 기록 · BeakJoon-ascode

프로젝트 타임라인

  1. 2026.09 – 10
    스펙 오디세이 팀 개발 (JSP/Servlet·MySQL)
  2. 2026.08
    SafeFood 팀 개발 (JavaFX·MySQL·소켓)
  3. 2025.11 – 12
    부산 지하철 민원 신고 시스템 팀 개발 (PHP·MySQL)
  4. 2024.12
    Dragon Fruits 원자재 대시보드 팀 개발 (PHP·MySQL)