강이문
nimuni · Full-stack Engineer
- 근무 조건
- 세종 / 원격 가능
한 줄 소개
프론트엔드에서 시작한 풀스택 개발자다. 화면, 서버, 앱, 배포를 혼자 맡아 제품을 만들고 운영한다.
핵심 성과
권한 격상을 막는 멀티테넌트 권한 모델
Core-X 스마트 양계장 관제 플랫폼 · Go · PostgreSQL · Next.js
- 권한을 세 축으로 나눴다. 조직 소속, 관리자 위임, 계약이다.
- 계약이 끝나면 위젯 기능 권한만 회수한다. 조직관리자의 농장 접근은 유지한다.
- 자기 권한보다 강한 역할은 남에게 부여하지 못한다.
- 판단할 수 없는 요청은 거부한다(fail-closed).
- 이 규칙을 테스트로 고정했다.
Windows DLL 직접 호출로 결제사 2곳 연동
짤칵 AR 동영상 앨범 키오스크 · Electron · Vue.js
- 결제사는 Windows DLL 만 제공했다. Electron 의 Node.js 런타임에서 DLL 을 직접 호출했다.
- 결제 흐름을 인터페이스로 분리했다. 두 번째 결제사는 흐름 코드를 고치지 않고 붙였다.
- 두 번째 결제사는 별도 결제창 없이 키오스크 화면과 단말 표시만으로 결제를 끝낸다.
- 현장 키오스크 약 10대가 이 결제 흐름으로 운영됐다.
빌드를 운영 서버 밖으로 옮김
Better Me 의원 솔루션 · Next.js
- 빌드 시간을 약 5분에서 3분대로 줄였다.
- 빌드를 운영 서버 밖으로 옮겼다. 배포 중 백엔드와 자원을 다투던 문제가 없어졌다.
- 수작업 교체 절차는 남았다. 영업시간 배포 제한은 다 풀지 못했다.
경력 요약
총 경력은 8년 10개월이다. 공백 기간은 빼고 셌다.
2025.07 ~ 2026.07
로봇웨어에이아이
선임연구원
Core-X 스마트 양계장 관제 플랫폼. 웹 관제, Go API 서버, React Native 앱을 1인 주도로 구현했다. AI 개발 도구를 역할별 검토 루프로 나눠 썼다.
프로젝트 1개
Core-X 스마트 양계장 관제 플랫폼
2025.07~2026.07
Core-X 스마트 양계장 관제 플랫폼
문제
여러 조직이 한 시스템을 쓰고, 화면이 위젯 단위로 조립되며, 기능이 계약에 묶이는 구조였습니다. 권한 판정, 다중 replica 스케줄러, 태블릿 OTA 배포처럼 작은 누락이 데이터 노출이나 중복 작업, 배포 실패로 이어질 수 있는 운영 리스크가 있었습니다.
역할
웹 관제(Next.js), API 서버(Go), 태블릿/모바일 앱(React Native/Kotlin) 3개 저장소의 애플리케이션 구현을 1인 주도했습니다. 초기 구성과 CI/CD 초기 작성은 전임 프론트엔드 개발자와 함께 시작했고, 인프라는 별도 담당자가 있었습니다. Claude Code와 Codex는 구현 속도를 높이는 도구로 사용했고, 최종 설계·검증·운영 판단은 직접 책임졌습니다.
해결 방식
- 멀티테넌트 RBAC 권한 모델을 설계했습니다. 조직·농장·사육동 접근 범위와 위젯 기능 권한을 별도 축으로 분리하고, 위젯은 노출 조건(하나라도 있으면 통과)과 사용 조건(전부 있어야 통과)을 나눠 통제했습니다. 역할 부여 시 자신의 권한을 넘는 역할 부여를 차단하고(권한 격상 방지), 판단 불가 시 거부를 기본값으로 설계했습니다(fail-closed).
- 계약 만료 시 위젯 기능 권한만 회수하고 조직관리자의 농장 접근은 유지하도록 축을 분리했습니다. 계약 갱신 지연이 곧 서비스 중단이 되지 않게 하기 위해서였습니다.
- Kubernetes 다중 replica 환경에서 스케줄러 중복 실행 가능성을 Redis 분산 락으로 제어했습니다.
- React Native 앱의 OTA 업데이트에 서버·앱 양쪽 SHA256 검증을 넣어 변조 APK와 불완전 다운로드를 차단했습니다.
- 제품 LLM은 챗 UI/위젯, 외부 LLM 서버 호출용 API 프록시, JWT 기반 접근 제어까지 담당했습니다. LLM 모델과 챗 로직 자체는 별도 담당자가 개발했습니다.
- DB 스키마 변경이 금지된 환경이라, 신규 status 컬럼 대신 기존 컬럼 조합과 JSONB 키로 계군 라이프사이클 상태를 파생했습니다. 토큰 무효화 인프라 대신 JWT 권한 스냅샷과 재로그인 운영 정책을 선택하고, 그 한계를 정책 문서에 명시했습니다.
결과
- QA 문서 169건과 그 안의 테스트 케이스 1,480건을 관리했습니다.
- 실서비스 적용에는 이르지 못했고, 대표가 운영하는 농장을 대상으로 기초 데이터 입력 단계까지 진행했습니다.
- Next.js
- React
- TypeScript
- Go
- PostgreSQL
- Redis
- React Native
- Kotlin
- Kubernetes
- Docker
- GitHub Actions
- Playwright
- Detox
- Claude Code
- Codex
2024.08 ~ 2025.07
DHN
연구원 · 프론트엔드 리드
Better Me 의원 솔루션. 업무시스템과 홈페이지의 프론트엔드를 유지보수하고 개선했다. 다국어, 빌드 최적화, SEO 를 맡았다.
프로젝트 1개
Betterme 유지보수 및 개발
2024.08~2025.07
개요
- Backend Spring / Frontend Nextjs를 이용한 피부과 업무시스템 및 홈페이지 유지보수 및 개발
주요 내용
- 병원 업무 및 홈페이지 관리 솔루션의 Frontend(Nextjs 14 Page Router 기반)파트 유지보수 및 새 기능 구현 (화면 디자인 및 개발, 국제화 적용, 프로그램 최적화 수행 등)
개발환경
- HTML5, JS, Reactjs, Nextjs, MUI, Styled-Component, React hook form, React query, Zustand, i18next, react-quill, swiper, scss, css
주요 성과
- Better Me 피부과 업무 시스템 Frontend 리드 개발 업무 수행.
- 유지보수 및 필요한 업무 시스템 제안 및 개발.
- Next.js 프로젝트의 빌드 프로세스 최적화를 담당. 서버 빌드 대신 로컬 standalone 빌드 방식을 도입하고, 번들링 최적화 툴을 활용하여 빌드 시간 감소 성과 달성
- Next.js 기반 업무 시스템에 next-i18next를 활용한 다국어(i18n) 기능을 성공적으로 구현. 한국어, 영어, 일본어, 중국어를 포함한 4개 언어를 지원하여 서비스의 글로벌 확장성 및 사용자 만족도 향상에 기여.
- 빽빽했던 관리자 페이지의 화면 구성을 주도적인 제안을 통해 스크롤 기반으로 변경하여 정보 가독성 및 접근성 향상. 스크롤 도입으로 인한 채팅 노출 문제를 해결하기 위해 마지막 채팅 플로팅 UI 및 이동 기능을 구현하여 관리자 업무 편의성과 만족도 향상.
- 랜딩페이지 디자인을 주도적으로 제안 및 반영하여 고객 경험 개선. 또한, 기존에 부재했던 SEO를 위해 schema.org 기반 Microdata를 적용을 통하여 검색 엔진 노출 및 유입을 최적화 수행.
- 업무 시스템 내 색상 코드의 일관성 및 관리 효율성 확보를 위해 하드코딩된 값들을 변수화하여 디자인 시스템 기반을 마련
- HTML5
- JS
- Reactjs
- Nextjs
- MUI
- Styled-Component
- React hook form
- React query
- Zustand
- i18next
- react-quill
- swiper
- scss
- css
2023.07 ~ 2024.02
한국위치기술
연구원
Zzalkak Online. 디자이너 1명과 둘이서 기획, 개발, 결제 연동, 배포를 했다.
프로젝트 1개
Zzalkak Online 시스템 구축
개요
- 짤칵 프로그램의 웹 어플리케이션 개발
주요 내용
- Nextjs를 이용한 Zzalkak 연동 웹 프로그램 개발 분석, 설계, 구현
- 사진, 영상 편집기 구현
- 결제기능 구현
- Ffmpeg를 이용한 영상 컨버팅
- 서비스 배포
개발환경
- HTML5, Typescript, Reactjs, Nextjs, Mongoose, Mongodb, Tailwindcss, flowbite, ffmpeg, portone, react-hook-form
주요 성과
- 웹페이지에서 사진 및 영상을 업로드 하기 위한 사이트 개발
- 사진 및 동영상 편집기 개발
- 카카오 주소찾기 연동
- Portone을 이용한 토스페이먼츠 결제 기능 연동
- 커머스 백오피스 구축. 상품, 카테고리, 주문, 결제, 쿠폰, 회원, 고객센터 등 관리자 화면 13개 영역과 서비스 계층 17개를 인터페이스와 구현으로 분리해 작성
- 결제 금액을 클라이언트 값 대신 상품 정보로 서버에서 재계산해 대조(배송비 5,000원, 5만원 이상 무료). 결제 완료 처리는 조건부 갱신이라 같은 결제가 두 번 완료되지 않음
- 결제 성공 시 외부 짤칵 본체 API 호출로 카드 생성(시스템 간 연동), 8자리 수령번호 발급, 장바구니 연동, 배송 상태 관리
- 단일 판매자 구조로 범위 한정. 재고 관리, 부분환불, 대사, 판매자 정산은 없고 결제 취소는 전액 취소만 지원
- 초기에는 비용을 아끼려 사용자 기기에서 ffmpeg-wasm으로 인코딩했으나 실사용 가능한 속도가 나오지 않아 서버 인코딩으로 전환. 대신 원본 업로드와 결과 다운로드 트래픽, 서버 자원 부담을 새로 떠안는 선택이었음
- AWS S3, AWS EC2 배포, AWS IAM, AWS Route53을 통한 클라우드 배포
- Lets Encrypt, crontab을 통한 SSL 적용
- Next-Auth를 이용한 Naver, Google, Kakao, Facebook 로그인 연동
- Google Search Console, Naver Search Advisor 등록
- Mongoose
- AWS Route53
- HTML5
- JavaScript
- React.js
- Next.js
- MongoDB
- TailwindCSS
- Nginx
- AWS EC2
- AWS S3
2021.03 ~ 2023.06
한국과학기술원
연구원
KAILOS 위치인식 시스템을 유지보수했다. NFT 거래 플랫폼 PoC 를 기획하고 PM 을 맡았다. 짤칵 키오스크 파트를 계속 리드했다.
프로젝트 3개
KAILOS 실내외 통합 위치인식 시스템 개발 및 유지보수
2021.12~2024.02
개요
- ISILAB의 실내위치시스템 KAILOS 기반 KAISTMAP 서비스의 유지보수 및 추가 개발, 배포
주요 내용
- 서버 유지 보수
- 서버 배포(On-Premise)
- 추가 개발
개발환경
- javascript, Express.js, Mongodb, redis, bootstrap, google map, mapbox
주요 성과
- 데모 시연 용 시각화 페이지 제작
- 하드웨어 Tag와의 통신을 위한 RESTful API 개발
- HTML5
- CSS
- JavaScript
- Express
- MongoDB
- Google Maps
- Mapbox
세종N 프로젝트 실내위치 서비스 및 PreSPI 솔루션과의 연동 및 배포
개요
- 세종N 시스템 내 KAILOS 기반 PreSPI 솔루션 배포
주요 내용
- PreSPI 연동 기능 개발
- KAILOS 서버 배포(On-Premise 세종 도시통합정보센터)
개발환경
- javascript, Express.js, Mongodb, redis, bootstrap, google map, mapbox
- API 추가 개발
- 연동
- 배포
NFT 거래소 기획 및 개발
2022.06~2023.08
개요
- Ethereum 기반 NFT 거래소 MVP 개발
주요 내용
- NFT 거래소 사이트 MVP 개발
- NFT 거래소 개발
개발환경
- MVP: HTML, CSS, Javascript, web3js, Metamask API, Bootstrap, solidity
- Typescript, javascript, Nextjs, reactjs, mongoose, Metamask API, web3js, solidity
- HTML5
- CSS
- TypeScript
- JavaScript
- Express
- Next.js
- React.js
- Mongoose
- MetaMask
- Web3.js
2019.08 ~ 2021.02
브이아이소프트
연구원
짤칵 AR 동영상 앨범. MVP 부터 상용화까지 했다. Windows 키오스크 파트를 리드했다.
프로젝트 1개
짤칵 윈도우 키오스크 프로그램 개발
2019.08~2021.12
개요
- AR을 이용한 동영상 앨범 서비스 짤칵 MVP제작, 프로토타입핑, 서비스 상용화
주요 내용
- MVP 개발
- 프로토타입 서비스 개발
- 서비스 상용화
개발환경
- MVP: Kotlin, AdobeXD,
- 키오스크: Electron.js Vue.js3, javascript, MongoDB, three.js, ffmpeg, vuetify
주요 성과
- 프로젝트 구조 설계 및 컴포넌트 개발
- 카드 결제 단말 PG사(INICIS, UBCN) 연동. Electron 의 Node.js 런타임에서 ffi-napi 로 Windows DLL 을 직접 호출하고 고정길이 전문과 EUC-KR 바이트 오프셋을 처리. INICIS 는 결제사 화면을 거쳐야 했고, UBCN 은 단말 상태를 직접 받아 결제창 없이 키오스크 화면과 단말 표시만으로 결제를 끝냄
- 두 번째 결제사를 붙이며 결제 흐름을 인터페이스로 분리하고 전문 조립·해석만 결제사별 구현으로 내림
- 코드 컨벤션 및 커밋 메시지 유형 설정
- Window 설치 프로그램 제작, 매뉴얼 제작, 3D 디자이너 협업용 프로그램 제작 등을 통해 운영 팀 소요 시간 감소로 거래량 향상에 기여
- 웹 워커를 적용하여 카메라와 실시간 화면 표시 렌더링 bottle neck 시간 감소
- UI 렌더링 진행 시 백그라운드 워커를 이용하여 카메라 서비스 병렬 로딩을 통해 UI 로딩 개선
- 운영 팀용 키오스크 터치 이벤트 및 로그 조회 프로그램 개발
- 3D 디자이너와의 협업을 위해 three.js를 활용한 3D 촬영 환경 기능 개발
- Kotlin
- HTML5
- CSS
- JavaScript
- Vue.js
- Electron
- UBCN 결제
- three.js
2019.03 ~ 2019.07
미래기술
연구원
국방과학연구소 e-감사시스템. 감사 솔루션을 업무에 맞게 테일러링했다.
프로젝트 1개
e-감사시스템(솔루션)
2019.03~2019.07
개요
- 회사 내 감사시스템 솔루션을 기반 테일러링 수행 (청렴, 민원 업무)
주요 내용
- 시스템 추가 기능 및 기존 기능 수정을 위한 화면 구성, 테이블 설계, DB 스키마 설계 및 개발 진행
개발환경
- 전자정부 프레임워크, Java, JSP, Oracle 11g DB, javascript, jquery, SVN, extjs3, extjs4
- JavaScript
- jQuery
- AJAX
- 전자정부 프레임워크
- Oracle 11g DB
- extjs3
- extjs4
2016.03 ~ 2017.11
웨이버스
연구원
전자정부프레임워크 SI. e-발주시스템과 토지보상시스템을 설계, 개발, 테스트했다.
프로젝트 3개
e-발주시스템 2차(SI)
2016.03~2016.05
개요
- 시스템 내 파트별(제안, 제안요청) 단위, 통합테스트 진행
- 버그 수정
주요 내용
- 단위 테스트 추가 작성
- 통합 테스트 수행
- 버그 및 수정사항 적용
개발환경
- 전자정부 프레임워크, Java, JSP, Oracle 11g DB, javascript, jquery, SVN
주요 성과
- 통합 테스트 수행 및 오류 리스트 작성
- 버그 리스트 관리 및 버그 수정
- HTML5
- CSS
- JavaScript
- jQuery
- AJAX
- Java
- 전자정부 프레임워크
- Oracle 11g DB
e-발주시스템 3차(SI)
2016.06~2017.03
개요
- 기존 구축된 e-발주시스템의 추가 파트 개발 및 통계 구축
주요 내용
- 시스템 내 파트(사업관리지원) 설계, 개발, 테스트, 버그수정 수행
개발환경
- 전자정부 프레임워크, Java, JSP, Oracle 11g DB, javascript, jquery, SVN
주요 성과
- 사업관리지원 전반적인 파트 개발
- 상태에 따른 업무 표시 및 추천 정보 표시 기능 개발
- 국가법령정보센터 법령 페이지 연계
- 통계 화면 개발 참여
- HTML5
- CSS
- JavaScript
- jQuery
- AJAX
- Java
- 전자정부 프레임워크
- Oracle 11g DB
KR-토지보상시스템 구축(SI)
2017.07~2017.11
개요
- 기존 SAP으로 제작되어 있는 토지보상업무를 전자정부프레임워크 기반 시스템으로 전환
주요 내용
- 토지보상 업무의 업무 분석 및 설계
- 업무분석
- 설계
브이아이소프트, 한국과학기술원, 한국위치기술은 같은 제품 조직이다. 법인만 바뀌었다. 2019.08 부터 2024.02 까지 4년 7개월 동안 이어진 경력이다.
기술
- 주력
- Next.js
- React
- TypeScript
- Electron
- Language
- JavaScript
- Framework
- 전자정부프레임워크
- Bootstrap
- Shadcn/ui
- Vuetify
- TailwindCSS
- SCM
- SVN
- Git
- Github
- ETC
- HTML5
- CSS3
- AWS EC2
- AWS S3
- Prisma
- Zod
- React-hook-form
- Recharts
- Chart.js
- Resend
- DB
- MySQL
- MariaDB
- AI / Orchestration
- AI Orchestration
- Policy-driven Development
- 실무
- Go(chi)
- PostgreSQL
- Redis
- React Native
- Kotlin(네이티브 모듈)
- Docker
- GitHub Actions
- AWS
- Nginx
- 사용 경험
- Kubernetes
- Firebase(FCM)
- 과거 경험
- Vue.js
- Node.js/Express
- MongoDB
- Java/JSP
- Oracle
- Solidity/web3
- three.js
- ffmpeg
- 테스트
- Playwright
- Vitest
- Go testing
- AI 도구
- Claude Code
- Codex
개인 작업
PDF Editor
2026.01 ~ 2026.02
문서를 외부 웹 서비스에 올리지 않고 로컬에서 편집하는 데스크톱 PDF 편집기다. MuPDF 로 텍스트 수정을 구현했다. 이미지 처리, 검색·바꾸기, 분할·병합을 지원한다.
- Vite
- pdf-lib
- pdfjs-dist
- MuPDF
- Zustand
- Vitest
- React.js
- TypeScript
- Electron
- Playwright
숲에서자고파
2023.04
자연휴양림 예약을 돕는 Chrome 확장 프로그램이다. 서버 시간과 요청 도착 시각을 잰다. 예약이 열리는 순간에 동작한다. 5일 만에 만들었다. 실제 예약에 성공했다.
- Chrome Extension
- HTML5
- CSS3
- Javascript
- Bootstrap
nimuni 사이트
2025.10 ~
개인 프로젝트 소개 사이트와 포트폴리오 사이트로 2025.10 에 시작했다. 2026.10 에 두 사이트를 지금의 사이트 하나로 합쳤다. 옛 포트폴리오 주소는 리다이렉트 전용 서버가 새 주소로 보낸다. 주소 매핑 누락은 자동 검사로 막는다. 경력은 변경 예정을 먼저 출력하는 반입 스크립트로 옮겼다. Raspberry Pi 5 에서 자체 호스팅한다.
- Next-intl
- Motion
- PM2
- Next.js
- TypeScript
- TailwindCSS
- Prisma
- PostgreSQL
- Nginx