채용공고 올리기

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

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

미리보기

기본 정보

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

4년 경력의 풀스택 개발자로서, 코드 품질 향상을 위해 지속적으로 탐구하며 다양한 디자인 패턴을 연구하고 적절히 적용함으로써 코드의 확장성과 유지 보수성을 높이는 데 집중하고 있습니다. 업무 외적으로도 개인 개발 공부를 통해 새로운 기술을 학습하며, 조직 내 문제를 정의하고 이를 해결하기 위한 실질적인 방안을 팀원들과 함께 고민하는 것을 즐깁니다. 개발 과정에서는 요구사항 정의, DB 다이어그램, 플로우 차트, 시퀀스 다이어그램 등 다양한 UML을 활용해 시스템의 흐름을 사전에 분석하고 도메인을 깊이 이해하는 것을 중요하게 생각하여 이를 실천해오고 있습니다. 또한, 최종 사용자의 입장에서 한 번 더 고민하며 사용자 친화적인 기능과 직관적인 인터페이스를 제공하기 위해 노력하고 있으며, 단순히 요구사항 구현에 그치지 않고 사용자의 만족도와 비즈니스 가치를 동시에 높일 수 있는 솔루션을 제공하는 개발자로 성장하고자 합니다.

기술 스택

기술 스택

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

경력

회사명

(주)인젠트

직급 | 부서 | 근무 유형

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

근무 기간

2024.03. ~ 재직 중 (1년)

담당 업무

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

  • Spring, Spring Boot, VueJs를 활용한 시스템 개발 및

    관리자 페이지 개발을 진행 중입니다.

회사명

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

직급 | 부서 | 근무 유형

팀원 | 기업부설연구소

근무 기간

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

담당 업무

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

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

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

프로젝트

프로젝트명

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

소속/기관명

개인

프로젝트 기간

2025.01. ~ 진행 중

프로젝트 내용

Toss payments PG API를 활용하여 이커머스 주문 및 개발 시스템을 구현 중입니다. 추후 대용량 트래픽을 위한 Kafka도 적용할 예정입니다.

Back-end

  • Java, Spring Boot를 통해 개발 진행

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

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

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

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

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

  • 요구사항에 맞게 TDD를 진행하며 개발진행 중에 있습니다.

Front-end

  • 추후 React를 통해 결제 시스템 화면을 개발할 예정입니다.

Issue

  • DDD 를 적용하면서 먼저 요구사항과 설계 부분이 매우 중요하다는 것을 느꼈습니다. 그저 생각으로만 정의하면 되는 것이 아니라고 판단이 들어 직접 설계 툴에 요구사항을 직접 적어보면서 Domain event, Policy, Command, Actor를 정의하였고 마지막으로 Aggregate까지 정의를 하고 나니 DB 테이블 설계는 조금 원활하게 진행되었고 Entity 작성까지 완료할 수 있었습니다.

  • DDD를 적용한 이유는, 기존에 작성하던 코드 스타일이 절차지향적으로 작성되고 있다는 점을 인지했기 때문입니다.서비스 레이어에 로직이 한꺼번에 작성되면서 특정 클래스에 대한 의존도가 지나치게 높아지는 문제가 발생했습니다. 이러한 코드 스타일을 개선하고, 보다 구조적이고 유지보수에 용이한 코드를 작성하고자 도메인 주도 설계를 적용하게 되었습니다.

  • Hexagonal Architecture를 적용하면서 굳이 헥사고날 아키텍처를 적용할 이유가 있을까? 에 대한 고민을 많이 했던 것 같습니다. 단순히 있어보이기 위함이 아닌 기능적으로 실제로 필요한 아키텍처임을 증명하고 싶었기에 고민을 많이 했던 것 같습니다.

  • 예전 업비트와 빗썸 API를 활용하여 개발을 진행한 경험이 있었습니다. 그 땐 port & adapter에 대한 개념을 몰랐기에 서비스 레이어와 외부 API 의존성이 강하게 결합된 구조로 개발을 진행했습니다. 그 결과, API 변경이나 대체가 필요할 때마다 코드 수정 범위가 넓어지고 유지보수가 어려워지는 문제를 겪었습니다. 이 경험을 바탕으로, Hexagonal Architecture를 통해 도메인 로직과 외부 의존성을 분리하고, port & adapter를 활용하여 확장성과 유연성을 확보하고자 했습니다. 이를 통해 핵심 비즈니스 로직은 독립적으로 유지하며, 외부 의존성 변경에 따른 영향을 최소화할 수 있음을 증명하고 싶었습니다.

Skill Stack

  • Java 21 , Spring Boot 3.4.1, Swagger, Spring Rest Docs, OkHttp, Retrofit, Junit5

프로젝트명

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

소속/기관명

인젠트

프로젝트 기간

2025.01. ~ 진행 중

프로젝트 내용

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

Back-end

  • Java, Spring 을 통해 개발 진행

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

  • 문서 관리 솔루션(Xtorm EX) 관리자 페이지 서비스에 필요한 RESTful API 설계를 진행하고 개발.

Front-end

  • Vue.Js를 통해 관리자 페이지의 구조 설계 및 구현

Skill Stack

  • Java 8, Spring Boot 2.4.3, JUnit5 , Vuejs 2.6.6, Oracle, PostgreSQL, MySQL

프로젝트명

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

소속/기관명

인젠트

프로젝트 기간

2024.10. ~ 2024.12.

프로젝트 내용

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

Back-end

  • Java , Spring을 통해 개발 진행

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

