Contact.
Email. uwoobeat@gmail.com
Channel.
GitHub. https://github.com/uwoobeat
Blog. https://uwoobeat.dev
Linkedin. uwoobeat
Introduce.
주변의 실제 문제를 풀어나갑니다
현실에 실존하는 문제를 풀 때 즐거움을 느낍니다. 기술적·비기술적 방법을 가리지 않고 문제를 해결하기 위해 최선을 다합니다.
이후 운영 과정에서 겪었던 문제와 구조적 한계를 기술적으로 해결하기 위해 GDSC Hongik 개발팀을 신설하여 팀 리드 및 백엔드 리드로 활동하고 있습니다. 24.09 기준 9개월 이상 다양한 내부 프로덕트(와우온보딩, 와우어드민, 와우클래스)를 개발하고, 매 학기 새로운 가설을 세우고 실험하며 커뮤니티를 활성화하기 위해 노력합니다.
현재 3학년 2학기 휴학 중이며, (주)에프아이솔루션에서 백엔드 엔지니어로 근무하고 있습니다.
Work Experience.
(주)에프아이솔루션
Backend Engineer
Freelancer
2024.01 - current
FISQ 공정관리시스템
2024.05 ~ current
•
백엔드 관련 작업을 총괄하여 전체 설계 및 80+% 이상의 기능 구현
•
ECS + Fargate 기반 아키텍처 구성
◦
비용 절감
◦
워크플로 최적화로 배포 시간 14분 → 5분으로 개선
•
외부 기관 제출을 위해 복잡한 레이아웃을 가진 여러 개의 엑셀 양식을 단기간 내에 완성해야 하는 상황에서, 각 양식을 손쉽게 선언형으로 그릴 수 있는 내부 엑셀 유틸리티를 개발하여 작업 속도 향상
◦
기반 컴포넌트를 상속하여 다양한 커스텀 컴포넌트로 확장 가능 (열, 행, 테이블, 키-값 컴포넌트 등 존재)
◦
템플릿 메서드 패턴 활용하여 컴포넌트 디자인 및 폰트 스타일을 자유롭게 커스터마이징할 수 있게 구현
•
수백만 건의 데이터에 대한 엑셀 다운로드에서 발생하는 OOM 문제 해결
◦
플레임 그래프 프로파일링을 통해 많은 엔티티가 영속성 컨텍스트에 의해 트래킹되어 전반적인 힙 메모리 사용량이 커지는 문제 발견 → DTO Projection을 사용하도록 개선
◦
전체 데이터를 메모리에 올리면서 발생하는 OOM 회피하기 위해, 일부 데이터만 Cursor-based pagination으로 쿼리 후 SXSSF 방식으로 슬라이딩 윈도우 크기만큼의 엑셀 데이터를 힙에 유지하도록 변경
◦
개선 후 작업 시간 30%, 최대 힙 메모리 사용량 66% 개선 (97s → 70s, 2042MB → 695MB)
•
Prometheus + Grafana 기반 성능 모니터링 시스템 구축
◦
병렬 다운로드 상황에서 서버가 조용히 다운되는 이슈를 APM 분석을 통해 트러블슈팅 (링크)
◦
대량의 트래픽 상황에서 API 레이턴시 증가 시 프로메테우스 메트릭이 수집되지 않는 이슈 → 메트릭 수집 주기를 조정하여 짧은 interval로 인한 timeout 케이스 제거하도록 해결
•
DDD-Lite 적용
◦
도메인 서비스 및 애그리거트 루트 개념을 사용하여 복잡한 공정관리 정책을 도메인 로직으로 구현
•
50만 건 이상의 배치 삽입 기능을 구현하여 7~8분 대에서 7초로 개선
아이 돌봄 정보제공 서비스 ‘아이러빗’
2024.01 ~ 2024.05
•
Enum을 활용한 카테고리 검색 기능 구현
◦
V1과 V2 간 상호운용을 위해 DB 스키마를 변경할 수 없는 상황
◦
카테고리 depth 구조를 Enum으로 나타내고, 기존 한글로 저장되어 있던 값을 Enum Converter를 사용하여 매핑하는 식으로 구현
•
레거시 이미지 로직 리팩토링
◦
모든 테이블에 이미지 URL 컬럼을 추가하던 기존 방식을, 이미지 테이블에 저장하도록 마이그레이션하여 다양한 이미지 관련 요구사항에 대응할 수 있도록 구현
◦
이미지 리팩토링 과정에서 이미지 URL을 사용하는 수십 개의 조회 API에서 변경이 발생하는 문제를, 템플릿 메서드 패턴을 통해 기존 인터페이스와 호환되도록 만들어 해결
(주)에프아이솔루션
Backend Engineer
Intern
2023.06 - 2023.10
콜센터 백오피스
2023.06 ~ 2023.10
•
장기간 방치되어 있던 레거시 프로젝트에 대한 문서화 (ERD, API 스펙, 기능 명세)
•
개발 서버 배포 및 CI/CD 파이프라인 구축
•
통합 테스트 작성을 통해 회귀 방지 영역을 설정하는 레거시 리팩토링 전략 수립
간편 지문등록 서비스
2023.08 ~ 2023.10
•
전체 서비스 기획 / 설계 / 개발 담당
◦
사업본부, 콜센터 등 유관부서와 긴밀히 소통하여 짧은 기간(2개월)동안 서비스 완성
•
기존 수기로 진행되던 복잡한 운영 정책을 이관 과정에서 간소화하여, 처리 시간을 1달 이상 단축시킴
•
유저의 서브타입이 추가되면 인증 로직이 영향받는 문제를 해결하기 위해 다이나믹 팩토리 패턴을 사용하여 서브타입의 레포지터리를 동적으로 결정하는 기능 구현
•
인증 로직과 비즈니스 로직이 다른 트랜잭션에 속하여, 추가 쿼리 없이 엔티티 정보를 전달할 수 없는 문제를 해결하기 위해 쿼리 메서드를 람다식으로 변환, 지연 평가 특성을 활용하여 해결
Projects
와우디벨로퍼스 플랫폼
매 학기 새로운 가설을 세우고 실험하면서 커뮤니티 참여도를 높이기 위해 노력함
•
디스코드 봇 라이브러리 JDA와 Spring Boot 간 연동
◦
AOP를 활용한 전역 예외 처리기 구현
◦
JDA 이벤트를 스프링 이벤트와 통합
•
(와우온보딩) 회비 납부를 위한 결제, 쿠폰, 멤버십 도메인 개발
◦
비영리단체 설립 및 법인계좌 발급, 토스페이먼츠 PG 계약 등 결제 연동에 필요한 전체 행정 · 개발 업무 담당
•
(와우클래스) 과제 채점 기능 개발
◦
채점 관련 비즈니스 로직이 Github API 연동 과정에서 인프라 레이어로 누출되는 문제를 해결하기 위해, 람다의 지연 평가 특성을 활용하여 도메인 서비스에서 호출되는 시점에 API 호출이 실행되도록 하는 기능 구현
•
DDD-Lite 도입
◦
응용 레이어 로직을 도메인 서비스로 추출하여 유지보수성 향상, 도메인 테스트로 전환하여 테스트 생산성 및 실행속도 향상
◦
운영 정책이 복잡해지며 하나의 서비스에서 다른 서비스를 호출하는 중복 코드들이 자주 등장. 복잡한 서비스 간 의존 관계를 도메인 이벤트 기반으로 끊어내어 SoC 지키도록 구현
•
Sentry를 활용한 에러 모니터링 시스템 구축
10MM, 하루 10분으로 시작하는 습관 만들기
IT연합동아리 ‘디프만(DEPROMEET)’ 14기에서 출시한 프로덕트
•
인증 / 인가, 리액션 API, 피드 API 리팩토링 담당
•
OpenID Connect 기술로 소셜 로그인 기능을 구현하여, 기존 OAuth2 방식 대비 여러 프로바이더를 빠르게 연동할 수 있도록 함
•
이미지 업로드 과정에서 오류 발생 시 누적된 미션 시간이 유실되는 문제를 해결하기 위해, 중간 결과를 Redis에 저장하는 미션 인증 플로우를 제안, 부정적 사용자 경험을 제거하는 데 기여
•
백엔드 개발에서 나아가 프로덕트 성장을 위해 적극적 기여. 제품 중심적 사고, 사용자 문제 정의-가설 검증 구조에 대한 인사이트를 얻을 수 있었음
•
서비스 홍보를 위해 디스콰이엇 등에 장문의 메이커로그 작성 (링크)
‘A’사 수학 문제풀이 및 피드백 서비스 개발 외주
'A’사 수학 공학도구를 활용한 문제풀이 기능 및 LLM 기반 채점 · 피드백 기능을 제공하는 서비스
백엔드 파트
2024.05 - 2024.11
프리랜서
•
전체 도메인 모델 설계 및 기능 개발
•
AWS 기반 인프라 및 CI/CD 파이프라인 구축
•
문제 및 답변에 따라 동적으로 변하는 채점 플로우 구현을 위해 Python Pickle 모듈을 활용하여 함수 직렬화 / 역직렬화로 해결
•
JWT 기반 인증 / 인가 구현. 인증 정보를 현재 로그인한 유저 엔티티로 변환하는 FastAPI DI 컴포넌트 개발
•
SQLAlchemy 2.0 마이그레이션 수행
•
사용 기술
◦
FastAPI, PostgreSQL
◦
SQLAlchemy V2, Pydantic V2
◦
Poetry
Other Experience.
Presentation.
•
내일부터 바로 써먹는 클린 코드 (제 1회 GDSC Hongik 백엔드 오프라인 밋업)
•
커뮤니티와 동반성장하기 (제 1회 홍익대학교 컴퓨터공학과 연합 DevTalk 세미나)
•
커뮤니티 춘추전국시대에서 살아남기 (23-24 GDSC Onboarding Day, 비공개)
•
대형 커뮤니티로의 체제 전환기 (2023 GDSC Korea Graduation Day 우수 리드 발표, 비공개)
•
왜 백엔드 하시나요 (제 10회 GDSC Hongik DevTalk 세미나)
•
GDSC 리쿠르팅 이야기 (제 1회 GDSC Hongik DevTalk 세미나)
Education.
•
홍익대학교 서울캠퍼스 컴퓨터공학전공
•
2021.03 ~ 3-2 수료 | 현재 휴학 중
Activities
•
IT 연합동아리 디프만 (DEPROMEET) 14기 - Server Developer
•
개발자 글쓰기 커뮤니티 ‘글또’ 9기, 10기
•
2024 GDSC KR 연합 해커톤 ‘눈꽃톤’ - 백엔드 멘토
•
Google Developer Student Clubs (GDSC) - 22-23 Lead (Founder)
◦
교내 최대 규모의 IT 커뮤니티
◦
우수 챕터 (홍익대) 및 우수 리드 선정
•
2023 GDSC KR 연합 해커톤 ‘WinterCup’ - Design Staff
•
새터민 대학생 교육봉사 - 알고리즘 및 객체지향 프로그래밍 담당
•
홍익대학교 친목 개발 소모임 ‘BlazingDevs’ - Founder
Awards.
•
GDSC X HYPHEN 연합 해커톤 ‘하지톤’ 최우수상 (WAVIT) (24.07.28)
•
IT 연합동아리 ‘디프만(DEPROMEET)’ 14기 최우수상 (10MM) (24.02.00)
•
2021 홍익대학교 컴퓨터공학과 프로그래밍 경진대회 저학년 1등상 (21.00.00)
Skill.
•
Java, Python
•
Spring, FastAPI
•
MySQL, PostgreSQL
•
AWS, NCP, Docker, Github Actions