미리보기
기본 정보

벡엔드 개발자
프로젝트
midi-clip: A python package for midi clip ✂️
마피아컴퍼니
2023.06. ~ 2023.06.
This library considers a lot of things for detailing midi clips: followings:
Supports both multi-track MIDI
Supports both tempo track & non-tempo track
Consider set_tempo, time_signature, controllers that appear before start time or note_on that were not closed
Consider empty space before the midi
All note_on and note_off pairs are validate. (Number of note_on and note_off is the same, and all note_on are closed by note_off)
소요시간: 2.5일 / 근무 중에 회사프로덕트에 MIDI도 미리듣기 제공하려고 개발한건데, 회사에서 라이브러리로 만들자고해서 공개함
트친소 짤 생성기: website about self introduce for twitter-friend
개인
2022.07. ~ 2022.07.
트친소란 트위터에서 SNS 친구를 구할 때, 스스로를 소개하는 것이다.
사진 형태의 자기소개서와 올리는 경우가 많으며, 계정의 주제에 맞는 자기소개서 형식의 이미지를 다운 받아 직접 작성하는 방식이 널리 쓰인다.
이미지를 편집하는 것은 그림판을 쓰기엔 불편하고 다른 프로그램을 쓰기엔 이미지 편집에 익숙하지 않은 사람들이 많다.
이에 입력을 통해 쉽게 트친소 이미지를 생성해 다운받을 수 있는 사이트를 만들었다.
i18n-language.js: Simple i18n language with Vanilla Javascript
개인
2020.09. ~ 2020.09.
There are a lot of approaches to internationalization, but this project offers unique advantages like: followings.
Inline translation in HTML documents
Lightweight JS implementation in 48 lines
Written in pure HTML/CSS/JS so beginners can use it easily
When visiting for the first time, the language is set as the browser setting value, and if there is no setting value, English is displayed first
When the language is changed, it is stored in the local storage and displayed in the corresponding language when revisiting
Three Slash: Academic Report Form, written in TeX
2020.06. ~ 2020.06.
인프런: 지식공유자
개인
마이너한 분야들의 단편 강의들을 찍는 지식공유자
인프런에서 ChatGPT API에 관한 최초의 강의와, LaTeX으로 PDF를 만드는 것에 관한 최초의 강의를 찍음
언젠가... LaTeX 초급편을 찍고자 하는 계획이 있음 (N년째 미루기 중)
레이텍(LaTeX), 코드를 컴파일하니 pdf 문서가 만들어져요! - 입문편
ChatGPT API 입문 강의 - 30분 만에 다국어 번역기 웹 풀스택 개발하기
오픈소스 기여 (Pull Requests)
librosa:
pitch shift에 scale인자를 넘기게함
zappa:
zappa 기여는 아직 merge 되진 않음
exclude 에 대한 개선
- https://github.com/zappa/Zappa/pull/1242
aws regoin에 관한 에러 수정 - https://github.com/zappa/Zappa/pull/1217
대외활동
Competition / Awards
2021 ACM-ICPC Seoul Regional (16th/73 Teams*)
2020 UCPC, 4th Award (15th/169 Teams*)
2020 Google Codejam IO for Women, Top 150th(Earned Ticket) (115th/2500 Participants)
2020 Brandi CodenameB, Prize (11st/2300 Participants)
2018 Nexon Youth Programming Challenge, Finalist (~Top 50th/5400 Participants)
2017 Korea Olympiad in Informatics(한국정보올림피아드), Silver Award (29th/200 Participants*)
- : count only finals
ICPC 본선 총 3회 참가 (2019, 2021, 2022)
UCPC 본선 총 3회 참가 (2019, 2020, 2021)
NYPC 본선 총 2회 참가 (2017, 2018)
KOI 본선 총 2회 참가 (2016, 2017)
소프트웨어마에스트로 10기
포트폴리오
자기소개
무언가 만드는 것을 좋아하는 개발자
몰입하는 것을 좋아하는 개발자
2023년 상반기 기준으로, 4학년 1학기까지 재학함
이력서는 미리 올려놓았지만, 졸업할 때까진 구직 중이 아닙니다.
기술 스택
JavaScript, python3, HTML/CSS, React, Flask, Next.js, FastAPI, Express, OpenCV, 알고리즘, SQLAlchemy, MySQL, AWS, Docker, LaTeX
교육
한양대학교
대학교(학사) | 컴퓨터소프트웨어학부
2019.03. ~ 현재 | 재학 중
충북과학고등학교
고등학교
2016.03. ~ 2019.02. | 졸업
경력
마피아컴퍼니
인턴 (벡엔드/한양대학기대체)
2022.12. ~ 2023.06. (7개월)
겨울방학에 중기청전세대출 연장해야해서+학점채울겸 단기인턴을 했었고, 좋은 회사라서 3-6월에 계약 연장함
메인 업무 - Backend API 개발
정산 수단에 A 모듈 추가 (A 측 사정으로 프로덕션 미배포 상태)
확장 가능한 RSS 시스템 개발 및 3곳 연동
URL Shortener 개발
추천인 시스템 개발
비디오&오디오 크롤링 및 저장
ChatGPT API 활용한 Description API, 스팸자동신고 API 개발
AWS Sagemaker CI/CD 구축
audio를 위한 mfs 서버 및 여러 audio 전처리 파이프라인 개발
206K개의 데이터에서 99.6%의 정확도로 판별
이외에 여러 기능 개발
이모틱박스
정규직 (벡엔드)
2021.07. ~ 2022.02. (8개월)
메인 업무 - EmoticBox Backend API 개발
Express 를 이용한 백엔드 개발 (본인 기여량(docs repository 제외): 105 commits, 41,738++, 24,186—, pull request 66개)
기존에 Jira, Confluence, TDD 등이 도입되어 있어 이에 대한 지식을 익힐 수 있었음.
기존 API를 Router-Service-Controller 패턴으로 리팩토링
기존에 db table 개수가 30~40개쯤 되는데 이에 관련된 list api의 pagination에 limit, offfset이 없어서 수정 및 테스트 코드 추가
신규 api 추가 및 기존 api 수정 및 db migration 등...
단기업무1 - 외부용 API Docs 구축
Nextra 템플릿을 이용해 대외용 API Docs 새로 구축 및 CI/CD ( AWS Code Pipeline, Build, ECS, ECR ) / Vercel 써도 되지만, 여러 이유로 인해 기존 Backend API 와 배포 프로세스를 동일하게 함
아리아엣지
계약직 (풀스택)
2021.01. ~ 2021.06. (6개월)
2020년 4월~6월에도 단기 인턴을 했었음
- 이전 계약이 끝난 후, 이 후 새로운 프로젝트 건으로 다시 연락와서 새로 계약한 것임
실시간 화상 회의 시스템 개발 (시연 목적의 프로토타입 수준/실배포X) 2021-01 ~ 2021-06
기본적인 Auth 기능이 있고, 로컬에서 여러 브라우저로 테스트 해보았을 때 입장/퇴장, 영상/음성 뮤트, 다른 영상/음성 기기 변경 등에 대해 Socket & WebRTC를 활용해 영상 목록 실시간 업데이트를 지원함. / 실시간 화상회의 중, 실시간 채팅도 함께 가능함
React, Next.js, Emotion, SWR, Canvas, WebRTC, Express, Sequelize, Socket.IO, Swagger, MySQL
사내 프로토타입 용 회원관리서버 2021-01 ~ 2021-06
기본적인 Auth 기능이 있고, 회원 권한을 Admin, Company Admin, Site Admin, User, Uncertified 로 나누어, 사내기술을 활용하는 특정 데이터에 대해 관리하는 사이트
Canvas 를 활용한 간단한 Labeling 기능 탑재
회사 홈페이지 제작 및 사내 시제품 서버 제작 2020-04 ~ 2020-06
포토샵으로 된 디자인 시안 받아서, 회사 웹사이트 제작
기획 시안 받아서, 로그인 서버 2개 제작 ( 회원 관리용 Front End가 있는 서버 / Table 10개 정도 있는 API 서버 )
HTML5, CSS3, JavaScript, Python, Flask, MySQL, i18n
네이버
인턴 (프론트엔드)
2020.06. ~ 2020.12. (7개월)
메인업무 - 사내 라벨링툴 Front End 담당 2020-06 ~ 2020-12
다각형 혹은 비디오를 타임라인 형식의 라벨링을 하는 페이지를 Canvas 를 활용해 인터랙티브하게 개발함. 이미지/타임라인 확대,축소 기능 및 라벨 생성/수정/삭제 등 여러 편의 기능을 포함.
❯ 신규 제작한 데이터 라벨링 템플릿
Video & Audio - Timeline & Subtitle Annotation (구현 2000~3000줄 짜리!)
Image - Image Segmentation, Keypoint
Text - Text Edit
❯ 유지보수 및 리팩토링
리팩토링 및 Gulp & SCSS 도입
기존 코드 개선 - 간단한 린트부터, jQuery, Bootstrap 등 버전 통합, 중복되는 코드 템플릿화, HTML 안티패턴 수정 등
기존 라벨링 템플릿 유지보수 및 업데이트 (Object Detection 등)
HTML5, SCSS, Javascript, Canvas, Gulp
퇴사일 기준, 이 프로젝트 348 커밋
단기업무1 - Data를 Table & Chart 형식으로 시각화 하는 사이트 Front End & Back End 담당 2020-10 ~ 2020-11
테이블 정렬, 페이지네이션, 검색, 검색 필터
테이블 행 클릭시 Fetch API로 추가 데이터 수신 후, 관련 데이터에 대한 Chart.js를 이용한 그래프 및 추가적인 Table 생성
HTML5, SCSS, Javascript, Flask, Python, Gulp
단기업무2 - 동영상 & 자막 웹 크롤링 및 수집 2020-10 ~ 2020-10
특정 사이트(유튜브 아님) 동영상 & 자막 웹 크롤링을 하는 Python 코드 작성
BeautifulSoup, Selenium
세븐미어캣
인턴 (풀스택)
2020.01. ~ 2020.03. (3개월)
메인업무 - 데이터 파이프라인 구축 2020-01 ~ 2020-03
자사 Labeling Site (OCR, Object Detection, Image Segmentation) Front End & Back End 제작
HTML5, CSS3, JavaScript, Canvas, Python, Flask, AWS S3, MongoDB, OpenCV
단기업무 - 데이터 전처리 및 여러 단기 업무 리스트
자사 AI 모델 홍보 사이트 제작 ( 웹에서 AI모델 테스트를 위한 홍보용 사이트 )
데이터 전처리 - CSV와 JSON 파일 형식 변환, 이미지 크롭 및 합체
OpenCV API를 이용한 트래킹
Keras Retinanet 오픈소스를 이용한 오토라벨링