채민관 (Chae Mingwan)

Fullstack Developer

Profile
Phone:010-7107-9301
Email:mingfordev@gmail.com

소개

코드 간 의존성을 낮추어 유지 보수가 쉬운 아키텍처를 설계하기 위해 고민하고,
사용자의 요구사항과 의사소통을 중요시하는 개발자 채민관 입니다.

학력

서울시립대학교

2019.03 ~ 2025.08 | 컴퓨터과학부

경력

코딧[블로그]

2025.03 ~ 2025.07 | 백엔드 인턴


소개

기업에게 법·규제·정책 솔루션을 제공하는 B2B 스타트업입니다.
API 개발, 알림 서버, 크롤링, Opensearch 인덱싱 등 다양한 부분을 경험하고 서비스에 기여했습니다.


사이트 주소: https://thecodit.com


배운것

  • 애자일 개발 프로세스 하에서 2~3주 단위의 스프린트를 운영하고, 매일 스크럼 회의를 통해 진행 상황을 공유하며 신속하게 이슈를 해결하는 방법을 경헙했습니다.
  • Jira, Confluence, Slack 등 다양한 협업 도구를 활용하여 팀원들과의 원활한 소통과 협업을 경험했습니다.
  • 실제 운영 중인 프로덕션 코드베이스를 직접 다루며 코드 이해력과 문제 해결 역량을 강화했습니다.
  • 수백만 건 규모의 데이터를 Opensearch에 인덱싱하여, 인덱스 구조 최적화와 단계별 캐싱 전략을 적용함으로써 검색 쿼리 성능을 향상시켰습니다.

기술 스택

  • Express.js를 사용해 RESTful API 서버를 설계·개발했습니다.
  • MySQL을 기반으로 복잡한 조인 쿼리와 인덱스 튜닝을 통해 데이터베이스 성능을 최적화했습니다.
  • AirFlow를 활용해 ETL 워크플로우를 정의하고, 스케줄러를 통해 배치 작업 자동화를 구현했습니다.
  • Opensearch를 사용해 데이터 인덱싱 및 검색 인프라를 구축했습니다.

협업 프로젝트

About 프로젝트[블로그]

2023.01 ~ 현재 | 백엔드 개발자


프로젝트 소개

대학생을 위한 모임 플랫폼 서비스입니다. 스터디, 번개 모임, 소모임 등의 기능을 제공하며, 현재 google analytics 기준 400명 정도의 DAU(Daily Active User)를 유지하고 있습니다.


사이트 주소: https://study-about.club/

접속하여, 게스트 로그인을 클릭해 사이트를 체험할 수 있습니다.

Backend: https://github.com/AboutClan/nest-back

Frontend: https://github.com/AboutClan/About


기여도

  • Nest.js 프레임워크를 이용해 클린 아키텍처 개념 적용[블로그]
  • 도메인 주도 개발을 적용하기 위한 리팩토링을 진행
  • Filebeat, ElasticSearch, Logstash, Kibana를 Docker-compose로 묶어 Docker container의 로그를 시각화하는 파이프라인 구성[블로그]
  • AWS codepipeline을 이용해 EC2에 Docker container로 프론트엔드, 백엔드를 배포하는 CI/CD 파이프라인 구성
  • 스터디 매칭을 위해, DBSCAN 알고리즘을 응용한 클러스터링 알고리즘 구현[블로그]
  • Redis를 도입하여, 캐싱을 사용해 api 응답속도를 줄이고, 알림 서비스의 메시지 큐로 활용[블로그]

기술 스택

  • Nest.js를 도입하여 DI/DIP 개념을 적용함으로써 데이터베이스의 결합도를 낮추고 유지보수성을 개선했습니다.
  • MongoDB를 활용하여 스키마 변경이 잦은 데이터 모델에 유연하게 대응할 수 있도록 설계했습니다.
  • AWS에 배포를 구성하여 배포 비용을 절감하고, 다양한 기능을 사용해보았습니다.
  • Docker를 활용하여 애플리케이션을 컨테이너화하고, 일관된 개발 및 배포 환경을 유지하고 있습니다.
  • Redis를 메시지큐와 캐싱기능을 위해 사용하고 있습니다.

