채용공고 올리기

정현진님을 응원해보세요!

좋은 제안에 열려있어요
성실함
책임감
협업 지향
꼼꼼함
자기 주도적

미리보기

기본 정보

이름
정현진
직업
끝없는 배움으로 끝없이 성장하는 풀스택 웹 개발자 정현진입니다.
이메일
hyunjin077@naver.com
간단 소개

5년 차 풀스택 개발자로서 설계부터 배포까지 전 과정을 주도적으로 리드한 경험을 가진 개발자입니다. 문제 상황에서도 포기하지 않고, 팀원들과 끝까지 함께 해결해나가는 자세를 중요하게 생각합니다. 디자인 패턴을 활용한 유연한 코드 설계를 즐기며, 언제나 확장성 있는 아키텍처 구성에 대해 고민합니다. 또한 최신 기술 트렌드에 거부감 없이 빠르게 적응하고, 프로젝트 목적에 맞는 기술을 자연스럽게 녹여내는 것에서 큰 보람을 느낍니다. 복잡하고 멋진 코드보다는 팀원들이 쉽게 이해하고 유지 보수할 수 있는 코드를 지향하며, 개발 과정에서 마주한 이슈는 빠짐없이 기록하고 공유하여 팀 전체의 성장으로 연결되도록 노력합니다. 다양한 사람들과의 소통에도 거리낌이 없으며, 최근에는 대규모 아키텍처 설계 역량을 키우기 위해 꾸준히 학습 중입니다.

기술 스택

기술 스택

Spring Boot, Vue.js, Spring, Java, Docker, docker-compose, AWS, Kafka, DDD, TDD, hexagonal-architecture, Oracle, MySQL, PostgreSQL, Kubernetes

경력

회사명

(주)인젠트

직급 | 부서 | 근무 유형

팀원 | ECM / DDM 개발팀 | 재직 중

근무 기간

2024.03. ~ 재직 중 (1년 3개월)

담당 업무

통합 문서 관리 솔루션 백앤드 및 프론트 앤드 개발자

  • 스토리지 게이트웨이와 Xtorm 연동을 위해 자체 S3 서버 개발 중

  • Xtorm EX 관리자 페이지 신기능 개발

    • Vue.js에서 컴포넌트 단위로 분리하여 초기 로드 시간을 약 46% 이상 단축

  • 분리보관 시스템 개발

  • Xtorm 관리자 페이지 고도화 및 신기능 개발

회사명

주식회사지엠씨랩스(GMCLABS)

직급 | 부서 | 근무 유형

팀원 | 기업부설연구소

근무 기간

2020.09. ~ 2022.11. (2년 3개월)

담당 업무

자체 솔루션 백앤드 및 프론트 앤드 개발자

  • 가상화폐 거래소 REST API를 활용한 자동매매 사이트 개발

    • MSA 마이그레이션 설계 및 개발

    • Websocket을 이용한 실시간 데이터 처리

    • Redis에 캐싱함으로써 DB 부하를 줄이고, 대량 트래픽 상황에서도 안정적인 응답 속도를 유지할 수 있도록 개선

  • 가상화폐 거래소 REST API를 활용한 코인 별 가격 변동 비교 사이트 개발

  • 가상화폐 거래소 REST API를 활용한 유동성 제공, 재정거래 사이트 개발

프로젝트

프로젝트명

Xtorm 스토리지 게이트웨이

소속/기관명

인젠트

프로젝트 기간

2025.03. ~ 진행 중

프로젝트 내용

스토리지 게이트웨이와 Xtorm 연동을 위한 서버 개발을 진행 중입니다.

  • Java, Spring Boot을 통해 개발 진행했습니다.

  • S3 Browser, AWS S3 모두 연동이 되는 회사 내부 S3 자체 서버를 REST API 설계를 통해 개발했습니다.

  • AWS Signature Version 4 (SigV4) 인증 방식을 구현하였습니다.

