미리보기
기본 정보
프로덕트를 관통하는 개발자, 남궁준입니다. 서비스의 핵심 로직을 담당하는 백엔드를 개발하며, 단순히 기술적인 관점에서 주어진 문제를 해결하는데에 그치지 않고, 서비스의 전반적인 흐름을 파악하기 위해 노력합니다. 동료 개발자 뿐만 아니라 기획자와도 주도적으로 소통하여, 문제를 해결해 나가는 것을 목표하고 있습니다. 새로운 기술을 학습하고 적용하는것을 좋아합니다. 그럼에도 혼자만의 시선으로는 사각지대가 존재한다는 사실을 알기에, 동료들과 함께 공유하며 학습하고자 합니다.
기술 스택
Java, Node.js, Spring Boot, MySQL, Docker, Redis, MongoDB, Kubernetes, docker-compose, AWS, NestJS, Linux, bash
경력
주식회사 레드브릭
사원 | 개발팀 | 재직 중
2023.01. ~ 재직 중 (1년 9개월)
redbrick.land BackEnd 개발
ExpressJS를 기반으로 플랫폼 및 어드민의 BE API를 개발하였습니다.
기존에 사용하던 Discord 봇에서 쌓인 포인트와 연동되는 플랫폼 포인트 시스템을 개발하였습니다.
Colyseus 기반의 멀티플레이어 서버를 관리하고, 배포를 위한 bash 스크립트를 작성하여 누구나 쉽게 배포 가능하도록 개선했습니다. MongoDB 및 Redis 기반의 scale-up을 적용하고, 서버의 성능을 loadtest를 통해 측정했습니다.
AWS 기반의 인프라를 관리하였습니다.(EC2, ELB, Route53)
redbrickclass.ai(redbrickmakers.com) BE 개발 & 인프라 관리
DB 구조 설계에 참여하였습니다.
ExpressJS를 기반으로 플랫폼 및 어드민의 BE API를 개발하였습니다.
나누어져 있던 프로젝트를 yarn workspace 기반의 모노레포로 전환하였습니다.
Github Action 기반 환경 별 배포 파이프라인을 구축하였습니다.
Alibaba cloud 기반의 인프라를 구축 및 관리하였습니다.(ECS, OSS, ApsaraDB, SLB, CDN, DNS)
레거시 프로젝트의 데이터(DB 데이터, asset등)을 bash 스크립트를 사용하여 현재의 플랫폼으로 마이그레이션 하였습니다.
대교 사고력코딩 BE 개발 & 인프라 관리
DB 구조 설계에 참여하였습니다.
NestJS를 기반으로 학생 및 선생님 페이지의 BE API를 개발하였습니다.
대교의 성장판 시스템과 연동되는 부분을 개발하였습니다.
레거시 프로젝트의 데이터를 bash 스크립트를 사용하여 현재의 플랫폼으로 마이그레이션 하였습니다.
프로젝트
Meeplo
삼성청년소프트웨어아카데미(SSAFY)
2022.10. ~ 2022.11.
만남을 위한 계획부터 추억으로 남기는 일까지, 그 모든 과정을 제공하는 서비스
Github | Notion
팀 구성
Back-End + Infra 1명
Front-End 3명
Back-End 2명
기술 스택
Infra
Kubernetes, Docker, AWS(EC2, S3), Nginx
CI/CD
Jenkins
Back-End
Spring Boot, Spring Security, MySQL, Redis, JPA, Swagger
Cooperation tools
Jira, Notion
역할
전반적인 Infra + CI/CD 구축
관리형 서비스 EKS를 사용하지 않고, EC2 4대를 사용하여 직접 Kubernetes cluster를 구축하였습니다.
Horizontal Pod Autoscaling을 통해 다수의 사용자가 몰리는 상황에 대하여 대비하였습니다. 1분간 1800번의 요청으로 부하테스트를 진행한 결과, 적용 전 p99 1022.7ms -> 적용 후 29.1ms로 안정적인 서버 환경을 구현할 수 있었습니다.
각 서비스(FE, BE API, map, recommendation)별로 Jenkins 기반의 CI/CD를 설정하여 push 이벤트 발생 시 자동으로 배포되도록 구성하였습니다.
팀에서 사용하는 AWS의 리소스를 IAM을 통해 관리하였습니다.
서비스의 상태를 실시간으로 확인할 수 있는 Prometheus + Grafana 기반의 모니터링 시스템을 구성하였습니다.
Spring Security 설정
Access token + Refresh token 기반의 인증을 구현하였습니다.
Sarac(詞樂)
삼성청년소프트웨어아카데미(SSAFY)
2022.09. ~ 2022.10.
책을 좋아하거나 책에 관심이 있는 사람들을 위한 공유 및 소통의 장
Github | Notion
팀 구성
Front-End + Back-End 6명
기술 스택
Infra
Docker-compose, Docker, AWS(EC2, S3), Nginx
CI/CD
Jenkins
Back-End
SpringBoot, Spring Security, MySQL, Redis, JPA
Front-End
Vue2, Vuetify
Cooperation tools
Jira, Notion
역할
전반적인 Infra + CI/CD 구축
Docker compose를 사용하여 FE 및 BE 컨테이너의 동시 배포를 구현하였습니다.
Jenkins 기반의 CI/CD를 구축하여 push 이벤트 발생 시 자동으로 배포되도록 구성하였습니다.
Test/Production 환경을 분리하여 충분한 테스트 이후 실 서비스에 반영되도록 구성하였습니다.
실 서비스의 경우 Blue-Green 배포 전략을 사용하여 무중단 서비스를 구현하였습니다.
기능 구현(FE + BE)
사용자의 현재 위치 근처에 있는 카페들의 소음 정보를 표시하는 페이지를 제작하였습니다.
Tone.js 라이브러리를 활용하여 사용자가 카페의 소음을 측정하고 공유할 수 있는 기능을 구현하였습니다.
Recourta
삼성청년소프트웨어아카데미(SSAFY)
2022.08. ~ 2022.09.
강의자와 수강생 모두를 위한 화상 강의 시스템
Github | Notion
팀 구성
Front-End 3명
Back-End 3명
기술 스택
Infra
Docker, AWS(EC2), Nginx, OpenVidu
CI/CD
Jenkins
Back-End
SpringBoot, Spring Security, MySQL, Redis, JPA
Cooperation tools
Jira, Notion
역할
Infra + CI/CD 구축
Jenkins 기반의 CI/CD를 구축하여 branch 별 push 이벤트 발생 시 자동으로 배포되도록 구성하였습니다.
Docker를 사용하여 FE/BE 서비스를 컨테이너화 하여, 별도로 관리하였습니다.
Backend
Access token + Refresh token 기반의 인증을 구현하였습니다.
학생의 수업에 대한 총 접속 시간을 합산하여 출석체크 기능을 구현하였습니다.
강의를 설정하면 지정한 회차만큼 자동으로 수업을 생성해주는 기능을 구현하였습니다.
포트폴리오
교육
삼성청년소프트웨어아카데미(SSAFY)
사설 교육 | Java - 전공자반
2022.01. ~ 2022.12. | 졸업
그린컴퓨터아카데미
사설 교육 | 자바개발자양성과정
2021.04. ~ 2021.09. | 졸업
연세대학교
대학교(학사) | 건설환경공학과
2014.03. ~ 2022.02. | 졸업
대진고등학교
고등학교 | 이공계
2011.03. ~ 2014.02. | 졸업