트러블슈팅

    # 문제 상황
    사용자가 증가하며 서버에 예기치 못한 에러가 자주 발생하고 종료되는 일 발생
    # 해결 방법
    발생 가능한 예외 상황에 대해 에러 타입을 명시적으로 정의하고, 코드 전반에 걸쳐 체계적인 예외 처리 로직을 정비하여 안정성을 높였습니다.
    ELK 스택(Elasticsearch, Logstash, Kibana) + Filebeat을 도입하여 로그를 중앙 집중식으로 관리, 모니터링함으로써 문제 발생 시 신속하게 원인을 파악하고 대응하고 있습니다.
    # 문제 상황
    초기 페이지 렌더링에서, 로딩 속도가 느려져 사용자 경험이 안좋아지는 상황 발생
    # 해결 방법
    MongoDB에서, 불필요한 populate 연산을 최소화하고, 인덱싱을 통해 데이터베이스 인덱스를 재구성하여 쿼리 처리 속도를 향상했습니다.
    ELK스택을 사용해 시간이 오래 걸리는 API를 시각화하여 찾아내고, Redis 캐싱 기능을 이용해 해당 API를 캐싱하여, 최종적으로는 데이터 처리속도를 절반 가량 줄였습니다.[블로그]
    # 문제 상황
    사용자가 증가하며 RAM 사용량도 증가하고, Heroku의 높은 비용을 감당하기 어려워짐
    # 해결 방법
    AWS에서 EC2인스턴스를 대여하고, Codepipeline을 사용해 Github의 코드를 트래킹하여 Docker Container로 배포하는 CI/CD pipeline 구성
    기존 Heroku 배포 방식보다 높은 RAM을 사용하며, 매달 100달러 가량의 비용 절감

개인 프로젝트

주식 시뮬레이션[블로그]

2024.12 ~ * | 풀스택 개발


프로젝트 소개

한국투자증권 api를 이용해, 실시간 한국 주식, 미국 주식 데이터를 받아오고 거래 시뮬레이션을 해볼 수 있는 서비스를 개발했습니다.


사이트주소: https://beming-stock.kro.kr/

* Ram 1GB 인스턴스에 Docker를 사용하고 있어, 사이트가 느리게 작동할 수 있습니다. 특히 초기 데이터 로딩때 많은 시간이 소요됩니다.

Frontend: https://github.com/beming-dev/stock-simulator-front

Backend: https://github.com/beming-dev/stock-simulator-back


기여도

  • 실시간 데이터를 받아오기 위해, 한투api와 백엔드 서버 사이의 WebSocket, 백엔드 서버와 클라이언트 사이의 WebSocket을 연결하는 아키텍처 구성
  • Oracle cloud와 Jenkins, Gitlab webhook을 이용한 CI/CD 파이프라인 구축
  • kubernetes와 argoCD를 이용한 배포 자동화를 적용해보고, 서비스의 가용성을 높였습니다.

기술 스택

  • Spring을 사용하여 유지보수성과 확장성을 고려한 백엔드를 구축했습니다.
  • MySQL를 사용하여 정규화된 데이터 모델을 설계하고, 인덱싱과 다양한 쿼리를 경험해봤습니다.
  • React.js를 사용하여 컴포넌트 기반 UI를 설계하고, 상태 관리를 효율적으로 처리하여 사용자 경험을 최적화했습니다.
  • tailwindCSS를 사용하여 유틸리티 기반 스타일링 으로 일관된 디자인을 유지하면서도 개발 속도를 향상시켰습니다.

트러블슈팅

    # 문제 상황
    초기에 WebSocket 연결이 늘어날수록 데이터 전송이 지연되고, 중복 전송되는 문제가 발생
    # 해결 방법
    같은 데이터를 요청하는 WebSocket 연결을 그룹화하고, 데이터가 들어올 때 Event를 활용한 브로드캐스트 방식으로 각 클라이언트에 전송하도록 구성하여 지연과 중복 전송 문제를 해결했습니다.
    [블로그]
    # 문제 상황
    Oracle Cloud에 배포된 인스턴스에서 Jenkins 서버를 구동하고, GitLab Webhook을 통해 빌드-배포 자동화를 구축하려 했으나, 초기 설정 시 네트워크 보안 그룹 혹은 방화벽 설정 누락으로 인해 Webhook이 Jenkins에 도달하지 못하거나, Docker 등 컨테이너 환경에서 필요한 포트가 제대로 오픈되지 않아 배포 자동화가 실패하는 문제 발생.
    # 해결 방법
    Oracle Cloud VM 인스턴스의 보안 규칙(Inbound/Outbound Rules)과 Jenkins가 사용하는 포트를 허용했습니다.
    GitLab 프로젝트 설정에서 Webhook URL을 설정하고, 정상적으로 HTTP 200 응답을 받는지 테스트했습니다.

기술 스택

Backend

Express.js
  • Node.js 기반의 경량 프레임워크로 RESTful API 서버를 구축한 경험이 있습니다.
  • 미들웨어를 활용해 인증/권한 처리, 로깅 등을 유연하게 구성합니다.
  • Express.js의 Error Handling 과정을 이해하고 있고, Custom Error Handler를 구성할 수 있습니다.[블로그]
Nest.js
  • 모듈(Module) 구조와 의존성 주입(Dependency Injection) 등을 활용해 아키텍처를 설계합니다.
  • 클린아키텍처 구조를 따르기 위해 노력하고, 코드간 의존성을 제거하기 위해 노력합니다.
  • 데코레이터 기반으로 라우팅, 파이프, 가드 등을 설정해 유연하고 확장성 있는 API를 구성해본 경험이 있습니다.