Issue

  • 프로젝트 세팅을 맡았기에 공통 Response 설계를 진행했습니다. 기존 프로젝트에는 Controller에 공통 Controller를 extends 받아서 response를 하나하나 설정해 줬다면 이번 프로젝트에는 RestControllerAdvice를 활용하여 controller return 값에 자동으로 공통 response 값을 적용시키는 방법으로 변경했습니다.

  • 기존에 AWS S3를 활용한 경험은 있었으나, S3 호환 서버를 직접 구현한 것은 처음이었습니다. 프로젝트를 진행하며 AWS Java SDK와 S3 Browser 간의 연동을 통해 S3 API의 동작 방식과 요구되는 프로토콜 사양을 심층적으로 분석하고 적용하였습니다.

Skill Stack

  • Java 8, Spring Boot 2.4.3,

    JUnit5,

    Vue.js 2.6.6,

    Oracle,

    PostgreSQL,

    MySQL,

    AWS S3,

    AWS JAVA SDK,

    Minio

프로젝트명

Kafka를 활용한 이커머스 주문 및 결제 시스템 개발

소속/기관명

개인

프로젝트 기간

2025.01. ~ 2025.03.

프로젝트 내용

Toss payments PG API를 활용하여 이커머스 주문 및 개발 시스템을 구현하였습니다.

  • DDD를 이용하여 도메인 주도 설계를 진행했습니다.

  • 계층 구조에 대한 학습을 진행하였고 Hexagonal Architecture을 적용했습니다.

  • RetrofitOkHttp 라이브러리를 활용하여 Toss Payments에서 제공하는 API 통신을 할 수 있도록 구현했습니다.

  • JPA를 활용하여 관계형 데이터베이스를 관리하도록 했습니다.

  • Swagger와 Spring Rest Docs를 결합하여 API 문서 자동화를 개발하는 중입니다.

  • 요구사항에 맞게 TDD를 진행하며 테스트 주도 개발을 했습니다.

  • Kafka를 활용하여 대용량 정산 데이터 처리했습니다.

  • Kafka UI를 활용하여 카프카 상태 모니터링 구축했습니다.

  • DockerDocker Compose를 활용해 AWS에 배포했습니다.

  • 더 나아가 K3S 환경에 배포를 해보며 쿠버네티스에 대한 학습을 진행했습니다.

Skill Stack

  • Java 21 , Spring Boot 3.4.1, Swagger, Spring Rest Docs, OkHttp, Retrofit, Junit5, Kafka, Toss Payment API, AWS EC2, Docker, Docker Compose, Kubernetes

프로젝트명

Xtorm 카카오뱅크-웹관리자 기능개선요청

소속/기관명

인젠트

프로젝트 기간

2025.01. ~ 2025.02.

프로젝트 내용

기존 통합 문서 관리 솔루션(Xtorm)의 관리자 페이지에서 카카오뱅크 고객사가 제안한 기능을 개선하였습니다.

  • Java, Spring 을 통해 개발 진행했습니다.

  • 관리자의 인증 및 권한 관리를 위한 LDAP 시스템 연동 기능을 설계하고 구현했습니다.

  • 관리자 페이지 서비스에 필요한 RESTful API 설계를 진행하고 개발했습니다.

  • Vue.js를 통해 관리자 페이지의 구조 설계 및 구현했습니다.

Skill Stack

  • Java 8, Spring Boot 2.4.3, JUnit5 , Vue.js 2.6.6, Oracle, PostgreSQL, MySQL, AWS

프로젝트명

롯데카드 이미지 시스템 인프라 고도화 프로젝트

소속/기관명

인젠트

프로젝트 기간

2024.10. ~ 2024.12.

프로젝트 내용

롯데카드에서 진행한 이미지 시스템 인프라 고도화 프로젝트에 투입되어 개발에 참여하였습니다.

  • Java , Spring을 통해 개발 진행

  • 각 이미지에 대한 정보들을 가져와서 적절한 저장소에 저장시키는 데몬 서비스 개발을 진행.

  • 각 이미지에 대한 특정 정보를 가져와서 적절한 저장소에 저장시키는 로직을 개발하는 도중 같은 코드가 반복되는 부분을 발견하였습니다. 그 코드를 공통화 시키려고 생각을 하다 보니 디자인 패턴을 적용하는 게 적절하다고 생각이 되어 템플릿 메서드 콜백 패턴을 적용하는 것이 적절할 것 같아 적용하였고 예전 레거시 코드 보다 코드가 간단해진 것을 한눈에 파악할 수 있었습니다.

