자기소개
저는 웹 서버 개발의 전체 사이클을 스스로 학습하고 구현한 경험이 있습니다.
ERD 설계 및 API 구현부터 AWS EC2, RDS(MySQL), ElastiCache(Redis)를 활용한 인프라 구축, GitHub Actions CI/CD, AWS S3, CodeDeploy를 활용한 자동화 배포 까지 전 과정을 직접 구성하였습니다.
저는 문제를 성장의 기회로 삼아 더 나은 결과를 만들어내는 데에 몰입합니다.
기술적 한계나 문제에 직면했을 때 그것을 기회삼아 학습하여 해결 방안을 찾고, 팀원과 공유하여 다수의 피드백을 얻어 함께 기술적 문제를 해결하고 성장하는 것에 큰 성취감을 얻습니다. 문제 해결 시간 단축을 위해 작업을 작은 단위의 Task로 분리하고, 코드 리뷰를 통해 협업을 고려한 코드 작성과 유지보수성을 높이는 방식을 고민했습니다.
이 과정에서 테스트 코드를 작성하며 코드의 신뢰성을 높이는 습관을 자연스럽게 익혔고, 스스로 학습한 지식을 정리하여 팀원에게 공유해 더 나은 결과를 만들어내는 데에 몰입하며 성장해왔습니다.
마지막으로, 저는 경험을 공유하여 함께 성장하는 것에 큰 가치를 느낍니다.
누군가에게 설명할 수 있을 때 비로소 저의 지식이 되고, 그것이 곧 저의 성장이 된다고 생각합니다.
학습한 내용과 경험을 공유하고 피드백을 얻는 것에 큰 보람을 느껴 꾸준히 블로그에 기록하고 있습니다.
지속적인 학습과 개선을 통해 좋은 영향을 주어 함께 성장하는 개발자가 되고자 합니다.
기술 스택
Backend
- Java, SpringBoot
- SpringDataJPA, MyBatis, QueryDSL
- JUnit5
DevOps
- MySQL, MariaDB
- AWS (EC2, RDS, ElastiCache, S3, CodeDeploy, SES)
- Docker Compose
Tools
- IntelliJ, Jira, Slack, Git
경력
BU Technology
기술교범팀 Fullstack
2025.03 ~ 2025.07
기존 서비스 유지보수 및 SpringMVC 기반 레거시 시스템을 SpringBoot 기반으로의 이관에 참여
- 공통 모듈 개발
- 콘텐츠 유형별 링크 이동, 이미지 표출 방식, 자료 유형별 메인 페이지 렌더링을 위한 서버 사이드 공통 비즈니스로직을 모듈화하여 서비스 전반의 데이터 처리 및 API 응답 일관성 확보
- 프론트엔드 화면 구성과 연계되는 공통 처리 로직의 재사용성을 높이기 위해 객체 및 컴포넌트 기반 구조로 설계
- 중복 코드 제거를 통해 전체 개발 효율성과 유지보수성 향상
-
관리자 시스템 기능 개발
📈 사용자 접속 로그 수집, 처리 및 통계 기능 개발
- 사용자 접속 로그 수집, 저장, 처리 기능 구현, 이를 위한 REST API 제공
- 프론트엔드 관리자 페이지에서 통계 데이터를 시각화하기 위해 ECharts를 활용한 시각화 컴포넌트를 개발 및 연동
- 전체, 연도별, 월별, 일별 접속자 수, 책자별 조회 통계 등 지표를 시각화하여 운영 인사이트 제공
🧭 사용자 행동 로그 수집, 처리 기능 개발
- 사용자 콘텐츠 이용 및 행동 로그 수집, 저장, 처리를 위한 REST API 개발
- 로그 코드, 명칭, 설명, 등록일 기준의 로그 테이블 시각화 처리
- 날짜 기준 검색 및 offset 기반 페이지네이션 처리 구현을 통해 로그 탐색 편의성 강화
📝 용어 편집 기능 개발
- 관리자가 용어 정보를 등록, 수정, 삭제할 수 있는 CRUD 기능 구현
🌐 다국어(i18n) 처리
- Spring Message Properties 기반의 다국어 처리 및 동적 언어 전환 기능 구현
📂 콘텐츠 변경 이력 기능 개발
- 콘텐츠 변경 이력을 트리 구조로 시각화하여 운영 인사이트 제공
- 변경 버전별 상세 정보 확인 기능 구현
- 기술 스택
- Backend: Java, SpringBoot, MyBatis, SpringSecurity
- Database: Oracle, MySQL, MariaDB
- Tools: Git
법률 상담 자동화 시스템 개발
- 멀티 모듈 아키텍처 설계 및 구현 주도
- domain: JPA Entity 중심의 라이브러리형 모듈
- admin: 관리자 API, 정보 수집 중심의 모듈
- worker: 사용자 API, 업무 자동화 처리 중심의 모듈
- Admin 모듈 개발
- worker 모듈 인스턴스 헬스체크 API 구현
- OpenFeign을 활용해 외부 웹 데이터를 스크래핑하여 실시간 정보 수집
- Worker 모듈 개발
- OpenAI API를 통한 질문 적합성 검토 및 승인/미승인 기능 구현
- 질문 적합성 결과 승인된 작업에 대해 AI 기반 법률 상담 답변 생성 기능 구현
- 1차 자동화처리된 항목에 대해 사용자가 검토할 수 있도록 offset 기반 페이징처리 및 생성일 기준 오름차순, 내림차순 정렬을 지원하는 리스트 조회 구현
- 사용자가 AI기반으로 자동화처리된 작업을 검토하고 승인한 항목에 대해 Selenium기반 자동 답변 작성 기능 구현
- 사용자가 전체적인 작업 (일일 건수, 일/월별 그래프)현황 모니터링이 가능 하도록 대시보드 구현
- CI/CD 및 코드 품질 관리
- ktlint 기반 코드 컨벤션 검사를 CI 파이프라인에 적용하여 일관된 코드 품질 유지
- CD 스크립트 자동화를 통해 사용자별 전용 서버 (1 User : 1 Server) 로 구성하여 Worker 서버 5대 병렬 배포 설계
- admin-domain(관리자 서버), worker-domain(사용자 서버) 별 분리 배포 설계
- 개선 사항
- 대시보드 통계 API의 다중 DB 조회 로직을 코루틴 기반 병렬 처리로 응답 속도 최대 40% 향상
- DB Connection Pool 튜닝을 통해 병렬 처리 시 발생 가능한 리소스 경합 문제 해결
- MDCContext + Logback을 통한 비동기 처리 작업 로그를 traceId로 관리하여 로그 추적성을 보장
- 프로젝트 전체 사이클 [정보 수집 → AI 검토 → AI 자동 처리 → 사용자 검토 → 완료 처리] 을 비동기 파이프라인으로 구현, 각 단계 독립 실행 및 시스템 확장성 확보
- 기존 Selenium 기반 정보수집을 OpenFeign 기반으로 재구성하여 정보 수집 시간 10분 → 3초 (수집 속도 약 100% 향상)
- 기술 스택
- Backend: Kotlin, SpringBoot, SpringDataJPA, QueryDSL, Selenium, OpenFeign, OpenAI
- Database: MySQL
- DevOps: AWS (EC2, RDS, CloudWatch), DockerCompose
- Tools: Git
개발 생산성 기여
- Docker Compose를 통해 데이터베이스 기본 사용자 설정 및 초기 데이터 자동화 구성
- 평균 개발 환경 세팅 시간 수일 → 약 10분으로 단축
- 통합 테스트를 위한 일관된 테스트 환경 제공
- Docker 기반 컨테이너화된 SpringBoot 앱 이미지 제공, 팀원들이 동일한 데이터 환경에서 테스트 가능하도록 지원
- 사내 미니 프로젝트: OpenAI 기반 코드 리팩토링 제안 기능 구현
- 특정 커밋에 대해 사내 코드 규칙 기반 Prompt 작성
- OpenAI를 통해 코드 리뷰 및 리팩토링 방향을 Slack 메세지로 자동 제안
프로젝트
점차 다양해지는 구독 서비스와 고정 지출을 똑똑하게 관리하기 위한 플랫폼
주요 역할
프로젝트 ERD 설계
- 데이터 모델링 및 관계 설계를 통한 데이터 구조 구축
공통 모듈 개발
결제 일정 리마인드 기능 개발
- Spring Scheduler를 활용하여 구독 결제일 하루 전 사용자에게 자동으로 이메일 리마인드 발송 구현
- 서비스 확장성을 고려하여 Scale-out 환경에서 Scheduler의 중복 실행을 방지하기 위해 Redis 분산락 기반의 Shedlock 적용
구독 서비스 관리 기능 개발
- 사용자 구독항목 CRUD 기능, 구독 서비스 리스트, 검색 기능 개발
- 구독항목 생성 전 구독 서비스 선택란을 각각의 코드값으로 하여 리스트 응답 처리, QueryDSL의 동적 쿼리를 활용하여 Like 검색 기능 구현
- 사용자 구독항목 리스트 QueryDSL의 동적 쿼리를 활용하여 no-offset 방식의 페이징 처리
알림 관리 기능 개발
- 회원가입, 결제 알림 등 애플리케이션 내 알림에 대한 CRUD 기능 개발
- QueryDSL의 동적 쿼리를 활용해 no-offset 방식의 페이징 처리
- 알림 읽음 처리 시 벌크 업데이트 적용
- 알림 삭제 시 벌크 삭제 적용
기술 스택
- Backend: Java, SpringBoot, SpringDataJPA, QueryDSL, SpringSecurity, JUnit5
- Database: MySQL, Redis, H2(테스트)
- DevOps: AWS (EC2, RDS, ElastiCache, SES), Docker
- Tools: Jira, Swagger, Git
할 일(Todo) 관리 기능을 제공하는 REST API 기반 애플리케이션
REST API 개발
- Todo CRUD 기능 개발 (테스트 커버리지 80% 달성)
- Spring Data JPA, QueryDSL을 사용하여 동적 쿼리를 이용한 검색 및 페이지네이션 구현
- Redis를 Session Storage로 활용한 사용자 인증, 인가 구현
- 외부 라이브러리 없이 CustomAnnotation을 사용하여 Interceptor, ArgumentResolver를 이용한 인증, 인가 직접 구현
- docker-compose를 활용한 MySQL, Redis 기반 로컬 개발 환경 구성
배포 인프라, CI/CD 파이프라인 구축
[AWS]
- EC2, RDS(MySQL), ElastiCache(Redis) 리소스 구성
- 보안그룹 설정을 통해 인스턴스 간 연결 구성
- S3와 CodeDeploy를 활용한 배포 자동화 환경 구축
- IAM 설정을 통해 AWS 리소스에 대한 권한 제어 및 보안 설정
[CI/CD]
- CI/CD 파이프라인 구축
- GitHub Actions를 활용하여 미리 구성된 Docker Compose 환경에서 테스트 코드 자동 실행 (CI)
- GitHub Secrets 환경변수로 JAR 파일 빌드 후 S3에 업로드, AWS CodeDeploy로 EC2에 자동 배포 (CD)
기술 스택
- Backend: Java, SpringBoot, SpringDataJPA, QueryDSL, JUnit5
- Database: MySQL, Redis, H2(테스트)
- DevOps: AWS (EC2, RDS, ElastiCache, S3, CodeDeploy), Docker
- Tools: Git
바쁜 현대인들을 위한 효율적인 음식점 예약 서비스
주요 역할
백엔드 기능 개발
- 회원가입, 비밀번호 찾기, 내정보 조회, 회원탈퇴 API 구현
- ERD를 참조하여 JPA 설계
- SpringSecurity, JWT 기반 인증, 인가 구현
- GlobalExceptionHandler를 사용하여 전역 예외 처리 구현
프론트엔드 기능 개발
- 회원가입, 로그인, 비밀번호 찾기, 내정보 조회, 회원탈퇴 페이지 및 기능 구현
- 로그인 액세스 토큰, 리프레쉬 토큰 발급에 대한 Context 전역 처리
- 회원 열람 페이지에서 axios 요청 시 토큰 검증을 전역 처리
기술 스택
- Backend: Java, SpringBoot, SpringDataJPA, SpringSecurity
- Frontend: React.js(JavaScript)
- Database: MariaDB
- DevOps: Docker
교육
하이미디어 아카데미
2024.05 ~ 2024.10 수료
- React.js와 Springboot 활용 자바(JAVA) 풀스택(프론트엔드&백엔드)개발자
- JAVA 프로그래밍 언어 등 디지털 기술을 기반으로 다양한 기기의 융합, 콘텐츠의 융합을 통해 모바일 플랫폼에서 활용할 수 있는 웹&앱 콘텐츠의 기획, 구현, 설계, 제작, 운용 및 시험을 수행하는 업무를 수행
학점은행제
컴퓨터공학 전공
2022.09 ~ 재학중