포트폴리오

DEVELOPER PORTFOLIO

이상민

ERP 전문 개발자

ERP 전문문제해결신입→PL

세법도 회계도 몰랐지만 배워서 구현했고, 신입사원에서 시작해 9명 팀의 PL이 되었습니다. 4년간 5개 프로젝트 전 프로젝트 배포 후 이슈 제로.

ZERO

배포 후 이슈

3m→12s

프로시저 튜닝

10K

사용자 규모

4년+

경력

leemin-dev@gmail.com

https://github.com/dev-leemin

정보처리기사한국산업인력공단

인천환경공단 ERP

과장 / PL (프로젝트 리더) · 공공기관 · 팀 9명

2025.07 - 진행중

프로젝트 개요

PL로서 9명 팀을 이끌고 공통 모듈 전반(프레임, 권한, SSO, 전자결재, Report, PostgreSQL 백업 체계)을 구축. WebSocket 알림, 근무·다면·개인·부서평가, KPI, 성과급 계산까지 인사-평가 시스템 전반을 개발하고 있습니다.

시스템 구성도

Client

Nexacro

WAS

eGov Framework

Database

PostgreSQL

SSO

통합인증

전자결재

결재연동

WebSocket

실시간 알림

Report

리포트 엔진

담당 업무 상세

  • PL로서 9명 팀 프로젝트 일정 관리 및 개발 총괄
  • 공통 모듈 전반 — 프레임, 권한, 로그인, 메뉴, 대시보드, 전자결재, Report, SSO
  • Nexacro 서버 구성 및 PostgreSQL pg_dump/pg_basebackup 백업 체계 구현
  • WebSocket 활용 실시간 알림 시스템 구현
  • 인사-평가 — 근무평가, 다면평가, 개인평가, 부서평가, KPI, 성과급 계산
  • 조직관리/사업소관리/회계코드관리 통합 프로세스 설계 진행중

핵심 프로세스 — 인사평가 → 성과급 자동화

1. 조직/사업소 관리2. 직원 배치3. 평가 기간 설정4. 근무/다면/개인/부서 평가5. KPI 집계6. 성과급 자동 계산

주요 화면

인천환경공단 ERP
Challenge 조직관리·사업소관리·회계코드관리가 각각 분리되어 중복·불일치 발생 → 권한·조직도와 연동된 통합 프로세스로 재설계 진행중
Result 첫 PL 프로젝트로 9명 팀 총괄 중 (진행중)
Nexacro전자정부PostgreSQLWebSocket

노지 HD맵 프로젝트

과장 · 정부용역 · 팀 2명

2024.11 - 2024.12

프로젝트 개요

OpenStreetMap 위에 드론 촬영 농지 영상을 정사 처리하여 레이어로 올리고 식생지수(NDVI)를 조회하는 플랫폼. 영상 정사 API의 건바이건 처리를 병행처리로 전환하여 처리 시간을 대폭 단축했습니다.

시스템 구성도

Client

WebSquare SP5

WAS

eGov 4.0

Database

PostgreSQL

OpenStreetMap

지도 레이어

정사처리 API

Ortho 병행처리

NDVI

식생지수 분석

담당 업무 상세

  • OpenStreetMap 활용 — 정사 이미지를 레이어로 올려 지도 시각화
  • 드론 촬영 영상 업로드 및 관리 기능 개발
  • 정사 처리(Ortho) API 연동 — 건바이건 → 병행처리로 처리 시간 대폭 단축
  • 식생지수(NDVI) 조회 및 시각화 기능 구현
  • PostgreSQL 데이터베이스 설계 및 관리

동작 과정 — 드론 영상 → NDVI 분석

1. 드론 영상 업로드2. 정사 처리 (병행)3. 레이어 생성4. 지도 시각화5. NDVI 분석
Challenge Map/Layer 경험 없는 상태에서 나라 지원 API 사용 중 데이터 누락 문제 발견 → 긴급 수정. 영상 정사 API가 건바이건 순차 처리로 병목 → 병행처리로 전환
Result 2개월 단기 프로젝트 발표까지 이슈 없이 완료, 정사 처리 시간 대폭 단축
WebSquare SP5PostgreSQL전자정부 4.0OpenStreetMap