Issue

  • AS-IS 코드를 분석하고 TO-BE 로 옮기는 개발을 수행하면서 이미지 번호를 채번하는 로직이 있었습니다. 당시 AS-IS 코드에서 하던 대로 규칙을 가져와서 적용을 했는데 현업분과 테스트를 하다보니 동시성 문제가 생겨 이미지 번호가 동일하게 채번이 되거나 순서대로 채번이 안되는 이슈가 생겼습니다. 이 문제를 인식하고 이미지 번호 채번 규칙을 수정하는 방향으로 기획자와 소통을 하여 수정을 진행하였고 그 결과 원활하게 테스트를 완료할 수 있었습니다. 이 과정을 통해 앞으로 개발만 잘하는 것이 아닌 의사소통도 잘하는 개발자가 되어야겠다는 생각을 하였습니다.

Skill Stack

  • Java 11, Spring

프로젝트명

Xtorm EX 관리자 신기능 개발

소속/기관명

인젠트

프로젝트 기간

2024.05. ~ 2024.09.

프로젝트 내용

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

Back-end

  • Java, Spring Boot를 통해 개발 진행

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

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

  • 문서 관리 솔루션(Xtorm EX) 관리자 페이지 서비스에 필요한 RESTful API 설계를 진행하고 개발.

Front-end

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

Issue

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

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

Skill Stack

  • Java 8, Spring Boot 2.4.3, JUnit5, Vuejs 2.6.6, Oracle, PostgreSQL, MySQL, AWS

프로젝트명

분리보관 패키지 개발

소속/기관명

인젠트

프로젝트 기간

2024.01. ~ 2024.04.

프로젝트 내용

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

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

Back-end

  • Java, Spring Boot를 통해 개발 진행

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

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

Front-end

  • Vue.Js를 통해 관리자 페이지의 구조 설계 및 구현

Issue

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

Skill Stack

  • Java 8, Spring Boot 2.4.3, Vuejs 2.6.6, Oracle, PostgreSQL, MySQL, AWS, Docker

프로젝트명

Xtorm EX 관리자 신기능 개발

소속/기관명

인젠트

프로젝트 기간

2023.10. ~ 2023.12.

프로젝트 내용

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

Back-end

  • Java, Spring Boot를 통해 개발 진행

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

  • 기존 이력 적재 로직을 리팩토링하여 코드의 가독성과 유지 보수성을 향상.

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

  • 문서 관리 솔루션(Xtorm EX) 관리자 페이지 서비스에 필요한 RESTful API 설계를 진행하고 개발.

Front-end

  • 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, Vuejs 2.6.6, Oracle, PostgreSQL, MySQL, AWS

프로젝트명

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

소속/기관명

인젠트

프로젝트 기간

2023.04. ~ 2023.10.

프로젝트 내용

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

Back-end

  • Java, Spring을 통해 개발 진행

  • 문서 관리 솔루션(Xtorm) 관리자 페이지 서비스에 필요한 RESTful API 설계를 진행하고 개발

Front-end

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

Skill Stack

  • Java 8, Spring Boot 2.4.3, JUnit5 , Vuejs 2.6.6, Oracle, PostgreSQL, MySQL, AWS

프로젝트명

단타로

소속/기관명

지엠씨랩스(GMCLABS)

프로젝트 기간

2021.10. ~ 2022.11.

프로젝트 내용

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

Back-end

  • java, spring boot를 통해 개발 진행

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

  • 서비스에 필요한 RESTful API 설계를 진행하고 개발

  • 자동매매 알고리즘 설계 및 개발 참여

  • Linux 서버 환경 구축 및 팀원 교육

  • 서비스에 필요한 Backend API 설계 및 개발

  • Websocket를 활용하여 실시간 데이터를 Redis에 저장하여 사용

Front-end

  • 관리자 페이지 작업을 위해 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.

프로젝트 내용

오너가 개인적으로 진행시킨 프로젝트로 기존 PHP로 되어있는 프로젝트를 java와 vue.js로 리팩토링한 작업입니다.

Back-end

  • java, spring boot를 통해 개발 진행

  • 데이터를 가공하는 알고리즘을 교육받고 직접 Backend API를 설계하고 개발

Front-end

  • vuetify를 통해 디자인 작업 진행

  • Vue.Js를 통해 개발 진행

Issue

  • vue.js를 처음 써보는 프로젝트였기에 책을 사서 직접 학습하며 실무까지 적용시킨 경험을 하였습니다. 특히 vue.js와 spring boot 간 통신하는 부분을 적용시키며 흥미롭게 프로젝트를 진행하였습니다.

  • vue.js의 서버 배포는 처음 해보는 시도여서 혼란스러웠는데 nginx 웹 서버를 학습하면서 원활히 배포를 성공할 수 있었습니다.

Skill Stack

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

프로젝트명

스쿠텀 SCUTUM

소속/기관명

지엠씨랩스(GMCLABS)

프로젝트 기간

2021.03. ~ 2021.05.

프로젝트 내용

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

Back-end

  • java, spring boot를 통해 개발 진행

  • 자체 솔루션 알고리즘 설계 및 개발 참여

  • Linux 서버 환경 구축

  • 서비스에 필요한 Backend API 설계 및 개발

Front-end

  • 사용자 페이지 작업을 위해 Javascript를 통해 개발

Issue

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

Skill Stack

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

포트폴리오

첨부파일

첨부파일명

끝없는_배움으로_끝없이_성장하는_개발자_정현진입니다.pdf

자격증

자격증명

정보처리기사

점수 | 발급기관

합격 | 한국산업인력공단

취득연월

2019.05.

교육

소속/기관명

동의대학교

종류 | 전공

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

재학 기간 | 재학 상태

2015.03. ~ 2020.02. | 졸업

소속/기관명

부산동여자고등학교

종류 | 전공

고등학교 | 이과

재학 기간 | 재학 상태

2012.03. ~ 2015.02. | 졸업

댓글