Skill Stack

  • Java 11, Spring

프로젝트명

Xtorm EX 관리자 신기능 개발

소속/기관명

인젠트

프로젝트 기간

2024.05. ~ 2024.09.

프로젝트 내용

기존 통합 문서 관리 솔루션(Xtorm EX)의 관리자 페이지 고도화 기능 작업 프로젝트에 참여하였습니다.

  • Java, Spring Boot를 통해 개발 진행했습니다.

  • 관리자의 인증 및 권한 관리를 위한 LDAP 및 SSO 시스템 연동 기능을 설계하고 구현했습니다.

  • 다양한 사용자 역할에 따라 메뉴 접근 권한을 제어하는 기능을 개발하여 관리자 페이지의 유연성을 개선했습니다.

  • 관리자 페이지 서비스에 필요한 RESTful API 설계를 진행하고 개발했습니다.

  • Vue.js를 통해 문서 관리 솔루션 관리자 페이지의 구조 설계 및 구현했습니다.

Issue

  • LDAP 과 SSO 연동 시스템을 통합하는 서비스를 개발하였습니다. 여러 클라이언트들의 요구사항이 적힌 문서를 분석하여 각각 필요한 기능들을 정리하여 알맞게 통일시켰습니다.

  • Vue.Js 스크립트 내에서 분기 처리하던 코드를 컴포넌트 단위로 분리하여 리팩토링함으로써, DOMContentLoaded 속도를 673ms에서 360ms로 개선하였고, 초기 로드 시간을 약 46% 이상 단축함.

Skill Stack

  • Java 8, Spring Boot 2.4.3, JUnit5, Vue.js 2.6.6, Oracle, PostgreSQL, MySQL, AWS

프로젝트명

분리보관 패키지 개발

소속/기관명

인젠트

프로젝트 기간

2024.01. ~ 2024.04.

프로젝트 내용

개인정보보호법이 개정됨에 따라 이에 맞는 데이터를 분리보관하고 복원, 파기하는 서비스 개발 프로젝트에 참여하였습니다.

관련 기사 : https://www.etnews.com/20240531000138

  • Java, Spring Boot를 통해 개발 진행했습니다.

  • 분리보관 관리자 페이지 서비스에 필요한 RESTful API 설계를 진행하고 개발했습니다.

  • Docker를 활용하여 외부 사업 프로젝트의 AWS 구성을 위한 테스트 모듈을 생성하여 제공했습니다.

  • Vue.js를 통해 관리자 페이지의 구조 설계 및 구현했습니다.

Issue

  • Docker에 대한 간단한 개념은 있었지만 실제로 실무에 사용해 본 적은 없었기에 AXA 손해보험에서 요청한 업무는 저에게 새로운 자극을 주었습니다. AXA 손해보험에서 제공한 표준 정의서를 참고하여 Docker에 대한 개념을 다시 새로 공부하는 시간을 가졌습니다. 이후 분리 보관 패키지와 Xtorm WebAdmin을 같은 Pod에 구성하도록 하였고 java amazon-corertto- 21 버전 환경에 맞게 설치 도커파일 생성 후 제공하여 성공적으로 테스트를 완료할 수 있었습니다.

Skill Stack

  • Java 8, Spring Boot 2.4.3, Vue.js 2.6.6, Oracle, PostgreSQL, MySQL, AWS, Docker

프로젝트명

Xtorm EX 관리자 신기능 개발

소속/기관명

인젠트

프로젝트 기간

2023.10. ~ 2023.12.

프로젝트 내용

