SEOHYUN LEE

이서현

‘왜’를 끝까지 추적하고,
기술을 실용적이고 구조적으로 구현하는 개발자입니다.

WORKFLOW

  • 현상보다 본질에 집중합니다.
  • 논리적 사고로 문제를 구조화합니다.
  • 작동하는 것보다 유지 가능한 것을 만듭니다.
  • 팀워크와 소통을 통해 함께 성장합니다.
  • 기록하고 개선하며, 다음을 준비합니다.

SKILLS

Backend

SpringBoot

Frontend

React
Next.js
Vue.js

Database

MySQL
MongoDB

DevOps & Infra

Docker
Jenkins
AWS

Collaboration

GitHub
Slack
Discord
Notion

PROJECTS

냉장GO 대표 이미지

"냉장GO"

2025.05 ~ 진행중
식재료 관리의 번거로움, 유통기한 놓침, 레시피 탐색의 불편함을 AI로 해결하는 식생활 도우미 서비스
냉장GO screenshot 1냉장GO screenshot 2냉장GO screenshot 3냉장GO screenshot 4냉장GO screenshot 5냉장GO screenshot 6
🛠️ 담당 역할
- AWS VPC 설계·구축, EC2별 독립 서비스 배포
- FCM 웹앱 푸시 알림 연동
- OCR로 영수증 인식
- Opensearch를 이용하여 유사도 검색 시스템 구축
📈 담당 업무 성과
result-image-0
- 퍼블릭/프라이빗 서브넷을 분리한 AWS VPC 아키텍처를 설계하고 격리 배포하여 보안성과 확장성 확보
- 푸시 기반의 실시간 리마인더 제공으로 식재료 관리의 연속성과 사용자 몰입도 향상
- 식재료 수동 등록 과정을 OCR로 자동화하여 사용자 편의성 향상 및 기존 수기 입력 대비 60% 이상 시간 단축
- 벡터임베딩을 통한 비정형 검색어 대응으로 키워드 검색 기반 대비 정확도 향상
⚠️ Trouble Shooting
- EC2 하나에 여러 서비스 배포로 리소스 경합과 확장성 문제

💡 EC2 용량을 늘리는 대신 서비스를 독립적으로 분리하여 배포

- 서브넷 간 통신 문제 (public ↔ private)

💡 보안그룹 규칙 수정

💡 VPC 내부 DNS 활용하여 네트워크 구축

- Jenkins 용량 부족으로 인한 빌드 자동화 중단

💡 Pipeline에 retention 옵션 추가

💡 Docker 컨테이너 내부에 주기적으로 빌드 디렉토리 삭제하는 스크립트 추가

- 동일한 단어나 유사한 표현인데도 검색 결과가 크게 달라지거나 다른 결과물 출력

💡 텍스트 정규화를 통해 자모 분리나 이모지, 불용어 등을 정리하고 사전처리로 오타 교정

"투게댕(Toge-daeng)"

2025.06 ~ 진행중
디지털 공간에서 3D 모델링 된 반려동물과 감정적으로 교감할 수 있는 AI 인터랙션 서비스
투게댕(Toge-daeng) screenshot 1투게댕(Toge-daeng) screenshot 2투게댕(Toge-daeng) screenshot 3
🛠️ 담당 역할
- JWT 방식의 소셜 로그인 기능 구현
- Web/Android 멀티 디바이스 환경에 맞춘 인증 처리 분기
- 관리자 페이지 설계 및 프론트/백엔드 구현
📈 담당 업무 성과
result-image-0
result-image-1
- 기획 단계에서 정서적 교감을 중심으로 한 디지털 반려 경험에 대한 필요성 인식, 반려동물 보호자 60명을 대상으로 설문조사를 진행
- 사용자 디바이스 환경에 따라 인증 흐름 분기 처리를 설계하고 적용함으로써, 하나의 백엔드로 Web과 Android 모두 대응하는 유연한 로그인 시스템을 완성
- 관리자 페이지를 설계 및 구현하여, 회원 정보, 강아지 등록 현황, 요청 로그 관리와 모델링 기능 연동 등 운영 기능을 체계적으로 구현
⚠️ Trouble Shooting
- Web/Android 멀티 디바이스 환경에서 Refresh Token 처리 방식 분기

💡 HttpOnly 쿠키 기반 refreshToken이 Android 환경에서 수신되지 않아 자동 로그인 불가

💡 User-Agent 헤더 기반으로 디바이스 환경을 구분하여 응답 방식 분기

💡 Web : accessToken은 응답 body, refreshToken은 HttpOnly 쿠키로 전달

💡 Android : accessToken과 refreshToken을 모두 응답 body에 포함하여 저장