미리보기
기본 정보
백엔드 개발자로 효율적인 서비스 구조와 안정적인 인프라에 관심이 있습니다. Nodejs와 AWS를 활용한 프로젝트 경험과 CICD 자동화 및 인프라 설계에 대한 경험이 있습니다. 빠르게 변화하는 기술을 학습하고 팀에 기여하며 성장하는 개발자가 되고자 합니다.
기술 스택
JavaScript, Node.js, Socket.io, NestJS, TypeORM, MySQL, Redis, TypeScript, aws-ec2, aws-s3, aws-rds, Docker, nginx, Prometheus, grafana
교육
기타
고등학교 | 이과
2012.03. ~ 2015.02. | 졸업
국립경상대학교
대학교(학사) | 정보통신공학과
2016.03. ~ 2022.02. | 졸업
프로그래머스
사설 교육 | 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)
2024.02. ~ 2024.08. | 졸업
자기소개
[산을 깎아보려는 도전정신]
저는 "산을 만났을 때 돌아가지 말고 부딪혀 봐라"는 도전적인 가치관을 가지고 있습니다. 학부 연구생 시절, 교수님께서 "왜 너희들은 쉬운 길로 돌아갈 생각만 하냐, 산을 깎아 볼 생각은 안 하냐"라는 말씀을 하셨습니다. 이 말씀은 항상 편한 길을 찾던 저에게 큰 깨달음을 주었고, 이후 제 삶에서 도전 정신이란 중요한 역량으로 자리 잡았습니다.
이러한 도전 정신은 학부 자율주행 팀의 팀장으로서 펜실베니아 대학에서 주최한 F1tenth 가상 대회에 도전할 때 빛을 발했습니다. 8개월의 짧은 준비 기간 동안 팀을 이끌며 새로운 기술을 익히고 적용해야 하는 상황에서 여러 번의 실패와 문제를 극복했고, 결국 본선 진출이라는 성과를 이루어낼 수 있었습니다. 이를 통해 도전 정신이 현실적인 성과로 이어질 수 있음을 증명한 중요한 경험이었습니다. 앞으로도 업무를 수행하며 새로운 것을 배우는 데 두려워하지 않고, 도전을 통해 성장하겠습니다.
[호기심과 책임감을 바탕으로 한 성실함]
저는 새로운 기술과 문제 해결에 대한 호기심이 많고, 맡은 일에 책임감 있게 최선을 다하는 성격입니다. 새로운 기술을 배우는 데 거부감이 없고, 이를 적극적으로 프로젝트에 도입해 더 나은 결과를 만들어내기 위해 노력합니다.
Travelevart 팀 프로젝트를 진행할 때 자동화에 관심이 많았던 저는 CI/CD 자동화와 인프라 관리를 주도적으로 맡았습니다. 인프라를 담당하는 제 역할은 프로젝트 개발과 운영에 핵심적인 부분이었고, 제가 책임진 영역에서 문제가 생기면 프로젝트에 큰 영향을 줄 수 있었기 때문에 책임감을 가지고 임했습니다. 이를 위해 Jenkins를 활용한 CI/CD 파이프라인을 구축하여 배포 과정을 자동화하고, AWS를 통한 서버 인프라를 안정적으로 관리하며 프로젝트가 원활하게 진행되도록 노력했습니다. 이러한 호기심과 책임감은 프로젝트 진행에 중요한 역할을 했다고 생각합니다.
[팀과 함께 성장하는 개발자]
저는 효율적인 서비스 구조와 안정적인 인프라를 구축하는 데에 큰 관심이 있습니다. 앞으로 더 깊이 있는 백엔드 지식과 기술을 쌓아나가고 싶으며, 대규모 트래픽을 처리할 수 있는 시스템 아키텍처 설계, 데이터베이스 최적화, 클라우드 환경에서의 자동화와 보안 관리에 대한 경험을 쌓고 싶습니다.
신입으로서 부족한 점이 많지만, 빠르게 변화하는 기술 트렌드에 발맞춰 학습하고 성장하겠습니다. 현재 사용 중인 기술 스택뿐만 아니라 더 나은 성능과 확장성을 제공할 수 있는 다양한 기술들을 익히며 역량을 강화할 계획입니다. 또한 DevOps 분야에서 CI/CD 자동화 프로세스와 서버 모니터링 등을 체계적으로 배워 팀의 개발 효율성을 높이고 싶습니다.
저의 목표는 단순히 기술을 습득하는 것에 그치지 않고, 팀과 함께 성장하는 개발자가 되는 것입니다. 이를 위해 적극적으로 동료와 소통하고 협력하며, 팀에 필요한 기술과 지식을 빠르게 습득해 기여하겠습니다. 장기적으로는 프로젝트 전반의 아키텍처 설계와 운영을 주도할 수 있는 풀스택 개발자로 성장하여 팀의 성과와 회사의 발전에 이바지하고 싶습니다.
프로젝트
캐치마인드
개인
2024.04. ~ 2024.05.
이 프로젝트는 다수의 사용자가 실시간으로 상호작용하며 그림을 그리고 다른 사용자는 해당 그림을 보고 정답을 맞추는 웹 기반 캐주얼 게임입니다. 프로젝트는 Node.js와 Socket.io를 사용하여 서버와 클라이언트 간의 실시간 통신을 구현하고 여러 사용자가 동시에 참여할 수 있는 게임 환경을 제공하는 것을 목표로 했습니다. 게임은 4 주간 4명의 팀원과 함께 진행되었으며 주로 백엔드 로직과 실시간 통신 구현에 집중하여 개발하였습니다.
게임의 주요 기능으로는 실시간 그림 그리기가 있으며 사용자는 자신의 차례에 그림을 그리며 다른 사용자는 그 그림을 보고 실시간으로 정답을 맞출 수 있습니다. 또한 정답 맞추기 시스템을 통해 게임 중에 사용자가 입력한 답변을 즉시 체크하고 가장 먼저 정답을 맞힌 사용자에게 점수를 부여하는 구조를 설계했습니다. 이 모든 과정은 WebSocket 기반의 실시간 통신을 통해 원활하게 이루어집니다.
저는 이 프로젝트에서 로그인 및 인증 시스템을 구현하고 실시간 통신을 담당했습니다. 특히 사용자가 방에 입장하면 소켓 객체를 통해 방 안의 모든 사용자에게 정보를 전달하고 게임이 시작되면 랜덤 단어를 불러와 차례를 알리는 기능을 구현하였습니다. 또한 게임 종료 시 게임 상태를 초기화하여 새로운 게임이 시작될 수 있도록 구현했습니다.
Travelevart
개인
2024.07. ~ 2024.08.
여행지를 선택할 때 겪는 시간적 정보적 부담을 줄이기 위해 기획된 AI 기반 여행지 추천 서비스입니다. 사용자에게 개인화된 여행지 추천과 커스텀 여행 경로를 제공하여 여행 계획을 더 쉽게 세우고 다른 여행자들과 정보를 교환할 수 있도록 돕는 것을 목표로 합니다.
주요 기능으로는 AI 기반 추천 시스템을 통해 사용자 개개인의 선호도에 맞춘 여행지를 추천하고 커스텀 루트 기능을 통해 사용자가 직접 여행 경로를 만들고 이를 공유할 수 있도록 구현했습니다. 또한 커뮤니티 기능을 통해 사용자들은 자신만의 여행 루트에 대한 게시글을 작성하고 다른 사용자들과 소통할 수 있습니다. 주간 인기 게시 물은 Redis 캐시 시스템을 활용해 데이터베이스 부하를 줄이면서 빠르게 조회할 수 있도록 최적화했습니다.
프로젝트에서 저는 AWS 인프라 구축과 CI/CD 자동화를 담당했습니다. AWS EC2를 사용해 빌드 서버와 배포 서버를 구축하고 Docker 와 Jenkins를 활용한 무중단 배포를 구현하였습니다. 또한 Nginx 를 사용하여 로드 밸런싱과 TLS Termination을 설정함으로써 서버의 부하를 효과적으로 분산시키고 보안을 강화하였습니다. S3와 CloudFront를 통한 CDNContent Delivery Network 구성을 통해 정적 리소스 전송 속도를 최적화했으며 서버 성능 모니터링을 위해 Prometheus와 Grafana를 도입하여 실시간으로 서버 상태를 모니터 링하고 경고 알림 시스템을 구축했습니다.