미리보기
기본 정보
객체지향을 준수하고 클린한 코드를 지향하는 2년차 백엔드 개발자입니다. 언젠가 최고가 될 것을 굳게 믿으며 지금의 자리에 머무르지 않고 앞을 향해 나아갑니다.
기술 스택
Java, Spring Boot, Spring Security, Spring Batch, JPA, querydsl, MySQL, MongoDB, Redis, Docker, Jenkins
경력
넥스그리드
사원 | 개발팀 | 재직 중
2023.03. ~ 재직 중 (1년 7개월)
1. LG U+ 스토어 결제, 해외 구독 서비스 결제 어플리케이션 개발/유지보수
- 원스토어 결제 화면 개발
- 핀인증, 본인인증, 핀 초기화, 핀 변경 웹 템플릿 및 API 개발
- 타사와 대사 작업에 사용되는 SFTP 라이브러리 변경 개발
- j2ssh → jsch 라이브러리 변경
- Netflix 구독 결제 서비스 개발
- 문자, 통계, 메일 스케줄러 개발, API 프로세스 개발
- 문자, 통계, 메일 스케줄러 개발, API 프로세스 개발
2. 위치 정보를 기반한 문자 발송 서비스(LBS) 테스트
- 사용자와 기지국의 데이터를 조합해 특정 지역 내 사용자에게 문자 발송
- 5분마다 csv 형식으로 된 사용자(500만 건), 기지국(100만 건) 데이터를 가져와
최종 데이터 셋으로 매핑하여 MongoDB에 저장
⇒ 45초 소요 - API 호출 시 MongoDB 지리 공간 쿼리로 좌표 내 100만 사용자에게 문자 발송
⇒ 20초 소요
- 5분마다 csv 형식으로 된 사용자(500만 건), 기지국(100만 건) 데이터를 가져와
3. 사내 여러 팀에서 공통으로 사용할 어드민 페이지 템플릿 개발
- 아키텍처 설계
- 프레임워크, 라이브러리, DB 연동, 인증 방식 등 설계
- 스프링 레디스 세션 적용
- AOP를 이용한 접근 기록 저장 및 로그 출력
- 한 요청에 대한 로그를 시작하고 끝내는 Aspect 구현
- 클라이언트 요청 시 접근 정보를 기록하는 Aspect 구현
- 웹 접근 기록 통계 배치 프로그램 개발
- 시간/일/월별 접근 기록을 통계내는 배치 프로그램 구현
프로젝트
가계부 어플리케이션
개인
2023.04. ~ 2023.08.
- 링크
https://github.com/jeongdonguk96/MyAccountBook
https://velog.io/@foodsmith96/posts?tag=가계부-1인-프로젝트
- 기술 스택
Java, Springboot, Spring Batch, Spring Security, JWT, JPA, Querydsl, Mysql, Redis, Thymeleaf
- 상세 내용
수입과 지출을 기록하고 조회합니다.
Spring Security와 함께 JWT 인증 방식을 사용합니다.
Spring Batch로 매월 초 수입과 지출 내역을 통해 총합을 계산하여 저장합니다.
영화진흥위원회 API를 이용한 배치 어플리케이션
개인
2023.12. ~ 2024.01.
- 링크
https://github.com/jeongdonguk96/movie
https://velog.io/@foodsmith96/posts?tag=배치-1인-토이-프로젝트
- 기술 스택
Java, Springboot, Spring Batch, JPA, Mysql
- 상세 내용
영진위 Open API를 이용해 아래의 2개 배치 프로그램 구현했습니다.
API를 호출해 csv 파일을 생성하는 배치 프로그램
csv 파일을 읽고 API를 호출해 DB에 저장하는 배치 프로그램
NoOffset 조회 방식을 이용한 ItemReader 구현
개인
2024.01. ~ 2024.02.
- 링크
https://github.com/jeongdonguk96/bulk
https://velog.io/@foodsmith96/posts?tag=대용량-데이터-처리
- 기술 스택
Java, Springboot, Spring Batch, Mysql
- 상세 내용
2900만 건이 저장된 DB에서 100만 건씩 데이터를 읽는 ItemReader
ItemReader에 NoOffset 조회 방식을 적용해 조회 쿼리 당 평균 24초로 줄였습니다.
자기소개
안녕하세요, 백엔드 개발자 정동욱입니다.
1. 더 나은 개발자가 되기 위해 끊임없이 노력합니다.
실력있는 개발자가 되기 위해 꾸준히 시간을 들이고 있습니다. 주로 인프런 강의를 이용합니다. 자바나 프레임워크로 시작해 가상화나 CI/CD와 같은 인프라 분야까지 배움의 영역을 넓히고 있으며, 최근에는 코틀린을 배우고 있습니다. 외에 강의로 부족한 내용들에 대해서는 '모던 자바 인 액션' 등의 개발 책을 읽으며 보완하고 있습니다. 실제로 사용해보는 게 배움의 마침표라 생각하기 때문에 크든 작든 토이 프로젝트를 만들어 적용해오고 있습니다. 또한 이 모든 게 휘발되지 않도록 벨로그를 통해 기록하고 있습니다.
2. 동료에게 신뢰를 주는 개발자가 되는 것이 목표입니다.
'우리는 거인의 어깨 위에 선 난쟁이' 라는 말을 좋아하는데, 개발자라는 직업 뿐만 아니라 우리 삶을 관통하는 말이라고 생각합니다. 저 또한 누군가가 치열하게 습득한 지식을 편하게 얻었습니다. 제가 아는 모든 지식은 모두 그들로부터 얻은 것이며, 저 역시 이 모든 걸 나누어야할 책임이 있다고 생각합니다. 제가 아는 걸 누군가에게 공유하는 걸 좋아하며, 그로 인해 생기는 시너지와 좋은 영향력을 믿습니다. 모르는 게 있다거나 문제가 생겼을 때 첫 번째로 생각나는 팀원이 되는 것이 제 목표입니다.
3. 지향해야 할 개발자의 모습에 대해 고민합니다.
기술을 배우고 사용할 때 피상적인 사용법만 아는 것을 지양햐며, 그 너머 내부의 원리를 파악하기 위해 노력합니다. 이것이 다음 단계로 넘어가는 데 매우 중요한 요소라고 생각하며, 훌륭한 개발자의 기본 소양이라고 생각합니다. 또한 익숙하고 편한 영역에 머무르기 보다는 까다롭고 경험해본 적 없는 곳에 도전해 분야를 넓히려 노력합니다. 이 두 가지를 기술적 지향점으로 삼아 실력있는 개발자로 나아가고자 합니다.