Zeniel ERP

대리/과장 · 민간 · 팀 8명

2023.04 - 2024.07

프로젝트 개요

프로젝트 초기부터 공통 모듈 전반(프레임, 권한, 로그인, 메뉴, 대시보드, 전자결재, PostgreSQL 최초 구현)을 담당. 급여 프로시저 튜닝(3분→12초), 영업관리, 관리회계 시스템을 구축하고 약 10,000명 사용자 대상으로 서비스했습니다.

시스템 구성도

Client

WebSquare SP5

WAS

eGov 4.0

Database

PostgreSQL

그룹웨어

일정/메일/게시판

세금계산서

API 연동

전자결재

결재 시스템

담당 업무 상세

  • 공통 모듈 전반 구현 — 프레임, 권한, 로그인, 메뉴, 대시보드, 전자결재, PostgreSQL 최초 구현
  • 급여 프로시저 튜닝 — 3분 쿼리 → 12초로 성능 개선
  • 영업관리 파트 — 매출/매입, 세금계산서 연동, 거래처·현장 관리
  • 관리회계 시스템 구축 — 수기 관리 → 자동화, 차트 시각화
  • 그룹웨어 연동 (일정, 메일, 게시판 등)

급여 프로시저 튜닝 과정

Before

실행 시간: 3분

전체 테이블 풀스캔, 불필요한 JOIN 다수

Action

인덱스 최적화

쿼리 리팩터링, 불필요 JOIN 제거, 실행계획 분석

After

실행 시간: 12초

93% 성능 개선 달성

주요 화면

Zeniel ERP
Challenge 인력회사 특성상 독자적 업무 방식으로 표준화 어려움 → 고객사 담당자와 주 2회 미팅으로 관리회계 프로세스를 정립하고, 수기 관리를 자동화
Result 약 10,000명 사용자 대상 서비스 운영, 급여 프로시저 3분→12초 튜닝
WebSquare SP5PostgreSQL전자정부 4.0

가스안전공사 차세대 ERP

사원/대리 (팀원) · 공공기관 · 팀 5명

2022.07 - 2023.03

프로젝트 개요

기존 ERP를 차세대 ERP로 전면 마이그레이션. 인사-평가 파트 및 회계 전표처리를 담당하고, 예산통제 공통 로직을 단일 함수로 통합 구현했습니다. HR 파트 조기 완료 후 회계·공통 파트까지 지원하여 프로젝트를 마무리했습니다.

시스템 구성도

Client

Nexacro

WAS

PowerMDD

Database

Oracle

전자결재

결재 시스템

마이그레이션

기존 DB → 신규 DB

담당 업무 상세

  • 인사-평가 시스템 전체 설계 및 개발 (주 담당)
  • 회계 전표처리 업무 담당 — 환율 조회, 전표 로직 구현
  • 기존 전 DB 데이터 마이그레이션 (프로시저 실행)
  • 예산통제 공통 로직 구현 — 각 전표별 개별 통제 → 단일 함수로 통합
  • 부서조회 권한 체계 신규 구현 및 메뉴별 권한 적용
  • 공통팀 이탈 후 내부결제 로직 문제 발견 → 재설계

예산통제 로직 통합

Before

전표별 개별 예산통제 함수

중복 코드, 유지보수 어려움

After

단일 공통함수로 통합

모든 전표 유형 일관 처리, 유지보수성 향상

주요 화면

가스안전공사 차세대 ERP
Challenge 회계 지식 전무 상태에서 전표·예산통제 개발 + 공통팀 돌연 이탈로 내부결제 로직에 문제 발견 → 업무 파트너와 협업으로 회계 구현, 내부결제는 직접 재설계
Result HR 파트 조기 완료 → 회계·공통 파트까지 추가 지원하여 프로젝트 완수
NexacroPowerMDDOracle