Spring
  • Spring Boot를 사용하여 MVC 아키텍처로 웹 애플리케이션을 구축한 경험이 있습니다.
  • 스프링 DI/IoC 컨테이너를 통해 객체 의존성을 관리하고, AOP로 공통 기능을 추상화합니다.
  • JPA/Hibernate 등 ORM 기술을 사용해 데이터베이스 연동 및 트랜잭션 관리를 구현해본 경험이 있습니다.

Frontend

React.js
  • 함수형 컴포넌트 및 React Hooks를 능숙하게 활용합니다.
  • Redux, Recoil을 사용해 전역 상태를 효율적으로 관리해본 경험이 있습니다.
  • 컴포넌트 구조 설계와 재사용성을 고려한 UI 개발에 익숙합니다.
Tailwind.css
  • Utility-First 기반으로 빠르게 UI를 구현하고, 일관된 디자인 시스템을 유지할 수 있습니다.
  • Tailwind.config 설정을 통해 테마(색상, 폰트 등)를 커스터마이징해본 경험이 있습니다.
  • 반응형 디자인을 손쉽게 적용해 다양한 해상도에 맞춰 스타일링할 수 있습니다.
Next.js
  • Server-Side Rendering(SSR), Static Site Generation(SSG) 등 다양한 렌더링 방식을 활용할 수 있습니다.
  • 파일 기반 라우팅과 API Routes로 백엔드 로직을 구성해본 경험이 있습니다.
  • getServerSideProps, getStaticProps를 이용해 성능과 SEO를 고려한 프로젝트를 진행해본 경험이 있습니다.

Database

MySQL
  • 관계형 데이터베이스를 설계하고 정규화 할 수 있습니다.
  • 인덱스를 활용한 성능 최적화, Join을 효율적으로 사용하는 방법을 잘 알고 있습니다.
  • 트랜잭션과 락(Lock) 메커니즘을 이해하고 있으며, 데이터 무결성 유지를 위한 다양한 기법을 알고있습니다.
MongoDB
  • Document 기반 비관계형 DB로, 스키마가 유연한 프로젝트에서 활용해본 경험이 있습니다.
  • Aggregation을 사용해 복잡한 데이터 처리 로직을 효율적으로 구현할 수 있습니다.
Redis
  • Redis에서 제공하는 기본 자료구조에 대해 알고있습니다.[블로그]
  • 인메모리 캐싱을 활용해 DB 부하 감소 및 애플리케이션 응답 속도를 최적화해본 경험이 있습니다.[블로그]
  • Redis를 메시지 큐로 활용해 실시간 메시징 구조를 구축해본 경험이 있습니다.[블로그]

Etc.

Docker
  • Dockerfile을 작성하여 애플리케이션 환경을 이미지로 빌드하고, 컨테이너로 배포한 경험이 있습니다.
  • Docker Compose를 이용해 DB, 백엔드, 프론트엔드 등 여러 컨테이너 환경을 오케스트레이션해본 경험이 있습니다.
  • CI/CD 파이프라인에서 Docker 이미지를 생성, 배포해본 경험이 있어 자동화에 능숙합니다.
Kubernetes
  • Kubernetes 클러스터를 구성하고, Pod, Service, Deployment 등의 리소스를 관리해본 경험이 있습니다.
  • ArgoCd를 사용하여 GitOps 방식으로 Kubernetes 리소스를 관리하고, 배포 자동화를 구현해본 경험이 있습니다.
AWS
  • EC2, S3, RDS 등 AWS 서비스를 활용하여 인프라를 구성하고, 배포한 경험이 있습니다.
  • IAM을 통해 사용자 및 권한 관리를 설정하고, 보안 그룹을 이용해 네트워크 접근 제어를 구현해본 경험이 있습니다.
Git
  • Git-flow 전략 등을 통해 협업 시 브랜치 및 릴리즈 관리를 체계적으로 해본 경험이 있습니다.
  • rebase와 branch 개념을 이용해 git graph를 깔끔하게 관리하는 것에 관심이 있습니다.
  • Pull Request 기반 코드 리뷰와 Github Issues 연동으로 작업 관리를 진행해본 경험이 있습니다.

기타

교환학생 | The Hague University of Applied Sciences

2023.08 ~ 2024.02

  • Becoming the Next successful online startup 수업 수강
  • 온라인 스타트업을 시작하기 위해 거쳐야하는 과정들을 직접 서비스를 제작하며 경험
  • Next.js와 Next.js api를 이용해 헬스케어 온라인 스타트업 프로토타입 개발

TOEIC (875/990)

2023.02

정보처리기사

2025.06