채용공고 올리기

이신성님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
이신성
직업
백엔드 개발자
이메일
seeeeeeong@naver.com
간단 소개

자기소개

자기소개

문제를 해결하기 위해 커뮤니케이션이 가장 중요하다고 생각합니다.

  • 기획자, 디자이너, 프론트엔드 개발자와 협업하며 요구사항을 구체화하고, 원활한 커뮤니케이션을 통해 서비스를 개선한 경험이 있습니다.

  • 프로젝트 진행 중 Notion을 활용하여 API 명세, ERD, 개발 문서를 정리하며, 팀원들이 필요한 정보를 쉽게 찾을 수 있도록 문서화를 체계적으로 관리했습니다.

시스템을 개선하고 효율성을 높이는 것에 관심이 많습니다.

  • 서비스 내에서 발생하는 Slow Query를 분석하고 실행 계획을 확인한 후, 적절한 인덱스를 적용하여 응답 속도를 개선한 경험이 있습니다.

  • 부하 테스트를 진행하며 CPU, 메모리 사용량을 측정하고, 동일한 RPS에서 더 낮은 리소스를 사용하도록 시스템을 최적화한 경험이 있습니다.

이러한 경험을 바탕으로, 확장성과 유지보수성이 뛰어난 서비스를 개발하는 백엔드 개발자로 성장하고 있습니다.

기술 스택

기술 스택

Java, Spring Boot, DBMS/RDBMS, NoSQL, JPA, aws-ec2, aws-rds

프로젝트

프로젝트명

URLShortener

소속/기관명

whatever

프로젝트 기간

2025.01. ~ 2025.02.

프로젝트 내용

단축 URL 서비스 (Link)

Java 21 Spring Boot 3.x MySQL Spring Data JPA

주요 역할

  • MySQL 인덱스 적용을 통한 평균 조회 1.09s -> 189.92ms 5.74배 성능 향상

  • k6 부하 테스트 수행, 리소스 사용량 및 응답 속도 측정

  • Prometheus, Grafana를 사용하여 서버 모니터링 시스템 구축

  • Sping Cloud Config를 사용하여 별도의 설정 없이 블랙리스트 URL을 관리하도록 구성


트러블 슈팅 및 고민

부하 테스트에서 CPU 사용률 과다 및 응답 속도 저하 문제 해결
문제 : 1 Core CPU / 1 GB Memory / 1 Pod 환경에서 RPS 10 부하 테스트 진행 시 CPU 사용률이 최대 99.7%까지 상승하고 응답 속도 저하 발생

해결 : 인덱스를 적용하여 조회 성능 향상 및 메모리 사용량 안정화, CPU Usage 안정화를 위한 스케일 아웃 테스트를 진행하고 적정 인프라 스펙 결정


부하 테스트 중 OutOfMemoryError 발생

문제 : Docker 컨테이너의 메모리 제한을 1GB로 설정했음에도 max heap size가 256MB로 설정되어 OutOfMemory 발생

해결 : JVM 옵션을 수정하여 컨테이너 메모리의 100%를 할당하도록 -XX:MaxRAMPercentage=100.0 옵션을 추가하여 문제를 해결


Spring Cloud Config를 활용한 블랙리스트 URL 자동 관리

문제 : 기존의 yml 파일을 사용하여 블랙리스트 URL을 관리하는 방식에서는 설정 변경 시 매번 파일을 수정하고 배포해야 하는 번거로움이 있음.

해결 : Spring Cloud Config를 사용하여 별도의 설정 파일 수정 없이 실시간으로 설정 내용을 수정하고 적용할 수 있도록 구성하여, 설정 변경을 더 효율적으로 관리하도록 해결.

프로젝트명

Hey

소속/기관명

기획 2, 디자인 1, 프론트엔드 2, 백엔드 2

프로젝트 기간

2024.02. ~ 2024.12.

프로젝트 내용
각 플랫폼에 흩어져있는 공연 정보를 제공하는 서비스 (Link)

Java 21 Spring Boot 3.x PostgreSQL Spring Security Spring Data JPA QueryDSL

주요 역할

  • JWT 로그인 구현, Redis를 활용한 RefreshToken 저장

  • 불필요한 연관 관계 제거 및 리팩토링을 통한 코드 재사용성 및 가독성 증가

  • Querydsl 도입으로 검색 및 필터 기능을 효율적으로 구현

  • 비동기 적용을 통해 외부 API 연동의 지연 시간을 7.9s -> 3.7s로 단축

  • AOP 활용으로 회원/비회원 처리 로직을 효율적으로 관리


