미리보기
기본 정보
프로덕트를 관통하는 개발자, 남궁준입니다. 서비스의 핵심 로직을 담당하는 백엔드를 개발하며, 단순히 기술적인 관점에서 주어진 문제를 해결하는데에 그치지 않고, 서비스의 전반적인 흐름을 파악하기 위해 노력합니다. 동료 개발자 뿐만 아니라 기획자와도 주도적으로 소통하여, 문제를 해결해 나가는 것을 목표하고 있습니다. 새로운 기술을 학습하고 적용하는것을 좋아합니다. 그럼에도 혼자만의 시선으로는 사각지대가 존재한다는 사실을 알기에, 동료들과 함께 공유하며 학습하고자 합니다.
기술 스택
Java, Node.js, Spring Boot, MySQL, Docker, Redis, MongoDB, Kubernetes, docker-compose, AWS, NestJS, Linux, bash
경력
주식회사 레드브릭
사원 | 개발팀 | 재직 중
2023.01. ~ 재직 중 (2년 1개월)
redbrick.land BE 개발
플랫폼 및 어드민 BE API를 개발하고, DB 구조를 개선하였습니다.
Discord 서버에서 사용하던 봇에서 쌓인 포인트를 플랫폼 포인트와 연동하는 시스템을 개발하였습니다.
Colyseus 멀티플레이어 서버를 관리하고, 배포를 위한 bash 스크립트를 작성하여 팀원들이 쉽게 배포 가능하도록 개선했습니다. MongoDB 및 Redis 기반의 scale-up을 적용하고, 서버의 성능을 loadtest를 통해 측정했습니다.
AWS 기반의 인프라를 관리하였습니다.
사용 기술 : Express, MongoDB, Redis, AWS(ELB, EC2, S3)
redbrickclass.ai(redbrickmakers.com) BE 개발 & 인프라 관리
DB 구조를 설계하였습니다.
플랫폼 및 어드민 BE API를 개발하였습니다.
개별 레포지토리로 되어있던 4개의 프로젝트를 yarn workspace 기반의 모노레포로 통합하였습니다.
Github Action 기반 환경 별 배포 파이프라인을 구축하였습니다.
Alibaba cloud 기반의 인프라를 구축 및 관리하였습니다.
레거시 프로젝트의 데이터(DB 데이터, asset등)을 해당 플랫폼으로 마이그레이션 하였습니다.
사용 기술 : Express, Redis, Alibaba cloud(ECS, OSS, ApsaraDB, SLB, CDN, DNS), shell script
대교 사고력코딩과목 BE 개발 & 인프라 관리
DB 구조를 설계하였습니다.
학생/선생님 페이지의 BE API를 개발하였습니다.
대교의 성장판과 연동되는 시스템을 개발하였습니다.
레거시 프로젝트의 데이터를 현재의 플랫폼으로 마이그레이션 하였습니다.
사용 기술 : NestJs, Typescript, Redis, Alibaba cloud, shell script
프로젝트
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 기반의 인증을 구현하였습니다.
학생의 수업에 대한 총 접속 시간을 합산하여 출석체크 기능을 구현하였습니다.
강의를 설정하면 지정한 회차만큼 자동으로 수업을 생성해주는 기능을 구현하였습니다.
포트폴리오
URL
교육
삼성청년소프트웨어아카데미(SSAFY)
사설 교육 | Java - 전공자반
2022.01. ~ 2022.12. | 졸업
그린컴퓨터아카데미
사설 교육 | 자바개발자양성과정
2021.04. ~ 2021.09. | 졸업
연세대학교
대학교(학사) | 건설환경공학과
2014.03. ~ 2022.02. | 졸업
대진고등학교
고등학교 | 이공계
2011.03. ~ 2014.02. | 졸업