KORAIL ERP - 급여시스템

신입사원 (팀원) · 공공기관 · 팀 4명

2021.05 - 2022.04

프로젝트 개요

전자정부 프레임워크 기반 급여 시스템 신규 개발. HR 중 급여 파트를 전담하여 소득세법·급여계산법을 학습한 뒤 발령·징계 등 급여 계산 로직을 설계·구현했습니다. SMTP를 활용한 급여 메일 발송 기능도 개발했습니다.

시스템 구성도

Client

WebSquare

WAS

eGov Framework

Database

Tibero

SMTP

메일 발송

급여 엔진

소득세법 기반

담당 업무 상세

  • HR 급여 파트 전담 — 급여 계산, 수당 관리, 급여 명세서 전반 개발
  • 소득세법·급여계산법 학습 후 발령·징계 연동 급여 로직 설계
  • SMTP 기반 급여 메일 발송 시스템 구현
  • WebSquare 기반 UI 구현 및 Tibero DB 연동

급여 계산 프로세스

1. 발령/징계 조회2. 기본급 산정3. 수당 계산4. 소득세 공제5. SMTP 발송

주요 화면

KORAIL ERP - 급여시스템
Challenge 소득세법·급여계산 지식이 전무한 신입사원 상태에서 급여 로직 설계 난항 → 세법 독학 후 고객사 급여 체계에 맞춰 직접 설계·구현
Result 첫 프로젝트 배포 후 이슈 제로 달성, 이후 급여 도메인 전문성 확보
WebSquare전자정부 프레임워크TiberoJavaScript

PERSONAL PROJECTS

개인 프로젝트

취뽀 (JobReady)

AI 기반 취업 준비 올인원 플랫폼

https://job-ready-smlees-projects-96d0b73d.vercel.app

프로젝트 개요

AI 기반 취업 준비 올인원 플랫폼. Claude API 연동 모의면접(기술/인성/경험/종합), 이력서·자소서 AI 생성, 포트폴리오 코드 분석, 맞춤형 스킬 로드맵 등 6개 핵심 AI 기능을 구현. NextAuth v5 멀티 OAuth, 미들웨어 보안(Rate Limiting, Bot 탐지, CSRF), 무료/Pro SaaS 모델까지 단독 설계·개발·배포했습니다.

기술 선택 이유

Next.js 16App Router의 SSR/SSG로 SEO 최적화, Server Actions로 별도 API 레이어 없이 서버 로직 처리
Claude API초기 Groq AI 사용 중 한국어 응답 품질 문제 발생 → Claude로 전면 마이그레이션하여 면접 피드백 품질 대폭 향상
NextAuth v5Google, GitHub, Kakao 멀티 OAuth를 단일 설정으로 처리, JWT + Session 하이브리드 인증
Prisma타입 세이프 ORM으로 DB 스키마 변경 시 컴파일 타임 에러 감지, 마이그레이션 자동화
MiddlewareRate Limiting으로 AI API 남용 방지, Bot 탐지로 크롤링 차단, CSRF 보호

시스템 구성도

Frontend

Next.js 16 / React 19

API Routes

Server Actions

Database

Neon PostgreSQL

Claude API

AI 모의면접/생성

NextAuth v5

멀티 OAuth

Prisma

ORM

Middleware

Rate Limit/Bot

ERD (핵심 모델)

User

PK id

email

plan (Free/Pro)

provider

1:N──→
Interview

PK id

type (기술/인성/경험)

messages[]

feedback

1:N──→
Resume

PK id

content (JSON)

template

aiGenerated

1:N──→
SkillRoadmap

PK id

targetRole

skills[]

progress

주요 화면

취뽀 (JobReady)
Challenge Groq AI 한국어 품질 이슈 → Claude API로 전면 마이그레이션 / AdSense CSP 충돌 → 도메인 선별 허용 + 쿠키 동의 배너
Result 6개 핵심 AI 기능 구현, 무료/Pro SaaS 모델 설계·배포 완료