트러블 슈팅 및 고민

소셜 로그인 비즈니스 로직 개선

문제 : 단일 API에서 모든 로그인 로직을 처리하면서 플로우가 과도하게 복잡해졌으며, 신규 사용자의 경우 별도의 동의 절차 없이 자동으로 가입되는 문제가 발생

해결 : 회원 가입과 소셜 로그인 프로세스를 분리하여 책임을 명확히 구분하고, Redis를 활용해 임시 데이터를 저장함으로써 인증 흐름을 단순화하고 유연성을 확보


KOPIS API 연동 성능 개선

문제 : 매일 1회 스케줄러를 실행하여 공연 목록을 최신화하는데, 일주일 기준 약 100개의 데이터를 처리함. 다수의 API 호출로 인해 응답 속도가 느려지고, 공연 시설 정보 저장 시 중복 데이터가 발생할 가능성이 있음.

해결 : CompletableFuture를 활용한 병렬 처리로 공연 상세 정보 조회 응답 속도 개선, synchronized 적용을 통해 중복 저장을 방지하고 데이터 정합성 유지

프로젝트명

DrawMyCharacter

소속/기관명

개인

프로젝트 기간

2024.11. ~ 2024.12.

프로젝트 내용
OpenAI의 ChatGTP를 활용하여 이미지 기반 캐릭터 생성 및 변형을 제공하는 서비스 (Link)

Java 21 Spring Boot 3.x MySQL 8.0 Spring AI Spring Security Spring Data JPA QueryDSL

주요 역할

  • ChatGPT 기반 이미지 분석 및 생성 API 구현

  • 멀티 이미지 생성 및 비동기 처리 적용으로 응답 시간 최적화

  • 쿼리 튜닝을 통한 이미지 목록 조회 성능 개선


트러블 슈팅 및 고민

이미지 생성 최적화

문제 : ChatGPT API는 직접적인 이미지 변형 기능을 제공하지 않으며, 텍스트 프롬프트를 기반으로 이미지를 요청해야 함. 단일 이미지 생성 방식에서는 사용자가 원하는 결과가 아닐 경우 여러 번 요청해야 하므로, 비효율적인 리소스 사용과 응답 지연이 발생함.

해결 : 한 번의 요청으로 다수의 이미지를 생성할 수 있도록 개선하여 반복 요청을 최소화하고, 비동기 처리를 적용해 응답 속도를 향상


쿼리 최적화로 이미지 목록 조회 성능 개선

문제: 좋아요 순으로 캐릭터 이미지 목록을 조회하는 기능에서, likes 테이블과 character 테이블을 조인한 후 좋아요 수를 집계하는 방식으로 인해 응답 속도가 느림. 10만 건의 데이터를 모두 조인한 후 집계 연산을 수행하면서 불필요한 연산 부담이 발생하여 조회 성능이 저하됨

해결: likes 테이블에서 먼저 좋아요 수를 집계한 후 character 테이블과 조인하는 방식으로 변경하여 연산량을 줄이고, 쿼리 성능을 최적화

대외활동

활동명

전남대학교 캡스톤디자인

소속/기관명

전남대학교

연도

2022

내용
라즈베리파이 기반 환자 체온 관리 시스템

python

  • Python의 PulseSensor 라이브러리를 이용해 심박수를 측정하고 확인

  • DHT11 온도 센서와 Pulse 센서를 활용해 데이터를 수집하고 Buzzer와 LED로 환자 상태를 알리는 시스템

교육

소속/기관명

원티드 프리온보딩 백엔드 코스

종류 | 전공

사설 교육

재학 기간 | 재학 상태

2023.11. ~ 2023.12.

소속/기관명

쌍용교육센터

종류 | 전공

사설 교육

재학 기간 | 재학 상태

2023.03. ~ 2023.09. | 졸업

소속/기관명

전남대학교

종류 | 전공

대학교(학사) | 전자컴퓨터공학부 전자정보통신공학과

재학 기간 | 재학 상태

2017.03. ~ 2023.02. | 졸업

자격증

자격증명

토익

점수 | 발급기관

860 | 한국 TOEIC 위원회

취득연월

2021.05.

포트폴리오

URL

link

포트폴리오

노션
link

GitHub

깃허브
댓글