이력서 #
박기둥 #
그림 그리길 좋아하다 무언가 작동하는 것을 만드는 것을 좋아하게 되었습니다.
재밌고 새로운 것을 만들어 보고 싶다는 생각으로 프로그래밍을 시작했습니다.
목적을 이루기 위함보다 그 과정이 즐거워서 작업을 하는 사람이 되고자 합니다.
개인정보 #
경험 #
직무 #
기간 | 회사 | 담당 | 개발 스택 |
---|---|---|---|
2021 01 - 08 | 나무소프트 | 프론트엔드 개발 | Js/React, Go + Docker + AWS |
나무소프트에서의 경험
기업을 대상으로한 보안 스토리지 서비스를 운영하는 회사에서 웹 프론트엔드 개발을 담당했습니다.
기존의 코드베이스에서는 전역 상태관리로 Redux를 사용했는데 상품 소개와 가입, 인증만을 담당하던 규모가 작은 클라이언트였고, 기능 추가의 여지도 없었기 때문에 Context API를 사용하여 불필요한 코드 복잡도를 낮추었습니다.
기여한 다른 코드베이스로는 가입한 사용자의 스토리지 콘솔 클라이언트가 있습니다. 여기서는 서버와 클라이언트 데이터의 동기화가 제때 이뤄지지 않는 문제가 있었는데 React query 라이브러리를 도입하여 사용자가 최신의 데이터를 볼 수 있도록 하였습니다.
중간에 가입 과정의 유저 플로우가 변경되어 서버 API를 수정해야 할 일이 있었는데 사내에서 다른 프로젝트도 병행하던 시기여서 다들 바쁘셨고, Go 코드도 다뤄보고 싶었기 때문에 허락을 받고 개발 서버에서 필요한 API를 추가, 수정하는 경험도 해보았습니다.
팀장님의 추천
단기간에 적응하여 업무에 바로 투입이 가능했고 기본적인 프로세스 구성이 가능하며 더 나은 프로세스를 생각하는 팀원으로 기대가 컸으나, 개인적인 사정으로 함께하지 못해 안타까웠습니다.
교육 #
기간 | 교육 과정 | 배운 것 | 회고 |
---|---|---|---|
2022 08 | 42 Seoul - 피신 | Shell, C | 링크 |
2021 09 - 11 | 멋쟁이 사자처럼 - 스타트업 스쿨 | Django, Dart | 링크 |
2020 07 - 10 | 구공팩토리 - 웹 개발 | Web, Js |
42에서의 경험
쉘 환경에서 파일 권한 관리, 검색, 스크립트를 이용해 문자열을 가공하는 것 등에 익숙해졌고 C 프로그램을 작성하면서 데이터가 메모리에 어떤 식으로 입출력되는지 이해할 수 있게 되었습니다.
멋쟁이 사자처럼에서의 경험
실제 사용되는 서비스를 만들고자 했었기 때문에 어떤 기술 스택을 사용해야할지 능동적으로 찾아보고 공부하는 과정에서 디자인부터 인프라까지 전체 흐름을 이해할 수 있게 되었습니다.
구공팩토리에서의 경험
웹 환경이 어떤 구성 요소로 이루어져 있는지, 자바스크립트가 어떻게 동작하는지 대략적으로 이해할 수 있었고 간단한 풀스택 서비스를 구축해보며 관계형 데이터베이스 모델링부터 MVC 디자인 패턴까지 경험할 수 있었습니다.
프로젝트 #
기간 | 이름 | 한 줄 설명 | 개발 스택 | 데모 |
---|---|---|---|---|
2022 08 | 러브캡슐 | 좋아하는 사람을 찾아줍니다. | Dart/Flutter + Firebase | 동영상 |
2021 10 | 제제 | 화초 키우는 사람을 위한 SNS. | Dart/Flutter + Firebase | 동영상 |
2020 08 | 주차장 시뮬레이터 | 주차장 출입 기록 프로그램. | 바닐라Js + NodeJs + MariaDB | 동영상 |
러브캡슐을 만들 때의 경험
SMS 인증 코드 자동 인증 로그인을 구현하며 플러터 코드가 안드로이드 네이티브 코드와 어떻게 상호작용 하는지 조금 이해할 수 있었고 앱 푸시 메시지를 구현하며 Firebase의 Cloud Function이 어떤 식으로 작동하는지 이해할 수 있었습니다. 무한 스크롤과 채팅 기능을 구현해봤고, 가입 시 자동으로 닉네임과 캐릭터가 생성되어 DB에 저장되는 재미있는 기능도 개발해보았습니다.
제제를 만들 때의 경험
멋쟁이 사자처럼 과정에서 개발했었습니다. 틱톡과 유사한 비디오 SNS 서비스를 만들었습니다. 비디오 저장에 대해 고민하다 Youtube가 대용량의 비디오 데이터들을 어떻게 저장하고 관리하는지 찾아보았고, 확장성을 고려한 DB 및 인프라 관리 방법들에 대해 알게 되었습니다. 하지만 관련 문제는 사용자가 생긴 후에 고민하기로 했고, 플러터 프로젝트의 개발, 배포가 편리한 Firebase(GCP)에서 제공하는 스택으로 빠르게 개발하기로 했습니다. 짧은 개발 기간 내 작동하는 서비스를 만들기 위해 최선을 다했던 경험으로 하려면 할 수 있다는 자신감을 얻을 수 있었습니다.
주차장 시뮬레이터
처음 프로그래밍을 배웠던 구공 팩토리에서 학습을 목표로 개발했습니다. UML 다이어그램을 그려가며 관계형 DB를 모델링해봤고 Node Express를 사용해 웹 서버를 구축하고, 자바스크립트로 DOM을 조작하는 연습을 해보았습니다. 서버 코드를 MVC 디자인 패턴을 적용해 개발했는데 모델, 뷰, 컨트롤러 각자의 역할에 대해 고민해볼 수 있었습니다.
컴퓨터 기술 #
익숙한 도구 #
언어
Javascript(Web), Dart, Lua, Fennel, Markdown, Org, SQL
환경
Linux (Ubuntu, Arch), GCP (Firebase)
경험해 본 도구 #
언어
Javascript(Node), Rescript, C, Go, Clojure, Elisp, Python
환경
Linux (CentOS), Windows (wsl2), Docker, AWS (EC2)
언어 #
영어 : 중상 (TOEIC 925 - 2016년)
관심 #
- Lisp, Emacs, 오픈 소스, 텍스트 작성 도구.
- 읽기 쉬운 코드를 작성하는 방법.