미리보기
기본 정보
JS, TS로 하는 프론트엔드, 백엔드, 라이브러리 만들기, RN 그리고 데이터베이스를 활용할 수 있는 개발자입니다. 그리고 취미로 홈 서버 구축하기랑 내가 만든 라이브러리 사용해보기 등을 하고 있습니다.
기술 스택
Python, Django, JavaScript, TypeScript, Node.js, Flask, React Native
경력
주식회사마플코퍼레이션
사원 | 개발팀 | 재직 중
2022.12. ~ 재직 중 (2년 2개월)
2022.12~2023.02 [마플코퍼레이션] OPEN API
사용 언어 및 개발 환경
서버 : node,js, express.js, postgresql, fxjs, fxsql 등 javascript 환경
인력 구성 및 기여도
개발 인원 : 본인 포함 4명, 기여도 20%
주요 업무
사내 서버 기능을 외부 서버에 연결해주기 위한 라우터를 제공
성과 및 결과
회사 내부 데이터 구조 적응 및 사내 개발 환경 적응 일환의 프로젝트 였으며, 적은 기간 내에 사내 개발 환경에 적응하는 시간을 가질 수 있었습니다.
개발 완료 시기에 맞춰 배포가 나갈 수 있었고, 외부 사용처인 사방넷과의 테스트 환경 구축에 도움을 줄 수 있었습니다.
2023.02~2023.04 [마플코퍼레이션] 외주 제작을 위한 사내 공장 시스템 개선
사용 언어 및 개발 환경
서버 : node,js, express.js, postgresql, fxjs, fxsql 등 javascript 환경
인력 구성 및 기여도
개발 인원 : 본인 포함 4명, 기여도 35%
주요 업무
외주 제작사를 위한 페이지 제작
맡은 업무 : 외주 제작사 정산 페이지, 외주 제작 리스트 페이지, 외주 제작 데이터 구조 설계
성과 및 결과
외주 제작사들을 위한 페이지가 존재하지 않거나 불편한 부분이 많았는데, 도움을 주기 위한 페이지를 만들어 효율적으로 사내 공장이 일을 할 수 있게 되었습니다.
정산 관련 코드를 만지면서 해당 도메인에 지식을 얻을 수 있었습니다.
2023.04~2023.06 [마플코퍼레이션] 마플샵&마플 휴면 계정 및 유저 인증 페이지 개선
사용 언어 및 개발 환경
백엔드 : node.js, express.js, fxjs
데이터베이스 : fxsql, posgresql, redis
프론트엔드 : html5, stylus, fxjs, fxdom
인력 구성 및 기여도
개발 인원 : 본인 1명 기여도 100%
기획 인원 : 본인 외 1명, 기존의 기획을 바탕으로 새로이 기획했습니다. 기여도 80%
디자인 인원: 1명
주요 업무
계정의 휴면 처리를 위한 로직 추가
휴면 복구를 위한 페이지 및 로직 추가
기존의 아이디 찾기, 비밀번호 재설정 페이지 리메이크
성과 및 결과
회사 내부 데이터 구조를 많이 파악할 수 있었습니다.
index scan이 되지 않았던 쿼리에 대해 index scan이 될 수 있는 쿼리를 바꿔볼 수 있는 기술적 역량을 얻었습니다.
데이터 베이스에 부하가 갈 수 있는 로직도 테스트하면서 성능 개선을 할 수 있게 되었습니다.
기존 코드를 파악하고 새로운 디자인에 맞춘 페이지 제작을 혼자 할 수 있게 되었습니다.
2023.06-2023.08 [마플 코퍼레이션] 마플 서비스 리뉴얼
사용 언어 및 개발 환경
백엔드 : node.js, express.js, fxjs
데이터베이스 : fxsql, posgresql, redis
프론트엔드 : html5, stylus, fxjs, fxdom
인력 구성 및 기여도
개발 인원 : 본인 외 5명
주요 업무
프로젝트 환경 초기 세팅 - 새로운 텍스트 번역 시스템 도입, atomic 패턴을 차용하여 새로운 패턴 추가
주문 내역, 마이페이지, 로그인 관련 페이지 등 다양한 페이지 디자인 리메이크 및 로직 개편
마플 서비스 리뉴얼에 맞춰 마플 앱에 관련 내용 적용
성과 및 결과
개인적: 무분별한 에러 로깅이 아닌 axios, fetch에 맞는 다양한 프론트 에러 처리 및 서버에서의 query, status code와 같은 다양한 에러 처리를 분기할 수 있었다.
리뉴얼 전보다 확실히 신규 방문이 늘었고 전환율이 유지되었으며, 실제 매출이 더 많아졌다.
2023.08-2023.09 [마플 코퍼레이션] 넥슨 사내몰 NBOX 서비스 오픈
사용 언어 및 개발 환경
백엔드 : node.js, express.js, fxjs
데이터베이스 : fxsql, posgresql, redis
프론트엔드 : html5, stylus, fxjs, fxdom
인력 구성 및 기여도
개발 인원 : 본인 외 7명
주요 업무
넥슨 사내 로그인과 연동
주문 내역, 마이페이지, 로그인 관련 페이지 등 다양한 페이지 제작
성과 및 결과
촉박한 일정이었지만, 스케쥴에 맞게 개발을 완료했다.
넥슨과의 협업을 통해 qa기간의 증가 및 보안 점검과 같은 과정이 추가 되었는데 이를 완벽히 소화했다.
2023.10-2023.12 [마플 코퍼레이션] Nexon Essential 서비스 오픈
사용 언어 및 개발 환경
백엔드 : node.js, express.js, fxjs
데이터베이스 : fxsql, posgresql, redis
프론트엔드 : html5, stylus, fxjs, fxdom
인력 구성 및 기여도
개발 인원 : 본인 외 7명
주요 업무
넥슨 sdk 연동 및 넥슨 로그인을 통해서 로그인하는 기능 추가
주문 내역, 마이페이지, 로그인 관련 페이지 등 다양한 페이지 제작
성과 및 결과
촉박한 일정이었지만, 스케쥴에 맞게 개발을 완료했다.
넥슨과의 협업을 통해 qa기간의 증가 및 보안 점검과 같은 과정이 추가 되었는데 이를 완벽히 소화했다.
2024.01-2024.07 [마플 코퍼레이션] Marppleshop 2.0 오픈
사용 언어 및 개발 환경
백엔드 : node.js, express.js, fxjs
데이터베이스 : fxsql, posgresql, redis
프론트엔드 : html5, stylus, fxjs, fxdom, rune-ts, @rune-ts/server
인력 구성 및 기여도
개발 인원 : 본인 외 7명
주요 업무
ts 컨버팅 및 js 번들 자동화 라이브러리인 @rune-ts/server 개발
기존 JS 코드 베이스에서 TS 코드가 작동하도록 수정
메인 페이지 및 로그인 페이지 담당
마플샵 2.0 UI에 맞춰 마플샵 앱 수정
성과 및 결과
촉박한 일정이었지만, 스케쥴에 맞게 개발을 완료했다.
플레이더코
총괄 | 개발팀
2021.05. ~ 2022.11. (1년 7개월)
2021.06-2021.09 [플레이더코 - 코리아박스] 사내 물류 자동화 시스템 개발
회사 소개 : 해외 K-POP팬을 대상으로 상품 판매 및 랜덤 박스 판매
사용언어 및 개발환경 : Python, Pandas, Google API, Google SDK, Google Colaboratory
인력구성 및 기여도 : 본인 1명, 기여도 100%
주요 업무 및 상세 역할
고객들의 주문데이터 자동 저장 기능 개발
실시간 Paypal 주문 데이터 통합 저장 기능 개발
자동화 업무 처리 시스템 개발
성과 및 결과
기존 수동 배송 시스템을 자동화하여 업무 평균 기간 획기적 단축
2021.09-2022.11 [플레이더코 - FanArcade] 어플 개발
회사 소개 : 해외 K-POP 대상 소통 커뮤니티 및 상품 판매 어플
사용언어 및 개발 환경
백엔드 : AWS + Nginx + Gunicorn + Uvicorn을 통해 웹 서버를 구동하고 그 안에는 Django, Django REST Framework, Django Chnnel, Baton, Redoc, Redis, Celery, Firebase Admin, Sentry 등 다양한 편의성 기능을 추가한 Django 서버
어플 : React Native with JavaScript, TypeScript, Redux, Redux Saga
인력구성 및 기여도
개발 인원 : 본인 1명, 기여도 100%
기획 인원 : 본인 포함 2명, 기여도 60%
디자인 인원 : 본인 포함 2명, 기여도 50%
주요 업무
백엔드
AWS EC2와 S3, RDS 서비스를 활용한 Nginx + Gunicorn + Uvicorn 무중단 배포 웹 서버 구성
Django를 활용한 REST API 서버 구축
Redis, Celery, Django Channel을 활용한 비동기 처리 서버 구축
Firebase, Celery를 활용한 비동기 알람 서버 구축
Sentry를 통한 모니터링 서비스 통합
Paypal API를 통한 구독 서비스 구축
어플
React Native with Javascript로 어플 출시
Websocket을 활용한 채팅 서비스 구축
Firebase 활용으로 Dynamic link, 알람, SNS 로그인 서비스 구축
Typescript로 기존 코드를 컨버팅
성과 및 결과
개발 착수 2개월만에 Apple, Google 양사 스토어에 어플 출시
출시 1달만에 3000명 회원 확보
일 평균 100명의 접속 회원 달성
토스 스타트업 서바이벌 FOUND 세미파이널 진출
한국전기공사협회
인턴 | 운영팀
2021.01. ~ 2021.02. (2개월)
(주)건강신문사
기자 | 기자
2020.03. ~ 2020.12. (10개월)
윙글즈 에듀텍
사원 | 운영팀
2019.07. ~ 2020.03. (9개월)
(주)와이젠스쿨
사원 | 운영팀
2019.02. ~ 2019.06. (5개월)
프로젝트
[명랑골프 - OnGreen] 어플 개발
명랑골프
2022.04. ~ 2022.10.
회사 소개 : 골프를 즐기는 사람의 편의를 위해 골프 조인 서비스를 제공하는 어플
사용언어 및 개발환경 : React Native with Typescript, Redux, Redux Saga
인력구성 및 기여도 : 본인 1명, 기여도 100%
주요 업무 및 상세 역할
React Native with Typescript로 어플 개발
Websocket을 활용한 채팅 서비스 구축
Firebase 활용으로 Dynamic link, 알람, SNS 로그인 서비스 구축
성과 및 결과
어플 출시
포트폴리오
교육
명지대학교
대학교(학사) | 디지털미디어학과
2015.03. ~ 2022.02. | 졸업
외국어
영어
일상 회화 가능
자기소개
정재훈 자기소개서
프로젝트의 마지막 퍼즐 조각
Javascript를 모르지만, React Navtive로 앱 만들기. 비동기 처리도 모르지만, Django로 백엔드 만들기. For 문만 알지만, Python 물류 자동화 시스템 구축하기. 대학교 입학 첫해에 앱 prototype 만들기. 공학을 모르는데 공학 설계를 활용한 BM을 만들어보는 수업에서 만점 받기. 토익 485점의 영포자에서 935점 일궈내기. 중도에 그만두는 인원이 반이 넘는 응원단에서 몸치로 시작하여 2년의 활동 마무리하기.
이 모든 것이 제가 아무것도 없는 것에서 시작하여 성취해 나간 것입니다. 저는 해내고야 마는 사람, 믿고 일을 시켜볼 수 있는 사람, 모두가 쉽게 해내지 못하는 일을 마무리하는 구원 투수 같은 사람입니다.
도전의 성취감, 발전하고 있다는 자신의 믿음이 있었기 때문입니다. 사람들과의 도전을 통해서만 얻을 수 있는 유대감과 만족감은 저를 모험적인 삶을 살 수 있도록 만들었습니다. 그리고 성취감은 저를 어떤 일을 하더라도 해낼 수 있는 사람으로 성장할 수 있게 도와줬습니다. 물론 포기하고 싶은 순간도 많았습니다. 그 순간의 저를 잡을 수 있었던 것은 발전하고 있다는 믿음이었습니다. 업무 이후에도 공부하고 포기하지 않고 해결책을 찾는 저의 모습은 자신에게 더 나아가고 있다는 생각은 심어줄 수 있었습니다. 이제 더 넓은 곳에서 더 넓은 사회에서 저의 능력을 활용하고 싶습니다.
나의 목표에 집중하는 사람은 많지만, 누군가의 꿈, 생각, 목표를 귀 기울여 들어주고 서포트해 줄 수 있는 누군가가 되어줄 수 있는 사람은 적습니다. 저는 설령 누군가의 말이 터무니없는 소리라고 해도 무시하지 않아 왔습니다. 1년 전, 웹 기반의 사업을 앱으로 확장해 보자는 회사 대표님의 말씀도, 발표날이 채 이틀도 남지 않은 상태에서 경쟁 PT를 준비하여 교내 유럽 탐방 체험 프로그램 신청을 함께 도와달라는 학교 동기의 말도, 영상 촬영과 편집 툴을 하나도 모르지만 일단 부딪혀보라는 학교 선배의 말도 모두 무시하지 않았습니다.
이런 리스너의 자세로 나만의 목표를 성취하는 것들 외에도 남들의 꿈을 서포트해주는 서포터의 역할로도 많은 사람을 돕고 서포트 해올 수 있었습니다.
저는 이 중에도 현재 제가 근무하고 있는 회사 대표님의 오랜 꿈이었던 앱 제작을 실현했던 기억이 제일 자랑스럽습니다. Python만 알던 신입 개발자였던 제가 앱의 기획부터 실제 프로그래밍까지 모두 제 손을 거친 앱을 만들어 볼 수 있었던 개인적 목표 성취의 과정임과 동시에, 다른 이의 꿈을 실체화했던 경험이기 때문입니다.
제 목표를 이루고 있다는 자기효능감과 그리고 남을 돕고 있다는 선한 성취감이 좋은 시너지를 내어 모르는 부분이 있어도 끝끝내 해결책을 찾고 탐구하여 결국 앱 기획 두 달만에 백엔드 서버와 앱 출시를 동시에 구축해낼 수 있었고, 출시 한 달도 지나지 않아 3,000명의 유저를 모을 수 있었습니다. 이 앱을 가지고 대표님은 그다음 달, 꿈에 그리셨던 목표인 토스 스타트업 서바이벌 FOUND에 참가하셨고 세미파이널에 진출 할 수 있었습니다.
앱을 만들면서 어려운 시기가 없었던 것은 아니었습니다. 많은 어려움 중에도 특히 UI 제작 이후 과정인 서버 제작에 특히나 큰 어려움이 있었지만 시중에 나와 있는 책과 인터넷 강의를 섭렵한 뒤에도 계속해서 개발자 커뮤니티에 질문하고 답을 구했습니다. 이 과정에서 저는 개발이라는 직군 자체, 그리고 개발자라는 직업 자체가 계속해서 끊임없이 공부하고, 탐구하고, 서로의 지식을 공유하는 분야라는 것을 깨닫게 되었습니다.
대학 생활을 통해 터무니 없다고 생각하고 해결할 수 없는 문제라고 생각했던 것들에 부딪히는 힘을 배웠지만 스스로 확신을 가지고 프로젝트를 추진하는 힘은 적었다고 생각했던 과거에 비해 이 일련의 과정을 통해 이제는 어느덧 스스로 문제 해결을 위해 탐구하고, 사유하는 개발자로 성장해 왔다고 자부합니다.
저는 이제 구원투수에서 완투를 위한 선발 투수로 자리매김하고자 합니다. 경기 내내 어려운 상대를 마주하고 어려운 상황을 극복해나가는 선발투수처럼 어려운 문제에 거침없이 도전하고, 위기를 이겨내어 프로젝트의 처음과 끝을 함께하는 그런 선봉장이자 페이스메이커 개발자가 되겠습니다.
풍랑을 견뎌낸 항해사
인생에 정도가 있지 않지만 많은 루트 중 저는 비교적 어려운 루트로 성장해왔습니다. 초등학교 6년 동안 4번의 전학을 경험할 정도로 안정되지 못한 가정 형편, 공과금조차 내지 못하는 경제적 어려움 속에서 학년이 오를수록 어릴 적 친구들과 교우관계를 유지하기에 어려움이 있었습니다. 결국 제 곁을 지켜주던 친구들은 떠났고 덩달아 학원에 다니는 친구들보다 성적이 떨어지기 시작하였습니다. 환경도, 학교도 편한 장소가 없었습니다.
이런 어려운 상황 속에서 어린 저는 이 문제를 해결할 상황이 아니었기 때문에 묵묵히 그 당시 학생으로서 할 수 있는 것들을 해 나가며 이 상황을 견뎌내는 방법을 체득했습니다. 1년이 가깝게 쉬는 시간, 점심시간에 책을 읽고 공부한 결과 성적은 올랐고 자연스럽게 공부와 책에 뜻이 있는 새로운 친구들을 만날 수 있었습니다.
초등학생 때에는 학원에 다니지 않아도 스스로 공부하면 커버할 수 있었던 학습량이 중등을 지나 고등학생이 되어서 학원에 다녔던 친구들과 큰 차이가 난다는 것을 깨닫게 되었습니다. 순수 공부 시간이 부족하다고 판단한 저는 고등학교 1학년부터 3년 내내 매일 밤 9시까지 야간 자율 학습을 빼먹지 않고 공부했으며 EBS 인터넷 강의를 최대한으로 활용하는 등 환경에 굴복하지 않고 최선을 다해왔습니다. 그 결과 상위 30%에서 시작했던 내신 성적은 상위 7% 내로 마무리할 수 있었고 서울 소재의 대학교에 들어갈 수 있었습니다.
가정형편의 차이는 의무교육일 때보다 대학교 생활할 때 더욱 체감되었습니다. 교통비, 식비를 포함하여 고등학생일 때보다 생활비가 더 많이 들어갔고 그 외에 학과 활동하는데도 비용이 들어가기 시작했습니다. 지출이 당연히 많아질 수밖에 없었고 저는 부모님의 부담을 덜어드리기 위해서 대학교 2학년 때부터 한 학기도 쉬지 않고 학업과 일을 병행했습니다. 때때로 제가 부모님께 금전적으로 도움을 드리기도 하면서 가족과 함께 성장해나가고 이겨내 나간다는 뿌듯함으로 환경에 억눌리지 않으려 많이 노력했습니다.
군대를 제외하고 약 4~5년 가까이 쉬지 않고 일하다보니 다양한 분야에서 일을 할 수 있었고 학업과 여러 활동을 병행하다 보니 최대한 일을 효율적으로 처리할 방법을 자연스럽게 고안하기 시작했습니다. 영어를 활용하는 일에서는 노동집약적인 환경을 개선하기 위해 윈도우 Batch 명령어와 업무 툴을 최대한 활용해서 자동화를 이뤄내고, 신문사에서 일할 때는 기사들을 크롤링하고 자료를 모으는 일을 자동으로 처리하고 많은 업무 툴을 익히는 등 자신 없는 일을 자신 있는 일로 바꿀 수 있었습니다.
가끔 주변에서 제게 왜 이렇게 열심히, 치열하게 사는지 물어볼 때가 있었습니다. 그럴 때마다 저는 항상 말한 이유가 있습니다. 환경에 압도당하지 않고 환경을 스스로 가꾸고 싶기 때문입니다. 앞선 자소서에서도 꾸준히 도전하고 성취한 경험을 공유해 드린 것은 이런 제 성장 배경을 토대로 환경을 주도해나갈 수 있다는 희망이 보이기 때문이리라 생각합니다. 주어진 환경에 좌절하고 순응하기보다, 제 삶의 키를 제가 잡고 스스로 주도해나갈 수 있는 삶을 살아왔고 꾸준히 제 삶을 기획해 나가고 싶습니다.
내가 꿈꾸는 나의 미래
저는 대부분의 일을 혼자서 진행해왔습니다. 프로젝트의 시작에서 마무리까지 의사결정을 하다 보니 의심은 언제나 제 꼬리표처럼 따라다녔습니다. 지금 내가 가는 방향이 맞는지, 내가 현재 좋은 발전을 하는 것인 지, 내가 맞는 결정을 내린 것인 지 등 제가 하는 일에 대한 의심이 나날이 커져만 갔습니다. 그리고 그때마다 상호 검증 및 조언을 얻을 수 있는 동료의 부재를 여실히 느꼈고, 제 성과 및 방향을 검토하고 평가해줄 수 있는 상사와 체계의 부재를 크게 경험했습니다.
그 과정에서 더 많은 수의 사람과, 더 나은 체계에서 업무를 비롯한 다양한 발전을 이루어 나가는 저 스스로를 계속해서 꿈꿔왔습니다. 따라서 저는 제가 만든 코드를 상호 검증하고, 평가받고, 다양한 피드백을 통해 스스로 성장할 수 있는 회사와 환경을 희망합니다. 자유로운 의사 공유가 활발한 커뮤니티를 보유한 회사에서 비로소 ‘함께 성장’이라는 제가 가진 업무 가치관을 이룰 수 있으리라 믿기 때문입니다. 현실에 안주하지 않고 무엇이 더 나은 방향일지, 좋은 방향이 무엇일지에 대해 꾸준히 생각하고 사유하는 저는 같은 비전을 가진 회사에서 긍정적인 시너지를 낼 수 있다고 생각합니다.
활발한 피드백이 가능한 환경 외에도 회사의 비전 또한 중요시 생각합니다. 제 삶의 원동력이자 모토이기도 한 ‘환경 주도’는 제 개인의 삶뿐만 아니라 회사의 일원으로서도 동일하게 적용됩니다. 회사가 주어진 것에 안주하지 않고 지속해서 발전하고, 새로운 것을 찾아 나가는 방향성을 가졌다면 많은 제약에도 불구하고 제가 그랬던 것처럼, 궁극적으로 이를 이뤄낼 것임을 믿기 때문입니다. 따라서 저는 트렌드에 휩쓸리기보다, 트렌드를 주도해나갈 수 있는 가장 앞선 기업과 비전이 뚜렷한 기업에서 일하길 희망합니다.
현실적인 제약조건을 포기할 수 없지만 그런데도 불구하고 저는 제가 노력하고 싶은 회사, 함께 성장할 수 있다는 믿음이 있는 회사를 언제나 찾고, 그곳의 일원이 되길 희망하고 있습니다. 이제, 제가 귀사의 구원투수이자 선발투수가 되도록 노력하겠습니다.