미리보기
기본 정보

3년차 개발자로 SI와 스타트업을 거치며 경험을 쌓고 있습니다. 기술에 대한 깊은 이해도와 비즈니스에 대한 넓은 이해도를 함께 갖추기 위해 노력합니다. 창업과 IR 경험을 통해 커뮤니케이션, 특히 비개발자와의 커뮤니케이션에 강점을 갖고 있습니다. 현재는 퍼플웍스에서 B2B SaaS 플랫폼의 프론트엔드 개발자로 일하고 있습니다.
기술 스택
Next.js, React, TypeScript, React Native, MySQL, AWS
경력
주식회사 퍼플웍스
프론트엔드 개발자 | Brandrive 팀 | 재직 중
2022.06. ~ 재직 중 (2년 9개월)
- 디자인 회사를 위한 B2B SaaS 플랫폼 Brandrive 서비스 리뉴얼의 프론트엔드를 담당하여 서비스를 런칭
- Brandrive의 클라우드 스토리지 개발을 맡아 파일 다중 업로드, 파일 버전 관리, 폴더 구조, 이미지 자산 편집 기능 등의 클라이언트 기능을 개발
- 현재는 유지보수 및 신규 기능 개발을 담당
- Github Action과 AWS ECR을 활용해 CI 세팅
- 사내 프로젝트로 연차 신청 어플리케이션을 Flutter로 개발하여 배포
데이터스튜디오
어플리케이션/서버 개발자 | 서비스 개발팀
2021.09. ~ 2022.05. (9개월)
- 가상화폐 트레이딩 스타트업 창업 (교수님 1명, 졸업생 4명)
- 팔로우한 리더 트레이더의 거래를 따라 자동으로 거래를 진행해주는 카피 트레이딩 플랫폼 Reabit 프로젝트를 기획 및 개발 리드
(홍보영상 : https://www.dudum.io/portfolio/uBQSgzIzypLOMDRkL8Qi) - React Native를 활용해 크로스 플랫폼으로 Reabit 개발
- 전략 분석 서버, 거래 서버, 어플리케이션 서버 중 어플리케이션 서버를 맡아 ExpressJS로 개발 및 Jenkins CI/CD 구축
주식회사해나소프트
인턴 | 개발팀
2020.09. ~ 2021.06. (10개월)
- 전자정부프레임워크 기반 B2G 공공기관 프로젝트 진행 (부서)
- 대형 3D 프린터 센서 데이터 모니터링 시스템 개발 (개인)
- Augular/Spring/Mybatis를 활용한 SI 개발 업무
프로젝트
도리보틀 어플리케이션 개발
개인
2023.06. ~ 진행 중
- 사이드 프로젝트로 친환경 리유저블 컵 대여 플랫폼 도리보틀의 웹 어플리케이션을 개발
- 어플리케이션의 장점을 최대한 살리며 잦은 수정에 대해 빠르게 대응 가능하도록 PWA를 도입
- 유저 편의성과 보안을 최대한 잡기 위해 RefreshToken + Sliding Session 방식으로 인증
- Toss Payment 빌링 API를 활용하여 사용자의 결제 프로세스 간소화
- 컴포넌트 재사용성을 향상시키기 위해 단일 책임 원칙과 합성 컴포넌트를 최대한 고려
- 도리보틀 Repo
디지털 에셋 관리 시스템
Brandrive
2022.08. ~ 진행 중
- 구글 드라이브를 레퍼런스로 Web Storage 시스템 UI 전반 개발
- 파일 시스템이 익숙한 유저들을 위해 폴더 라우팅 및 BreadCrumb 개발
- Next 12의 Middleware를 활용하여 해당 에셋 경로에 권한이 없을 경우 화면 노출 없이 Redirect 처리
- 폴더 및 다중 파일 다운로드 시 Context에 Polling 방식을 사용하여 전역적으로 압축 및 다운로드 상태 관리
- 공유된 에셋에 한해서 외부 접근이 가능하도록 에셋 공유 기능 구현
- 시스템 안에서 간단한 에셋 편집이 가능하도록 이미지 Crop 및 Rotate 기능 추가
- Drag and Drop으로 업로드가 가능한 에셋 업로드 기능 추가
NextJS + k8s 프로덕션 환경에서 OOMKilled 이슈 대응
Brandrive
2023.10. ~ 2023.11.
- 사용 중인 EKS에 Container Insights를 세팅하여 CloudWatch에서 실시간 성능 모니터링 가능하도록 세팅
- Amazon Chatbot과 Slack을 활용하여 메모리 부하 및 Restart 시 경보 세팅
- readinessProbe 설정을 통해 배포 다운 타임을 약 10초에서 3초 미만으로 최소화 (제로 다운타임을 위해 추가 세팅 조치 중)
- helm chart를 통해 간단하게 오토스케일링 세팅
- 관련 블로그 포스팅
Next/Image를 활용한 Sales 사이트 이미지 로딩 최적화
Brandrive
2023.03. ~ 2023.03.
- Sales 사이트의 특성 상 고해상도의 이미지 로딩이 다수 필요
- png, jpg의 이미지를 avif 형태로 이미지 파일 최적화
- 캐싱될 사이즈를 미리 지정하여 초기 이미지 최적화 시간 감소
- 총 17.7MB의 이미지를 463KB로 최적화하여 로딩 시간이 평균 300ms으로 대폭 감소
파편화된 Modal 컴포넌트 리팩토링
Brandrive
2023.02. ~ 2023.02.
- 파편화된 Modal 컴포넌트 관리로 인해 코드의 복잡도와 유지보수 비용이 증가하여 이를 중앙화하여 관리하는 것이 목표
- Context API로 Modal의 상태를 전역적으로 관리하도록 수정
- React Portal을 활용해 컴포넌트의 순서에 영향을 받지 않는 Modal 생성
- 간단하게 Custom Hook으로 Modal 컴포넌트의 상태를 관리함으로써 재사용성 대폭 향상
Tailwind + Styled Component를 통한 스타일링 가독성 및 재사용성 개선
Brandrive
2022.10. ~ 2022.10.
- 잦은 디자인 피드백으로 인해 Scss와 CSS Module의 단점 개선 필요
- 생산성을 높이고 유지보수를 좀 더 용이하게 하기 위해 Tailwind CSS 도입, 디자인 피드백에 좀 더 빠르게 대응 가능
- Tailwind는 컴포넌트 파일의 가독성을 떨어뜨려 코드 리뷰의 속도 감소
- Tailwind와 Styled Component를 함께 사용하여 스타일링과 비즈니스 로직을 분리
- 레거시 스타일링도 점차적으로 Tailwind Styled Component를 통해 개선 중
재고 - 주문 프로세스에서의 동시성 제어
Reabit
2022.01. ~ 2022.01.
- Reabit은 투자 전략 별로 수용 Capacity가 존재해야 했기에 동시성 문제에 대한 해결이 필요
- 영화관 좌석 선점 시스템, 쇼핑몰의 재고 관리 프로세스 등을 레퍼런스로 동시성 제어에 대해 정리
- 외부 모듈과 어플리케이션 서버의 트랜잭션을 분리, 트랜잭션 실패 시 해당 결제를 취소하는 방식으로 결정
- 결제와 주문의 무결성을 보장하며, 결제 프로세스에서의 사용자 경험을 해치지 않을 수 있는 방법을 고민
- 관련 블로그 포스팅
교육
한국산업기술대학교
대학교(학사) | IT경영/(부)벤처창업
2016.03. ~ 2022.02. | 졸업
대외활동
자바로 배우는 프로그래밍 기초 과외
개인
- 교내에서 프로그래밍 과외 진행
- Hello World 부터 간단한 숫자야구 게임까지 구현이 가능하도록 1개월 커리큘럼 준비
- 총 5팀의 커리큘럼을 성공적으로 마무리
외국어
영어
일상 회화 가능