기존 통합 문서 관리 솔루션(Xtorm EX)의 관리자 페이지 고도화 기능 작업 프로젝트에 참여하였습니다.

  • Java, Spring Boot를 통해 개발 진행했습니다.

  • 외부 API 호출을 용이하게 하기 위해 API Key 및 Secret Key 시스템을 설계하고 구현하였습니다.

  • 기존 이력 적재 로직에서 AOP를 도입하여 코드의 가독성과 유지 보수성을 향상시켰습니다.

  • 통합 문서 관리 시스템의 기능을 쉽게 사용할 수 있도록 API를 제공하기 위해 Junit5를 이용하여 테스트 코드를 작성하고, 기존 API 코드의 오류를 수정하여 안정성 을 강화하였습니다.

  • 관리자 페이지 서비스에 필요한 RESTful API 설계를 진행하고 개발했습니다.

  • Vue.js를 통해 문서 관리 솔루션 관리자 페이지의 구조 설계 및 구현하였습니다.

Issue

  • 기존에 개발되어 있던 이력 추적 로직은 메서드마다 하단에 이력을 데이터베이스에 저장할지 말지 체크하는 코드가 작성되어 있었습니다. 앞으로 기능이 추가될 때마다 이러한 로직을 계속 수동으로 작성해 줘야 하는 게 불편하다고 생각이 들어 Spring AOP를 도입하여 특정 Annotation으로 이력 저장 기능을 관리하도록 리팩토링하였습니다.

  • ApiKey와 SecretKey 기능을 구현하기에 앞서 시스템 설계를 보여달라는 요구사항이 있었습니다. 기존에 이용해왔던 draw.io라는 툴을 통해 Sequence Diagram과 Flow Chart, DB Diagram을 작성하였습니다. 이 설계를 바탕으로 팀장님과 팀원들 간의 개발 회의를 통해 어떻게 개발을 진행할 건지 회의하는 시간을 가졌습니다.

Skill Stack

  • Java 8, Spring Boot 2.4.3, Vue.js 2.6.6, Oracle, PostgreSQL, MySQL, AWS

프로젝트명

Xtorm 관리자 페이지 마이그레이션

소속/기관명

인젠트

프로젝트 기간

2023.04. ~ 2023.10.

프로젝트 내용

기존 통합 문서 관리 솔루션(Xtorm)의 관리자 페이지 마이그레이션에 참여하였습니다.

  • Java 레거시로 개발되어 있는 코드를 Spring 으로 마이그레이션을 했습니다.

  • Java, Spring을 통해 개발 진행했습니다.

  • 관리자 페이지 서비스에 필요한 RESTful API 설계를 진행하고 개발했습니다.

  • Vue.js를 통해 문서 관리 솔루션 관리자 페이지의 구조 설계 및 구현했습니다.

Skill Stack

  • Java 8, Spring Boot 2.4.3, JUnit5 , Vue.js 2.6.6, Oracle, PostgreSQL, MySQL, AWS

프로젝트명

단타로

소속/기관명

지엠씨랩스(GMCLABS)

프로젝트 기간

2021.10. ~ 2022.11.

프로젝트 내용

가상화폐 거래소 REST API를 활용한 자동매매 사이트를 개발하였습니다.

  • Java, Spring Boot를 통해 개발 진행했습니다.

  • MSA로 마이그레이션하기 위해 설계와 개발에 참여하였습니다.

  • 회원 관련 서버에 필요한 코드를 도메인 주도 설계(DDD)를 활용하여 작업했습니다.

  • 서비스에 필요한 RESTful API 설계를 진행하고 개발했습니다.

  • 자동매매 알고리즘 설계 및 개발 참여했습니다.

  • Linux 서버 환경 구축 및 팀원 교육했습니다.

  • 서비스에 필요한 Backend API 설계 및 개발했습니다.

  • Websocket를 활용하여 실시간 데이터를 Redis에 저장하여 사용했습니다.

  • 관리자 페이지 작업을 위해 AdminLTE3를 활용해 화면을 기획하고 개발했습니다.

  • 관리자, 사용자 페이지 작업을 JavaScript를 통해 개발했습니다.

