Search

경력기술서

엘리스

2023.02.13 ~ 2023.08.28
최종 호칭: 스쿼드 리드
고용 형태: 정규직

엘리스 - 캘린더

2023.06 ~ 2023.08
수행 역할: Backend 스쿼드 리드
FastAPI PostgreSQL
유저가 구독중인 엘리스의 모든 일정(수강 시작, 구독 종료 등...)을 마이페이지에서 캘린더로 볼 수 있도록 하는 프로젝트입니다.
통합검색과 비슷하게 여러 리소스를 하나의 데이터베이스로 동기화하는 작업을 수행했습니다.
추가로, 다양한 포맷의 데이터를 ICS(icalendar) 포맷으로 제공하여 타 캘린더 서비스(Google, Outlook)에 연동이 가능하도록 설계하고 개발했습니다.

엘리스 - 통합검색

2023.05 ~ 2023.08
FastAPI Elasticsearch PostgreSQL
수행 역할: Backend 스쿼드 리드
플랫폼의 모든 데이터를 검색하려는 의도로 통합검색 기능을 도입했습니다.
본 프로젝트의 핵심 기능은 기존 PostgreSQL 데이터를 Elasticsearch로 이전하는 것입니다. 여러 리소스를 PostgreSQL에서 검색하는 것은 상당히 비효율적이기 때문에 하나의 데이터베이스로 이관해서 성능을 높이기 위해서 입니다.
개발 과정에서 까다로웠던 건 정규화된 데이터를 비정규화하여 Elasticsearch에 저장하는 것입니다. 관계가 1:N인 리소스의 경우 비정규화 과정에서 부모의 데이터가 변경되면 모든 자식에 반영돼야하기 때문입니다.
일반적으로 위 문제를 해결하기 위해 이러한 작업은 Queue를 사용하여 구현하지만, 당시 리소스를 수정하는 엔드포인트가 여러개였던 API 구조와, 데이터의 특성을 고려하고 복잡성을 줄이기 위해 다른 접근 방식을 선택하였습니다. 시간(Timestamp)을 기반으로 Materialized View를 활용하여 데이터 동기화를 수행함으로써 프로젝트의 복잡도를 낮추었습니다.

엘리스 - AI 챗봇 백엔드 개발

2023.03 ~ 2023.06
FastAPI PostgreSQL
수행 역할: Backend 팀원
AI 챗봇을 OpenAI의 Chat Completion API를 사용해서 구현했습니다.
Context를 유지하기 위한 챗 모델 설계와 프롬프트를 자유롭게 변경할 수 있도록 구현했습니다.

트래볼루션

2021.03.08 ~ 2023.02.10
최종 호칭: 사원
고용 형태: 정규직

트래볼루션 - 터치수원

2022.10 ~ 2023.01
수행 역할: Fullstack, Infra 팀원
수원 스마트 관광도시 앱 예약 솔루션 API 개발
Laravel

트래볼루션 - 서울관광할인패스

2021.08 ~ 2021.12
수행 역할: Fullstack, Infra 팀원
기술스택: Laravel + AWS Beanstalk + AWS Aurora
선착순 쿠폰 웹애플리케이션 구축
여러 유저가 동시에 접근하는 과정에서 한 유저가 하나의 쿠폰을 가져갈 수 있도록 설계했습니다.
DB 장애 대응 (CPU 100%)
첫 페이지에 요청이 많이 들어왔는데, 메인 페이지 데이터가 랜덤으로 보여져야했습니다.
이 과정에서 랜덤 노출과정이 코스트가 크기 때문에 미리 랜덤셋을 만들어서 성능을 개선했습니다.

에피카

2019.07.15 ~ 2020.04.27
최종 호칭: 사원
고용 형태: 정규직

에피카 - 차량 관리 서비스

2019.11 ~ 2020.04
수행 역할: Fullstack 팀원
파트너사 차량관리 백오피스 개발
기술 스택: Laravel (Backend), Vue.js (Frontend) + MySQL 배포 방식: FTP를 통한 Apache 서버 배포
Laravel 프로젝트를 진행하면서 백엔드 업무 위주로 진행했습니다.
데이터베이스 모델 설계를 담당했고, 데이터 마이그레이션 전략을 도입했습니다

에피카 - 차량 구독 서비스

2019.07 ~ 2019.11
수행 역할: Fullstack 팀원
차량 구독 서비스 개발
기술 스택: Laravel (Backend), Vue.js (Frontend) + MySQL 배포 방식: FTP를 통한 Apache 서버 배포
프론트엔드 Vue.js 프레임워크를 기반으로 개발을 진행했습니다.
차량 구독 서비스를 구현하기 위해 차량 옵션을 선택하는 화면을 단계별로 구현해야 했는데, Vuex를 활용해서 상태관리를 할 수 있게 됐고, 사용자가 구독중에 뒤로가기를 눌러도 현재 진행상황이 사라지지 않도록 구현했습니다.
이외 나머지 기능은 Laravel을 서버로 사용해서
이메일 로그인 구현
소셜 로그인 연동
PG사 결제연동 기능
상품 옵션 별 가격 계산 로직 프론트엔드에서 구현을 개발했습니다.

아이유노글로벌

2018.03.05 ~ 2019.03.05
최종 호칭: 사원
고용 형태: 정규직
상시 업무

아이유노글로벌 - 데이터 i/o

2018.03 ~ 2019.03
미디어 인제스트 및 트랜스코딩
고객사 에셋 다운로드 업로드 최적화
팀 작업물 소재 변환

아이유노글로벌 - 해외지사 서버 네트워크 구축

사전 준비 과정: Windows 서버는 windows pc를 관리하는 데 필요한 과정이 없었지만, Mac은 Windows 서버에서 연동하기 위해 추가적인 클라이언트가 필요했습니다. "콰스"라는 솔루션을 채택해서 직원 전체의 PC 보안을 중앙에서 관리할 수 있도록 작업했습니다.
디지털 자산 등록, 전직원 개인 PC에 보안 클라이언트 설치
2018.08.22 ~ 2018.08.25
말레이시아지사 보안서버 구축 및 클라이언트 세팅
2018.10.30 ~ 2018.11.02
대만지사 보안서버 구축
2018.11.28 ~ 2018.11.30
대만지사 클라이언트 세팅

기타 활동

모두의 연구소 MLOps 풀잎스쿨

2023-07-22 ~ 2023-10-07
MLOps 스터디를 개설하여 총 13명의 분들과 함께 서로의 경험을 공유하며 다양한 MLOps 기법을 학습하고 생각을 나눴습니다.

네이버 부스트코스 코칭스터디 <Let's AI 2023>

2023-06-07~2023-07-05 (4주)
Loading PDF…

[Numble] 지역기반 서비스 만들기

2022-10-21 ~ 2023-12-01 (5주)
AWS, Spring, MySQL, JPA
담당 기능
서버, 자동 배포 구축
인증 (Spring Security) 구현
JWT 기반 AccessToken, RefreshToken
AccessToken 은 login request시 header의 Authorization key에 담아 응답
RefreshToken 은 Cookie에 30일을 만료기간으로 세팅하고 응답
마이페이지 API 개발
프로필 이미지 업로드
유저 위치정보 등록 및 가져오기

[Numble] 숏폼 서비스 제작

2022-04-15 ~ 2022-05-15
AWS, Spring, MySQL, Mybatis
담당 기능
서버, 자동 배포 (CD - github actions)
메인피드, 컨텐츠 API 구현