Service
home
WOW Onboarding
home

안재현

Contact.

Email. uwoobeat@gmail.com

Channel.

Linkedin. uwoobeat

Introduce.

주변의 실제 문제를 풀어나갑니다

현실에 실존하는 문제를 풀 때 즐거움을 느낍니다. 기술적·비기술적 방법을 가리지 않고 문제를 해결하기 위해 최선을 다합니다.
빈약한 교내 개발 인프라에 아쉬움을 느끼고 개발학회 GDSC Hongik을 설립하여 창립 리드로 반년 동안 500+명이 넘는 최대 규모의 IT 커뮤니티로 성장시켰습니다.
이후 운영 과정에서 겪었던 문제와 구조적 한계를 기술적으로 해결하기 위해 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에서 변경이 발생하는 문제를, 템플릿 메서드 패턴을 통해 기존 인터페이스와 호환되도록 만들어 해결
CI/CD 파이프라인 구축
setup-gradle 액션의 configuration-cache 를 사용하여 실행 시간을 소폭 (10s) 단축
구현 과정에서 아쉬웠던 점을 해당 오픈소스 기능 제안 이슈에 올림. 실제로 수용되어 신규 기능으로 추가됨
체크아웃 단계에서 발생하는 병목을 개선하여, 워크플로 실행시간 1분 단축
과거 빌드 아웃풋 디렉토리에 대용량 바이너리 파일 커밋으로 인해 문제 발생
sparse-checkout 을 사용하여 소스 디렉토리만 포함시키는 방식으로 해결

(주)에프아이솔루션

Backend Engineer Intern
2023.06 - 2023.10

콜센터 백오피스

2023.06 ~ 2023.10
장기간 방치되어 있던 레거시 프로젝트에 대한 문서화 (ERD, API 스펙, 기능 명세)
개발 서버 배포 및 CI/CD 파이프라인 구축
통합 테스트 작성을 통해 회귀 방지 영역을 설정하는 레거시 리팩토링 전략 수립

간편 지문등록 서비스

2023.08 ~ 2023.10
전체 서비스 기획 / 설계 / 개발 담당
사업본부, 콜센터 등 유관부서와 긴밀히 소통하여 짧은 기간(2개월)동안 서비스 완성
기존 수기로 진행되던 복잡한 운영 정책을 이관 과정에서 간소화하여, 처리 시간을 1달 이상 단축시킴
유저의 서브타입이 추가되면 인증 로직이 영향받는 문제를 해결하기 위해 다이나믹 팩토리 패턴을 사용하여 서브타입의 레포지터리를 동적으로 결정하는 기능 구현
인증 로직과 비즈니스 로직이 다른 트랜잭션에 속하여, 추가 쿼리 없이 엔티티 정보를 전달할 수 없는 문제를 해결하기 위해 쿼리 메서드를 람다식으로 변환, 지연 평가 특성을 활용하여 해결

Projects

와우디벨로퍼스 플랫폼

홍익대학교 개발학회 GDSC Hongik 개발팀에서 운영 중인 서비스
커뮤니티 운영의 불편함을 개선하고, 멤버들이 더 편하고 즐겁게 활동하는 환경을 마련할 수 있도록 다양한 서비스(와우온보딩, 와우어드민, 와우클래스)를 개발
매 학기 새로운 가설을 세우고 실험하면서 커뮤니티 참여도를 높이기 위해 노력함
팀 리드 (PO, 백엔드 파트)
2023.12 - current
Link | (Github)
디스코드 봇 라이브러리 JDA와 Spring Boot 간 연동
AOP를 활용한 전역 예외 처리기 구현
JDA 이벤트를 스프링 이벤트와 통합
(와우온보딩) 회비 납부를 위한 결제, 쿠폰, 멤버십 도메인 개발
비영리단체 설립 및 법인계좌 발급, 토스페이먼츠 PG 계약 등 결제 연동에 필요한 전체 행정 · 개발 업무 담당
(와우클래스) 과제 채점 기능 개발
채점 관련 비즈니스 로직이 Github API 연동 과정에서 인프라 레이어로 누출되는 문제를 해결하기 위해, 람다의 지연 평가 특성을 활용하여 도메인 서비스에서 호출되는 시점에 API 호출이 실행되도록 하는 기능 구현
DDD-Lite 도입
응용 레이어 로직을 도메인 서비스로 추출하여 유지보수성 향상, 도메인 테스트로 전환하여 테스트 생산성 및 실행속도 향상
운영 정책이 복잡해지며 하나의 서비스에서 다른 서비스를 호출하는 중복 코드들이 자주 등장. 복잡한 서비스 간 의존 관계를 도메인 이벤트 기반으로 끊어내어 SoC 지키도록 구현
Sentry를 활용한 에러 모니터링 시스템 구축

10MM, 하루 10분으로 시작하는 습관 만들기

IT연합동아리 ‘디프만(DEPROMEET)’ 14기에서 출시한 프로덕트
백엔드 파트
2023.11 - 2024.04
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