미리보기
기본 정보
자기소개
안녕하세요! 4년 차 백엔드 개발자 장유진입니다.
- Java Spring을 기반으로 사용하며, 필요에 따라 Kafka, Redis, Rust 등 다양한 기술을 배우고 접목시키는 것에 거리낌이 없습니다.
- 일 평균 약 170,000건 이상, 피크 시 초당 약 1,000건 이상의 이미지 업로드 요청이 발생하는 이미지 플랫폼 서비스를 안정적으로 운영하고 있습니다.
- 팀원의 개발 이슈에 적극적으로 의견을 제시하여 도움을 주는 것을 좋아합니다.
- 라이브러리의 한계로 발생한 팀원의 이슈를 알고리즘으로 해결한 경험이 있습니다.
- 기존 국내 서비스를 글로벌 라이브로 배포하여 운영한 경험이 있습니다.
- 레거시 시스템을 분석 후 구조와 네이밍 컨벤션을 개편하여 재개발한 경험이 있습니다.
- 리서치한 내용을 정리하여 사내 개발자 컨퍼런스에서 발표했습니다.
기술 스택
Java, Spring, Spring Boot, Kubernetes, Jenkins, Kafka, Python, Rust
경력
넥슨코리아(주)
팀원 | 소셜팀 | 재직 중
2024.08. ~ 재직 중 (3개월)
(주)엔씨소프트
팀원 | 게임데이터서비스개발팀
2022.01. ~ 2024.08. (2년 8개월)
담당 업무
- Spring WebMVC, WebFlux를 사용하여 백엔드 서버 개발 및 유지보수
- Jenkins, Spinnaker를 이용하여 국내외 개발망/테스트망/라이브망 배포 파이프라인 구성
- Kubernetes를 통해 서비스 배포 및 운영
- 기술 리서치 및 PoC
프로젝트
- 이미지 서버 플랫폼
- 클라우드 게임 실행 플랫폼
- PLAYNC 개발자 센터 API 통계 데이터 서비스
- 공통 백오피스 서비스 개선
기술 리서치 및 PoC
- Spring Native, GraalVM, Rust, xk6-kafka 등 기술 리서치 및 PoC 진행
- 사내 컨퍼런스에 리서치한 내용을 정리하여 발표
(주)시너지
매니저 | 백엔드 개발팀
2020.03. ~ 2020.12. (10개월)
담당 업무
- Python을 사용하여 실시간으로 데이터 수집하는 Data Collection 프로그램 개발 및 유지보수
- Django Rest Framework로 REST API 개발 및 유지보수
- 기획 자료를 토대로 DB 스키마 정의
프로젝트
- 전력 데이터 모니터링 시스템
- 수요반응(DR)자원 거래 및 모니터링 서비스
- 태양광 발전소 모니터링 시스템
프로젝트
이미지 서버 플랫폼
(주)엔씨소프트
2022.01. ~ 2023.12.
일 평균 170,000건+
, 피크 시 초당 약 1,000건+
의 이미지 업로드 요청이 발생하는 이미지 서버 플랫폼을 개선하고 글로벌 런칭
- Non-Blocking MSA로 설계 및 개발
- 피크 시
초당 약 1,000건 이상
의 이미지 업로드 요청이 발생하는 서비스를 안정적으로 운영 - 글로벌 공통 인터페이스 설계 및 런칭
한국, 미국, 대만, 일본, Amazon Games
- 기존 Java Thumbnail Processor를 Rust로 재개발
- CPU, Memory 사용량
95% 감소
- Rust 개발 환경 및 서비스 구조 설계 및 개발
- Rust에서 지원하지 않는 Java의 profile 분리 기능을 구현
- CPU, Memory 사용량
- 권한 별 업로드 정책 관리 (Guest, User, Admin)
- Admin 업로드 시 보안을 위해 이미지 메타데이터(EXIF) 제거하도록 개발
- 사내 개발자들이 편하게 사용할 수 있도록 운영툴 및 운영툴용 API 개발
- 기술 스택:
Java
,Spring Boot
,WebFlux
,MVC
,Kafka
,Rust
,S3
,Redis
,JWT
클라우드 게임 실행 플랫폼
(주)엔씨소프트
2023.05. ~ 2023.12.
클라우드 게임 실행/종료 요청 및 요청에 대한 결과를 컨트롤하는 Non-Blocking 서버 개발
- 기획서, 요구 사항 기반으로 시스템 및 API 리소스 설계
- DDD 이벤트 스토밍을 바탕으로 MSA 설계
- 즉각적인 응답이 가능한 기능은 API 서버로 개발
- 처리 시간이 필요한 요청이나 대량의 요청이 발생하는 기능은 Kafka를 통해 처리하도록 개발
- 비정상 종료를 탐지하고 우선 보상 가능하도록 로직 개발
- 기술 스택:
Java
,Spring Boot
,WebFlux
,Kafka
,MongoDB
PLAYNC 개발자 센터 API 통계 데이터 서비스
(주)엔씨소프트
2022.09. ~ 2023.04.
Open API 사용량을 적재해 유저 및 백오피스 관리자에게 제공
- InfluxDB 2.x에 적재된 유저의 Open API 사용량 통계 데이터를 조회하는 Non-Blocking API 설계 및 개발
- 백오피스 운영툴을 위한 API 설계 및 개발
- 기획 및 운영팀에서 실시간 사용량을 모니터링 할 수 있도록 Grafana와 Redash로 대시보드 구성
- 기술 스택:
Java
,Spring Boot
,WebFlux
,InfluxDB 2.x
,Grafana
,Redash
사내 백오피스 서비스 개선
(주)엔씨소프트
2023.01. ~ 2023.03.
공통으로 사용하는 백오피스 서비스가 노후화되어 개선
jdk 1.8 -> jdk 17
SpringBoot 2.0.7 -> SpringBoot 2.7.8
MyBatis -> JPA
- 유지보수의 편의성과 가독성을 위해 네이밍 컨벤션을 개선하여 개발
- 중복된 코드 제거
- 초기 개발 당시 "혹시 몰라 만들어둔 기능"과 "더 이상 사용하지 않는 기능" 제거
- 기술 스택:
Java
,Spring Boot
,MVC
,JPA
,MySQL
전력 데이터 모니터링 시스템
(주)시너지
2020.03. ~ 2020.06.
전력 데이터를 수집 및 대시보드로 모니터링 할 수 있는 플랫폼 개발
- 변압기로부터 전송된 시계열 전력 데이터를 TDB인 Machbase에 적재하는
Data Collection 프로그램
개발 - DRF를 통해 REST API를 제공하는
백엔드 서버
개발- 회원, 권한 등의 데이터는 PostgreSQL로 관리하며 CRUD API 개발
- 전력 데이터는 Machbase에서 Read만 가능하도록 개발
- 높은 시간 복잡도로 인해 대시보드 로딩이 오래걸리는 문제 해결
- 상황 설명: 수 만 개의 데이터를 가지는 두 종류의 시계열 데이터를 outer join 해야하는 상황. TDB에서 join 기능을 지원하지 않음. 라이브러리의 기능은 이중 for문으로 O(n^2).
- 해결 방법: 시계열 데이터라는 특수한 상황을 이용하여 두 종류의 데이터의 시간 값을 비교하는
투 포인터 알고리즘
으로 해결. - 성능 개선: 시간복잡도
O(n^2) -> O(n)
, 대시보드 로딩 시간30s -> 1s
- 자세한 내용 참고
- 기술 스택:
Python
,Django Rest Framework
,GCP
,Docker
,PostgreSQL
,Machbase
수요반응(DR)자원 거래 및 모니터링 서비스
(주)시너지
2020.09. ~ 2020.12.
전력거래소(KRX)에 수요반응자원을 거래하고 모니터링 할 수 있는 플랫폼 개발
- 기획안을 통해 필요한 키워드를 뽑아서 DB 설계
- DRF를 통해 REST API를 제공하는
백엔드 서버
개발- 회원, 권한 등의 데이터는 PostgreSQL로 관리하며 CRUD API 개발
- 전력 데이터는 InfluxDB에서 Read만 가능하도록 개발
- InfluxDB에 적재된 데이터를 보고 입찰 가능한 수치를 계산하는 로직 개발
- 고객의 돈과 관련된 입찰/취소/낙찰 기능에 무결성을 지키기 위해 try-catch 및 transcation을 엄격하게 설계
- 기술 스택:
Python
,Django Rest Framework
,GCP
,Docker
,PostgreSQL
,InfluxDB 1.x
태양광 발전소 모니터링 시스템
(주)시너지
2020.07. ~ 2020.08.
태양광 발전소에서 생산하는 전력 데이터와 해당 지역의 날씨 데이터를 실시간으로 수집 및 모니터링 할 수 있는 플랫폼 개발
- 모든 경쟁 업체 서비스를 조사하여 제공하는 기능 정리 및 독자적인 기능 기획
- 기획을 바탕으로 필요한 정보를 뽑아 DB 설계 진행
- 기상청 Open API를 통해 실시간 날씨 데이터를 적재하는
Data Collection 프로그램
개발 - DRF를 통해 REST API를 제공하는
백엔드 서버
개발- 회원, 권한 등의 데이터는 PostgreSQL로 관리하며 CRUD API 개발
- 전력 데이터 및 날씨 데이터는 InfluxDB에서 Read만 가능하도록 개발
- 기술 스택:
Python
,Django Rest Framework
,GCP
,Docker
,PostgreSQL
,InfluxDB 1.x
포트폴리오
교육
경희대학교
대학교(학사) | 컴퓨터공학과
2015.03. ~ 2021.08. | 졸업
유성고등학교
고등학교 | 인문계
2011.03. ~ 2014.02. | 졸업