현재 문제점 / 한계

  • Claude API 호출 비용이 사용량에 비례하여 증가 — Pro 플랜 수익으로 상쇄 필요
  • 면접 히스토리 데이터가 축적될수록 DB 조회 성능 저하 우려
  • AI 응답 생성 시간(2-5초)으로 인한 UX 체감 대기

개선 방향

  • 이력서 양식 자동 작성 기능 — 회사별 양식 업로드 시 AI가 자동으로 내용 채워서 작성
  • 면접 히스토리 기반 약점 분석 대시보드 추가
  • Streaming SSE 응답으로 AI 대기 시간 체감 개선
  • 결제 시스템 도입으로 Pro 플랜 실제 과금 체계 구축
Next.js 16React 19Claude APINextAuth v5PrismaPostgreSQL

도란도란

심리테스트 소셜 플랫폼

https://doran-orcin.vercel.app

프로젝트 개요

15종 심리테스트 엔진, 그룹 테스트(방 생성·참여·실시간 결과 비교), 리뷰·좋아요, 통계 시각화를 제공하는 소셜 플랫폼. Neon DB 콜드 스타트를 WebSocket 드라이버 + CDN 캐싱으로 5초→0.4초로 단축했습니다.

기술 선택 이유

Neon PostgreSQL서버리스 DB로 유휴 시 비용 제로 — 개인 프로젝트에 적합. 다만 콜드 스타트 문제 존재
WebSocket 드라이버Neon 콜드 스타트 5초 → 0.4초로 단축. HTTP 대신 WebSocket 프로토콜로 연결 재사용
NextAuth소셜 로그인(Google, Kakao)으로 가입 허들 최소화, 별도 인증 서버 불필요
Prisma15종 테스트 결과 스키마를 타입 안전하게 관리, 관계형 데이터(결과/리뷰/좋아요) 처리에 적합

시스템 구성도

Frontend

Next.js 16 / React 19

API Routes

Server Actions

Database

Neon PostgreSQL

Prisma

ORM

NextAuth

인증

CDN Cache

정적 자산 캐싱

ERD (핵심 모델)

User

PK id

nickname

provider

avatar

1:N──→
TestResult

PK id

testType

answers[]

resultType

N:1──→
GroupRoom

PK id

code

hostId

status

1:N──→
Review

PK id

content

likes

userId

Neon DB 콜드 스타트 최적화

Before

첫 요청: 5초

Neon Serverless 콜드 스타트

Action

WebSocket 드라이버 + CDN 캐싱

연결 프로토콜 변경 + 정적 데이터 캐싱

After

첫 요청: 0.4초

92% 개선 달성

주요 화면

도란도란
Challenge Prisma 커스텀 output 경로 Vercel 번들러 충돌 → 기본 경로 전환 / Neon 콜드 스타트 5초 → 0.4초
Result 15종 심리테스트, 그룹테스트(방 생성·참여·실시간 결과 비교), 리뷰·좋아요 시스템 구축 완료

현재 문제점 / 한계

  • 그룹테스트 동시 참여 시 실시간 결과 동기화 지연 가능성 (현재 폴링 방식)
  • 테스트 종류 15종으로 고정 — 사용자 참여도 유지를 위한 콘텐츠 확장 필요
  • 통계 데이터가 쌓일수록 시각화 쿼리 성능 저하 우려

개선 방향

  • WebSocket 기반 실시간 동기화로 그룹테스트 UX 개선
  • 사용자 제작 테스트 기능 — 누구나 심리테스트를 만들어 공유
  • SNS 공유 시 결과 카드 이미지 자동 생성 (OG Image 동적 생성)
  • 연령대/성별 기반 통계 대시보드 고도화
Next.js 16React 19PrismaNeon PostgreSQLNextAuth

내로또 - AI 로또 예측기