Issue

  • MSA 구조에 적응하기 위해 새로운 지식과 프로그램을 이해, 학습하고 적용했습니다. 이 과정에서 기능별로 서버를 분리해야 한다는 점과 Oauth2에 대한 실무 적용을 알아갈 수 있었습니다.

  • 처음에는 실시간 데이터를 처리해야 할 때 http 통신방법을 사용하였습니다. 하지만 처리 속도가 느려 websocket 방식으로 변경하니 처리 속도가 확실히 개선된 것을 확인하였습니다.

  • Websocket 방식으로 변경을 하니 가끔 서버 측에서 인터넷이 끊길 때 받아오는 데이터도 갱신이 안되는 이슈를 확인하였습니다. 그래서 Error 처리를 해주는 method에서 다시 연결이 될 때까지 요청을 보내는 코드를 작성하여 해결하였습니다.

  • 처음에는 websocket으로 받아오는 데이터를 postgresql에 저장을 하니 가끔 과부하가 걸리는 이슈를 확인하였습니다. 앞으로 사용자가 더 유입될 것을 고려하여 캐시 서버인 Redis를 도입하자는 결론이 나와 redis로 데이터 처리를 하니 과부하 현상이 사라진 것을 확인할 수 있었습니다.

  • 자동매매 알고리즘 프로젝트를 서버에 배포했을 때 thread 관리가 되지 않아 몇몇 회원들의 알고리즘이 중단되는 이슈가 발생하였습니다. 자동매매 알고리즘을 실행하기 위해 @Async를 사용하였습니다. 여기서 발생하는 thread 때문이라고 생각하여 비동기 스레드 관리를 해주는 코드를 작성하였는데도 중단 이슈가 다시 발생하였습니다. 서비스가 중단된 회원들의 로그를 파악해 보니 Rest API 호출을 하기 직전까지의 로그만 있고 API 호출을 할 때 알고리즘이 중단되는 똑같은 패턴을 파악하였습니다. 그 후 API 호출을 할 때 사용되는 RestTemplate 스레드를 관리해 주는 코드를 추가하니 문제가 해결되었습니다.

  • Slack을 도입하여 Github와 연동해 알림을 더 쉽게 받아볼 수 있도록 하였습니다.

Skill Stack

  • Java, Spring Boot, WebSocket, Redis, JavaScript, PostgreSQL, AWS, RestTemplate, OAuth2

프로젝트명

DataTool

소속/기관명

지엠씨랩스(GMCLABS)

프로젝트 기간

2021.06. ~ 2021.09.

프로젝트 내용

가상화폐 거래소 REST API를 활용한 코인 별 가격변동 비교 사이트 개발

  • 기존 PHP 코드를 분석하여 java와 Vue.Js로 리팩토링 하였습니다.

  • Java, Spring Boot를 통해 개발 진행했습니다.

  • 데이터를 가공하는 알고리즘을 교육받고 직접 Restful API를 설계하고 개발했습니다.

  • vuetify를 통해 디자인 작업 진행했습니다.

  • Vue.js를 통해 개발 진행했습니다.

  • 공통적으로 사용되는 부분을 Component로 분리시켜 효율적으로 개발을 진행했습니다.

Skill Stack

  • Java, Spring Boot, Vue.js, Vuetify, MySQL, Naver Cloud, Nginx

프로젝트명

스쿠텀 SCUTUM

소속/기관명

지엠씨랩스(GMCLABS)

프로젝트 기간

2021.03. ~ 2021.05.

프로젝트 내용

Upbit, Coinone, Bithumb 거래소의 Rest API를 활용한 자체 솔루션 개발에 참여하였습니다.

  • Java, Spring Boot를 통해 개발 진행했습니다.

  • Linux 서버 환경 구축했습니다.

  • 서비스에 필요한 RestFul API 설계 및 개발했습니다.

  • 사용자 페이지 작업을 위해 JavaScript를 통해 개발했습니다.

Issue

  • 여러 거래소의 API 작업을 하다 보니 똑같은 역할을 하는 메서드가 중복되어 나타나는 것을 확인할 수 있었습니다. 이 코드를 방치하다 보면 나중에 유지 보수가 어려워질 것 같아 사전에 방지하기 위해 디자인 패턴 적용을 하고자 하였습니다. 그중 제일 적합하다고 생각한 패턴이 템플릿 메서드 패턴이라고 생각을 하였고 공통적으로 사용하는 메서드들을 정리하여 캡슐화하였습니다. 이를 통해 비즈니스 로직을 수행하는 부분에서 코드가 확실히 간결해진 것을 확인할 수 있었습니다.

