오상민

Backend Developer

Email: osmin9027@gmail.com

Phone: 010-5472-9027

Web: https://tao-tech.tistory.com

자기소개

저는 웹 서버 개발의 전체 사이클을 스스로 학습하고 구현한 경험이 있습니다.

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 메세지로 자동 제안

프로젝트

구똑 - 구독을 똑똑하게

Backend

2024.12 ~ 2025.05

github

점차 다양해지는 구독 서비스와 고정 지출을 똑똑하게 관리하기 위한 플랫폼

주요 역할

프로젝트 ERD 설계

  • 데이터 모델링 및 관계 설계를 통한 데이터 구조 구축

공통 모듈 개발

  • AWS Simple Email Service(SES)를 활용하여 서비스 전반에서 재사용 가능한 이메일 발송 모듈 구현 Tistory

결제 일정 리마인드 기능 개발

  • Spring Scheduler를 활용하여 구독 결제일 하루 전 사용자에게 자동으로 이메일 리마인드 발송 구현
  • 서비스 확장성을 고려하여 Scale-out 환경에서 Scheduler의 중복 실행을 방지하기 위해 Redis 분산락 기반의 Shedlock 적용 Tistory

구독 서비스 관리 기능 개발

  • 사용자 구독항목 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

TodoList

Backend

2024.08 ~ 2024.11

github

할 일(Todo) 관리 기능을 제공하는 REST API 기반 애플리케이션

REST API 개발

  • Todo CRUD 기능 개발 (테스트 커버리지 80% 달성)
  • Spring Data JPA, QueryDSL을 사용하여 동적 쿼리를 이용한 검색 및 페이지네이션 구현 Tistory
  • Redis를 Session Storage로 활용한 사용자 인증, 인가 구현 Tistory
  • 외부 라이브러리 없이 CustomAnnotation을 사용하여 Interceptor, ArgumentResolver를 이용한 인증, 인가 직접 구현
  • docker-compose를 활용한 MySQL, Redis 기반 로컬 개발 환경 구성

배포 인프라, CI/CD 파이프라인 구축
[AWS]

  • EC2, RDS(MySQL), ElastiCache(Redis) 리소스 구성 Tistory
  • 보안그룹 설정을 통해 인스턴스 간 연결 구성
  • S3와 CodeDeploy를 활용한 배포 자동화 환경 구축
  • IAM 설정을 통해 AWS 리소스에 대한 권한 제어 및 보안 설정

[CI/CD]

  • CI/CD 파이프라인 구축 Tistory
  • 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

WarriorDining

Fullstack

2024.10 ~ 2024.11

github
github

바쁜 현대인들을 위한 효율적인 음식점 예약 서비스

주요 역할
백엔드 기능 개발

  • 회원가입, 비밀번호 찾기, 내정보 조회, 회원탈퇴 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 ~ 재학중