미리보기
기본 정보
서울대학교 전기정보공학부 출신으로 naver business platform에서 인턴을, com2us에서 백엔드 서버 개발자로 근무한 경험이 있는 프로그래머입니다. 현재는 채팅 어플리케이션을 개발하는 토이 프로젝트의 선장으로 함께 성장해나가는 것을 고민하고 있습니다. 대용량 데이터를 다루는 지속 가능한 소프트웨어 엔지니어가 되는 것을 목표로 학습하며 이를 전파하기 위해 블로그에 글을 작성 중입니다.
기술 스택
Python, C++, Go
경력
네이버 비즈니스 플랫폼
인턴 | Cloud Development
2019.07. ~ 2019.08. (2개월)
대용량 서버로그를 분산 처리하는 플랫폼 작성
컴투스주식회사
사원 | Central Server실 기술지원팀
2021.01. ~ 2022.05. (1년 5개월)
c++, lua, mssql을 통한 라이브 서버 코드 유지 보수 및 데이터베이스 관리
프로젝트
채팅 어플리케이션
개인 팀
2024.02. ~ 진행 중
https://github.com/kaestro/ChatApplication
개요
백엔드 개발에서 요구되는 능력들 중 실시간 통신, 데이터베이스 및 API 서버 구축, 인증 및 보안 등의 능력 향상을 목적으로 한 채팅 어플리케이션입니다.
기초적인 채팅 메시지 전송 및 수신, 사용자 인증, 사용자 정보 관리에서 시작해, 최종적으로는 대규모 인원의 동시 접속 및 트래픽을 처리할 수 있는 서버를 구축하는 것을 목표로 하고 있습니다.
목차
- 팀원 구성 및 협업 방식
- MVP(Mininum Viable Product)
- 기술 스택
- 확장 계획
팀원 구성 및 협업 방식
총 3명의 팀원(TLOWAC, neuma, kaestro)으로 구성되어 있으며, 원활한 협업을 위해 노력하고 있습니다.
이를 위해 notion, github actions, trunk based development 등을 통해 생산성과 협업능력을 향상하고 있습니다. 세부적으로는 매 주 1회 회의를 통해 진행 상황 공유 및 방향성을 정하였으며, unit test를 포함해서 직접적인 push가 불가능한 main branch에 merge하기 전에는 code review를 거치도록 하였습니다.
MVP(Mininum Viable Product)
현재 목표로 하는 채팅 프로그램의 가장 기본적인 기능은 다음과 같습니다.
1. 로그인 및 회원가입
2. 채팅방 생성 및 입장
3. 채팅 메시지 전송 및 수신
4. 채팅 기록 저장
기술 스택
현재 진행 중인 프로젝트의 기술 스택은 다음과 같습니다.
- 웹서버
- goLang
- gin
- 데이터베이스
- postgresql
- 세션 관리
- redis
- 컨테이너
- docker
이와 관련해서 선택한 이유는 다음에서 확인하실 수 있습니다.
확장 계획
목표로하고 있는 대규모 인원과 트래픽은 다음과 같이 정의했습니다.
1. 15000명 이상의 동시 접속자
2. 분당 7000건 이상의 메시지 전송
이는 분당 1억건 이상의 메시지 전송을 처리할 수 있는 서버를 구축해야 한다는 것을 의미합니다.
게시판 API 서버
개인
2024.02. ~ 2024.02.
https://github.com/kaestro/CommunityBoardAPI
게시판에 사용하는 기본적인 api인 login, post 등을 fastapi를 통해 구현한 서버입니다.