Skill Stack

  • Java, Spring Boot, JavaScript, MySQL, Naver Cloud

포트폴리오

URL

link

GitHub

깃허브
link

Blog

URL 링크
link

포트폴리오

노션

자격증

자격증명

정보처리기사

점수 | 발급기관

합격 | 한국산업인력공단

취득연월

2019.05.

교육

소속/기관명

동의대학교

종류 | 전공

대학교(학사) | 컴퓨터소프트웨어공학과

재학 기간 | 재학 상태

2015.03. ~ 2020.02. | 졸업

소속/기관명

부산동여자고등학교

종류 | 전공

고등학교 | 이과

재학 기간 | 재학 상태

2012.03. ~ 2015.02. | 졸업

자기소개

자기소개

[자기 소개]

저는 Java, Spring Boot, Spring, Vue.js를 활용하여  통합 컨텐츠 관리 솔루션의 관리자 페이지 및  다양한 프로젝트를 수행해 왔습니다. 

특히, 통합 컨텐츠 관리 솔루션 고도화 작업을 진행하면서 코드 품질, 확장성, 유지보수성을 높이기 위해 필요할 때마다 리팩토링 작업을 주도적으로 진행하였고, 이를 통해 프로젝트 성능 개선에 기여하였습니다.


저는 다양한 기술을 배우고 이를 프로젝트에 적용하는 것을 좋아합니다. 기회가 있을 때마다 개발 관련 컨퍼런스에 참석하거나 다양한 기업의 기술 주제 강연을 온라인으로 듣고, 해당 기술을 어떻게 하면 적절하게 프로젝트에 유연하게 잘 적용할 수 있는가를 항상 생각하며 적용해 보려고 노력 중입니다. 만약 실무 프로젝트에 적용할 수 없다면 개인 프로젝트로 적용해 보기 위해 간단한 토이 프로젝트를 만들어보며 그와 관련된 기술들을 학습해 보고 있습니다.

실제로 한 기술 컨퍼런스에서 Kafka를 이용하는 메시지 플랫폼에서 아키텍처를 개선했던 경험, DDD에 대한 강연을 듣고 직접 경험을 해보며 그들이 전달하고자 했던 바를 몸소 경험하며 Toss payments PG API를 활용하여 이커머스 주문 및 개발 시스템이라는 토이 프로젝트를 간단하게 진행했던 경험이 있습니다.

뿐만 아니라, 개발에 앞서 설계하는 것도 매우 중요하다고 생각하여 플로우 차트, 시퀀스 다이어그램, DB 다이어그램 등 다양한 UML 도구를 활용해 시스템의 흐름을 미리 파악하고자 노력하고 있습니다. 이를 통해 실제로 제가 사용한 UML이 팀원들에게 좋은 예시 자료로 사용되어 팀의 설계 문화를 바꾼 경험을 보유하고 있습니다.

저는 프로젝트를 진행할 때 개발 능력뿐만 아니라 팀원 간의 소통과 배려가 중요하다고 생각합니다. 맡은 업무를 완벽하게 수행하는 것과 더불어, 어려움을 겪는 팀원이 있을 때 적극적으로 도움을 주고, 의견을 공유하는 것이 프로젝트의 성공에 큰 기여를 한다고 믿고 있습니다. 이를 위해 개인적으로 학습한 개발 지식과 이슈가 있었던 부분에 대해 팀원들과 공유하며, 기술 포스트를 기록해 놓는 습관을 길러오고 있습니다. 

또한, 저는 빠르게 새로운 기술을 습득하여 실무에 적용할 수 있는 능력을 가지고 있습니다. 예를 들어, AWS 구성을 위한 AXA손해보험 차세대 프로젝트를 진행하는 도중, 도커(Docker)를 이용해 프로젝트의 테스트 환경을 구축하는 일을 맡았습니다. 당시, 단 이틀 만에 도커를 학습하고 이를 활용해 효율적인 테스트 환경을 구축한 경험이 있습니다.

댓글