논문 기반 확률 모델 서비스

https://lotto-predictor-two.vercel.app

프로젝트 개요

논문(arXiv:2403.12836) 기반 CDM 확률 모델로 로또 6/45·연금복권 720+ 번호를 예측하는 서비스. 스마트 랜덤 생성기(홀짝/고저/합계/번호대 필터), 백테스트 역검증, 패턴 분석 대시보드를 제공합니다. SEO 최적화 및 AdSense 수익화 파이프라인도 구축했습니다.

기술 선택 이유

CDM 모델논문(arXiv:2403.12836) 기반 확률 모델 — 학술적 근거가 있는 예측 알고리즘으로 서비스 신뢰성 확보
ml-regression클라이언트 사이드에서도 실행 가능한 경량 ML 라이브러리, 서버 부하 없이 예측 가능
AdSense무료 서비스 + 광고 수익화 모델로 운영비 충당. CSP 충돌 해결 필요했음
Neon PostgreSQL역대 당첨 데이터 저장 및 통계 분석 쿼리에 활용, WebSocket 드라이버로 콜드 스타트 1초 미만

시스템 구성도

Frontend

Next.js 16 / React 19

API Routes

CDM 확률 모델

Database

Neon PostgreSQL

ml-regression

머신러닝 예측

Prisma

ORM

AdSense

수익화

ERD (핵심 모델)

LottoDraw

PK id

drawNo

numbers[6]

bonusNo

drawDate

1:N──→
Prediction

PK id

model

predicted[6]

confidence

1:1──→
BackTest

PK id

matchCount

drawRange

accuracy

주요 화면

내로또
Challenge Neon DB 콜드 스타트 5초 → WebSocket 드라이버로 1초 미만 / PC 단일 컬럼 → 2단 그리드 레이아웃 개선
Result SEO 최적화 및 AdSense 수익화 파이프라인 구축, 백테스트 역검증 시스템 구현 완료

현재 문제점 / 한계

  • 모바일에서 차트/그래프 렌더링 시 프레임 드롭 발생 (대량 데이터 시각화)
  • 당첨 통계 데이터 수동 업데이트 — 자동 크롤링 미완성
  • 단일 CDM 모델만 사용 중 — 다양한 알고리즘 비교 불가

개선 방향

  • 차트 가상화(Virtualization) 적용으로 모바일 렌더링 성능 개선
  • 당첨 데이터 자동 크롤링 스케줄러 구축 (Vercel Cron)
  • 예측 모델 앙상블 — 여러 알고리즘 결합으로 정확도 비교 기능
  • PWA 전환으로 앱 설치 유도 및 오프라인 지원
Next.js 16React 19PrismaNeon PostgreSQLml-regression

기술 스택

Frontend

WebSquare SP5
4
Nexacro
2
JavaScript
4
Next.js / React
0.5
TypeScript
0.5
Tailwind CSS
0.5

Backend

Java
4
전자정부 프레임워크
4
PowerMDD
1
Prisma ORM
0.5

Database

PostgreSQL
3
Oracle
3
Tibero
1
Neon Serverless
0.5

Integration

SSO 연계
1
전자결재 시스템
2
그룹웨어 연동
1

Server & Infra

Nginx
3
Tomcat
4
Apache
2
Vercel
0.5

Tools & Others

Git
4
JMeter
2
AI/ML (Groq, Claude)
0.5

성장 경로

2021.05 - 2022.04

KORAIL ERP - 급여시스템

신입사원 · 한국철도공사 · 공공기관

2022.07 - 2023.03

가스안전공사 차세대 ERP

사원/대리 · 한국가스안전공사 · 공공기관

2023.04 - 2024.07

Zeniel ERP

대리/과장 · Zeniel · 민간

2024.11 - 2024.12

노지 HD맵 프로젝트

과장 · 노지 HD Map · 정부용역

2025.07 - 현재

인천환경공단 ERP

과장 / PL · 인천환경공단 · 공공기관