Spring WebFlux기반 리액티브 프로그래밍, 웹 애플리케이션 개발에 관심이 많으며,

전교생이 사용하는 이력서 작성 플랫폼 프로젝트를 리드하여 개발해 안정적인 운영을 이루어냈습니다.

가독성 높은 코드와 시스템 성능 최적화 사이의 균형을 중요하게 생각하여,

실제 프로젝트 팀에서 정기적인 코드 리팩토링을 주도 해왔습니다.

끊임없이 학습하고 도전해 복잡한 로직을 단순화하고, 안정적인 서비스를 제공하는 사용자 중심 서비스를 만들어내는 개발자로 성장하는 것이 저의 목표입니다.

$\color{white}\rule{685px}{0.5px}$

Contact me

Certifications

<aside>

정보처리기능사 ——————————————— 2023

</aside>

<aside>

TOPCIT(소프트웨어 역량 검정) 595점, 수준3 ——————————————— 2024

</aside>

$\color{white}\rule{685px}{0.5px}$

Projects

image.png

개발 기간: 2024년 6월 ~ 2025년 2월

깃허브 레포지토리: https://github.com/daemawiki/Claude

개발 인원: 백엔드 1명, 프론트엔드 2명

기술 스택:


프로젝트 화면:

image.png

image.png

image.png

:daemawiki-logo-square: 대마위키 (운영 준비 중)

Project Overview

대마위키는 대덕소프트웨어마이스터고등학교 학생들을 위한 정보 공유 플랫폼입니다.

Spring WebFlux 기반의 리액티브 웹 애플리케이션으로 구축되어, 높은 성능과 효율적인 리소스 관리를 목표로 설계되었습니다.

현재는 운영 준비 중이며, 개발 완료 후 내부 테스트를 거쳐 서비스될 예정입니다.

담당 역할: 백엔드 리드를 맡아 전체 API 설계 및 구현을 주도하였으며, 함수형 프로그래밍과 리액티브 프로그래밍 패러다임을 활용하여 고성능 웹 애플리케이션을 구축하였습니다.


Key Contributions

1. 실시간 문서 공동 편집 기능 구현

관련 코드: https://github.com/Daemawiki/Claude/blob/develop/src/main/java/com/daemawiki/internal/core/domain/service/document/DocumentSocketEditingService.java

2. 사용자 인가 관리 개선

관련 코드: https://github.com/Daemawiki/Claude/blob/develop/src/main/java/com/daemawiki/internal/core/domain/service/auth/RegisterService.java

3. 메일 인증 프로세스 최적화

관련 코드: https://github.com/Daemawiki/Claude/blob/develop/src/main/java/com/daemawiki/internal/core/domain/service/mail/MailSendService.java


Outcomes


Future Improvements

현재 실시간 문서 편집의 동시성 수준이 문서 단위에서 최대 열 단위 Sync로 크게 축소했고, 추후에 CRDT, OT 알고리즘을 도입하여 동시성 수준을 더욱 개선할 예정입니다

또한, Version Vector 도입을 통해 부분 수정을 정확하게 추적하고 싶은 계획이 있습니다.

Backpressure Control Patterns을 더욱 자세하게 공부하여 더 나은 리액티브 패턴을 적용하고 싶습니다.


Retrospective

처음엔 Spring MVC의 스레드 풀 방식이 납득되지 않아 WebFlux를 도입했지만, 오히려 복잡한 구조로 인해 오히려 생산성이 떨어지는 문제를 겪었습니다. 이 경험을 통해 새로운 기술은 도입 자체보다 트레이드오프, 그리고 실질적 효과가 더 중요하다는 점을 느꼈습니다.

WebFlux의 동작 원리를 깊이 이해하고 싶어 Project Reactor, Netty까지 학습했고, Redis/Lettuce의 Reactive Command 부분의 오픈소스에도 기여했습니다. 기술적으로는 큰 성장의 계기였지만, 무조건적인 비동기 구조가 성능 개선으로 이어지지 않는다는 현실적 인사이트도 얻었습니다.

단순히 새로운 걸 해보는 것을 넘어, 어떤 기술이 서비스에 어떻게 기여할 수 있을지 고민하는 태도가 개발자로서 더 중요하다는 걸 배운 프로젝트였습니다.

$\color{white}\rule{685px}{0.5px}$