나, 그리고 이제까지의 경험들
세 줄로 요약하자면, 저는
- 수학처럼 깔끔한 코드와 프로젝트, 사용자가 쓰기 편한 프로그램을 만들고 싶은 백엔드 개발자입니다.
- 제가 겪은 오류사항을 통해 발전하고, 다른 사람에게 공유하는 것을 좋아합니다. 집단지성의 시너지를 믿습니다.
- Self-hosted 서버를 운용하고 있으며, 리눅스에도 관심이 많습니다.
추구하는 것과 관심사는
깔끔한 코드
제게 깔끔한 코드란 지속적으로 빠르게 개발을 할 수 있는 코드입니다.
LG e-Centric 개발 당시, 1년차 이하 개발자 주도로 개발된 백엔드 코드의 리팩토링을 담당했습니다. 저(당시 2년차)와 5년차 개발자 주도로 리팩토링 가이드를 작성하고 코드 리뷰를 진행했습니다. any로 개발된 typescript의 타입 정의와 knex wrapper 생성 가이드를 제작하여 백엔드 코드가 깔끔한 코드가 되도록 개선한 경험이 있습니다.
시행착오와 시너지
시행착오는 힘듭니다. 하지만 이러한 시행착오의 교훈을 공유한다면 이는 시너지가 됩니다.
LG e-Centric 개발 당시, 프론트엔드의 Content Security Policy(CSP) 설정으로 인해 라이브러리를 이용한 컴포넌트가 올바르게 표시되지 않는 버그가 발생하였습니다. 문제 원인에 대한 내용을 분석하고, 이에 대한 내용을 공유하는 세미나를 진행했습니다. 또한 네트워크 학습 중 어려웠던 부분을 중심으로 별도의 사내 세미나를 진행하기도 했습니다.
자세한 내용은 세미나 항목을 참고해 주세요.
Self-hosted와 리눅스
개발자라면 각자 자신이 가지고 있는 꿈이 있습니다. 제가 가지고 있던 꿈 중 하나는 저만의 도메인과 이 도메인에 연결된 서버를 가지는 것입니다. 라즈베리파이를 시작으로, 현재는 데스크톱 서버와 proxmox 기반의 홈서버를 운영하고 있습니다.
현재 보고 계신 블로그 또한 해당 서버에서 호스팅 중인 서비스입니다. 직접 온프레미스 환경을 구축하며 경험한 리눅스와 인프라 구축 경험은 클라우드 및 백엔드 업무에도 도움이 된다고 확신합니다.
기술 스택
프레임워크
경력 사항
- LG전자 전기차 충전관제시스템 LG e-Centric 백엔드 개발
- 전기차 충전기의 충전 단가 관리 시스템 API 개발
- Jest와 Docker를 이용한 테스트 자동화 도입
- Express.js 및 knex.js 기반 프로젝트의 리팩토링 베이스 코드 작성
- 팀 내 Ubuntu 기반 빌드서버 및 개발서버 구축 / 관리
-
Skill keywords
Javascript Typescript AWS Lambda MySQL
- 윈도우 기반 학생 스마트기기 제어 프로그램 프론트엔드 개발
- P2P 기반 학생 화면 공유 기능 개발
-
Skill keywords
C# Javascript React
참여 프로젝트
- 전기차 충전기 충전 단가 관리 API 개발
-
담당 API에 Jest와 Docker를 이용, 별도 환경 설정 없이 동작하는
integration test 환경 구축
- QA 버그 리포트 점유율 1% 미만 달성
- CommonJS에서 ESM으로 레거시 코드 변환 진행
-
e-Centric manager App 리팩토링 가이드 작성
- express.js의 라우터 및 knex 랩핑함수 타입 등 공통 함수 작성
- 주니어 개발자 코드리뷰 진행
- 환경부 API를 이용한 이마트 - 타 충전기 사업자 로밍 API 개발
- 이마트 - S사 연동 API 개발
- Lambda가 여러 Lambda event를 발생하는 방식 이용, 대규모 데이터(10만건) batch 동기화 로직 개발
- Python, 구글 스프레드시트 이용한 대학교 공지사항 스크랩 / 메일 발송 서비스
- Raspberry Pi 3B+, Ubuntu 기반 batch 실행 인프라 구축
- 매일 저녁에 공지사항 스크랩하여 신청한 인원에게 메일로 발송
- 한국항공대학교, 상명대학교 누적 약 150명에게 서비스 제공
- 다른 사람에게 서비스를 제공하고 싶어서 제작한 첫 프로젝트
- Github repo
세미나
- 현업에서 발생한 문제에 대한 원인, 관련 개념 및 해결 방안을 팀 내 공유 목적으로 진행한 세미나
- Content Security Policy의 개념, 작동 원리와 React에서 효율적으로 사용하는 방법에 대한 강의
- Content Security Policy - 세미나 자료
- React에서의 Content Security Policy - 실습 자료
- Wireshark를 이용하여 사내망에서의 DNS 쿼리, HTTP(s) 패킷을 확인하는 실습
- 실습 자료
- OSI7 Layer를 중심으로 한 네트워크에 대한 기초 개념 강의
- 세미나 자료