채용공고 올리기

박정환님을 응원해보세요!

이직/구직 중이에요
책임감
협업 지향
커뮤니케이션
자기 주도적
긍정적

미리보기

기본 정보

이름
박정환
직업
백엔드 개발자
간단 소개

Java와 Spring을 다루는 3년차 백엔드 개발자 박정환입니다. 만 2년의 경력을 쌓으며 연차에 비해 다양한 프로젝트를 경험해왔습니다. 한정적인 리소스를 효율적으로 사용하기 위한 좋은 커뮤니케이션 방법에 대해 항상 고민하고, 개발 직군이 아닌 사람들과의 소통에 강점이 있습니다. 발생하는 장애에 대해 근본적인 해결 방안을 찾기 위해 애플리케이션뿐 아니라 아키텍처, 네트워크 구성 등 다양한 방면으로 탐색하고, 단계적으로 분석합니다.

기술 스택

기술 스택

Java, JavaScript, MySQL, MariaDB, Oracle, Spring, Spring Boot, spring-mvc, Git, gitlab

경력

회사명

(주)투비소프트

직급 | 부서 | 근무 유형

선임 | 투비몰개발팀 | 재직 중

근무 기간

2022.10. ~ 재직 중 (2년 4개월)

담당 업무
  • Java / Spring Framework / SpringBoot / Spring MVC / Oracle / MySQL / MariaDB

  • 팀에서 보유중인 쇼핑몰 구축 솔루션을 유지 보수하고, 신규 기능을 개발하였습니다.

  • 이커머스 계열 SI 프로젝트를 수행하며 요구사항에 유연하게 대응할 수 있는 능력을 키워왔습니다.

프로젝트

프로젝트명

이포넷 인프라 구축

소속/기관명

투비소프트

프로젝트 기간

2024.12. ~ 진행 중

프로젝트 내용

주요 업무

  • 폐쇄망 환경에서도 고객 로컬 개발 환경을 간편하게 설정할 수 있도록 소스 코드와 Tomcat, IDE를 통합 패키징하고, 설치 가이드 문서를 제작해 제공

  • NaverCloud / RockLinux8 환경에서 SVN, Jenkins, Apache, WAS 서버 구축

  • Jenkins의 MavenProject 플러그인을 활용한 CI/CD 파이프라인 구축

문제 해결

1대의 서버에 구축된 Jenkins와 Tomcat에서 각각 다른 Java 버전 사용

문제 상황

  • WAS로 사용중인 서버에 Jenkins도 함께 구축해달라는 요구사항

  • 프로젝트 구동을 위해 시스템 기본으로 설정한 Java 버전과 Jenkins의 Java 최소 버전이 달라 Jenkins가 실행되지 않는 현상 확인

원인 분석

  • 사용하려는 Jenkins 버전은 2.479 LTS 버전으로 Java 17이상에서 실행되나, 프로젝트 구동을 위해 설정한 서버의 시스템 기본 Java 버전은 8로 설정되어 Jenkins 실행시 오류 발생.

실행

  • 해당 서버에는 2개의 프로젝트가 구동되기 때문에 시스템 기본으로 설정한 Java의 버전은 변경하지 않고, Jenkins 실행에 필요한 JVM 버전만 변경하기로 결정.

  • 시스템 기본으로 사용 중인 Java 버전 변경 없이 Jenkins 실행에 필요한 JVM 버전만 변경하기 위해 jenkins.service에서 JENKINS_JAVA_CMD 환경 변수를 추가하고 해당 환경 변수에 Java17 경로를 지정하여 Jenkins 실행시에만 Java17로 사용되도록 설정 변경.

프로젝트명

대한무역투자진흥공사(KOTRA) buyKorea 운영

소속/기관명

투비소프트

프로젝트 기간

2024.08. ~ 진행 중

프로젝트 내용

주요 업무

  • 실 운영 환경에서 발생하는 다양한 문제들을 해결하며, 안정적인 B2C 서비스 운영에 필요한 역량 증진

  • 사내 협업툴 관리, 신규 입/퇴사자 자원 관리, 보안 문서 관리 등 PMO 업무를 지원하며, 기술에 한정적이지 않고, 사업적 관점에서 프로젝트를 진행하는 능력도 키울 수 있었습니다.

  • 문서화가 전무한 상황에서 온보딩 프로세스, 개발 환경 설정, 커밋 메세지 컨벤션, 약어 사전 등 10개+의 문서를 작성해 신규 근무자들이 빠르게 업무에 투입 가능하도록 개선하고, 문서화의 중요성을 강조했습니다.

  • 배포 단계에 SonarCube 정적 분석을 도입하여 취약점을 보완하고 보안 수준을 향상시켰습니다.

  • 가동성이 떨어지는 기존 API 요청, 응답 로그를 개선하여 문제의 원인을 더 빠르게 파악할 수 있도록 했습니다.

문제 해결

외부 연계 상품 조회 API Timeout 문제 식별 및 해결

문제 상황

  • 외부 사이트의 연계 상품 조회 API 요청시 Connection Timeout 에러가 발생하여 화면에 노출되지 않음.

  • 디버깅 해본 결과 API 응답이 503 Service Unavailable로 반환된 것을 확인.

원인 분석

  • 현재 서비스는 Samsung Cloud Platform에서 서비스 되고 있음.

  • 브라우저에서 직접 URL로 API 요청을 보낼 경우 결과가 정상적으로 리턴됨 → 대상 서버의 오류는 아닌 것으로 확인.

  • 외부 연계 상품 조회 API는 따로 구성한 Proxy 서버를 통해서 연결을 하고, 아래와 같은 네트워크 흐름을 가짐.

    WAS -> Proxy 서버 -> NAT GW -> Samsung Cloud 보안 관제센터 -> 대상 서버
  • 보안그룹과 방화벽 정책을 확인한 결과, 대상서버에 대한 차단 정책은 적용되어있지 않음.

  • Proxy 서버의 Squid 프록시 설정은 2024년 2월 4일 이후로 변경되지 않음.

해결

  • 분석한 내용을 근거로 클라우드 보안관제센터에서 차단되었을 가능성을 확인하기 위해 문의한 결과, File Inclustion 공격 의심으로 차단된 이력 확인.

  • PM께 보고 및 보안 관제센터에 차단 해제 요청 후 테스트 결과 정상적으로 결과를 받아오는 것을 확인함.

프로젝트명

사내 쇼핑몰 구축 솔루션 백오피스 고도화

소속/기관명

투비소프트

프로젝트 기간

2024.03. ~ 2024.07.

프로젝트 내용

주요 업무

  • 디자인의 중요성보다 직관성이 중요한 어드민 페이지 특성상, 디자인에 소모되는 리소스를 감소하고 생산성을 증가시키기 위해 JSP와 Tiles3로 구성된 어드민 화면의 뷰템플릿을 Nexacro N24로 변경.

  • 상품 카테고리 관리 API를 개발해 어드민 사용자가 상품 카테고리를 더욱 쉽게 관리할 수 있도록 업무 효율 개선.

  • 지번 주소, 도로명 주소 중 하나의 필드만 저장할 수 있는 Nexacro에서 기본 제공하는 주소 검색 컴포넌트를 개선하기 위해 커스텀한 주소 검색 컴포넌트를 개발해 변경에 유연하도록 개선.

문제 해결

지번 주소, 도로명 주소를 모두 저장 가능한 커스텀 컴포넌트 개발

문제 상황

어드민 화면에서 배송지 등 주소 정보를 등록/수정시 다음 PostCode API를 이용하여 지번 주소와 도로명 주소를 모두 저장했으나, Nexacro에서 제공하는 주소 검색 컴포넌트로 변경한 이후 지번 주소값이 null로 저장되는 이슈 발견.

원인 분석

  • Nexacro 주소 검색 컴포넌트는 DataSet이라는 저장소를 가지고 주소 검색 API 조회 결과를 DataSet에 정의된 필드에 담아 사용함.

  • 해당 DataSet에는 지번 주소값을 저장할 필드가 없어서 도로명 주소값만 저장하고 있었기 때문에 해당 DataSet을 DB에 저장해도 지번 주소가 null로 저장됨.

해결

  • Nexacro에서 기본 제공하는 컴포넌트는 개발자가 직접 수정할 수 없기 때문에 컴포넌트를 분석해 직접 개발하기로 결정.

  • 자사에서 제공하는 공식 문서와 컴포넌트 개발 툴을 기반으로 지번주소 필드를 추가한 커스텀 컴포넌트를 제작하고, 주소 검색의 경우 서비스 전반에서 사용하기 때문에 이를 팀에 공유해 일관된 컴포넌트 디자인과 데이터를 저장할 수 있도록 개선.

프로젝트명

미로펫 반려동물 건강검진 플랫폼 구축 및 운영

소속/기관명

투비소프트

프로젝트 기간

2023.11. ~ 2024.02.

프로젝트 내용

주요 업무

  • PG 결제 모듈 연동(KIS 정보통신)

  • 병원 예약 관리 API 개발

  • 하버사인 공식을 활용하여 위치 기반 병원 찾기 서비스 개발

  • 대량 메일 솔루션(드림라인 UMS) 연동을 통한 알림톡, SMS, 이메일 발송 기능 개발

  • 어드민 페이지 카카오 알림톡 템플릿 관리 기능 개발

개발 환경

  • FrontEnd : JSP / JavaScript

  • BackEnd : Java8 / SpringFramework5 / SpringMVC

  • DB : Oracle 19c

  • Infra : AWS EC2 / AWS S3 / Jenkins

  • VersionControl : SVN

프로젝트명

NIPA 유망 SaaS 기업 육성 지원 사업

소속/기관명

투비소프트

프로젝트 기간

2023.06. ~ 2023.12.

프로젝트 내용

주요 업무

  • Maven 멀티 모듈 기반 Spring 레거시 프로젝트에서 Gradle 멀티모듈 기반 SpringBoot로 전환

  • 주문, 클레임 도메인 API 개발

  • Redis, Spring Data Redis를 사용해 각 API 서버간 Session이 공유될 수 있도록 클러스터링

  • API 문서화를 통한 API 명세, 히스토리 관리

개발 환경

  • FrontEnd : JSP / JavaScript

  • BackEnd : Java11 / SpringBoot 2.7 / Spring Data Redis

  • DB : MySQL

  • Infra : KT Cloud / Docker / Kubernetes / ArgoCD

  • Monitoring : Grafana

  • VersionControl : Git, GitLab

프로젝트명

공영홈쇼핑 모바일 고도화

소속/기관명

투비소프트

프로젝트 기간

2022.10. ~ 2023.05.

프로젝트 내용

주요 업무

  • 신규 어드민 페이지 개발

  • 여행 상품 등록 기능을 개선하여, 입점 업체들이 상품을 더 간단하게 등록하고 더 빠르게 쇼핑몰에 노출되어 매출로 이어질 수 있는 시간을 단축(일 평균 상품 등록 건수 4배 증가)

  • 상품 조회 쿼리 성능을 기존 60초 -> 2초로 개선하여 업무 효율을 증가

  • 상용 B2C 커머스 서비스를 분석하고 개발하면서 이커머스 도메인에 대한 업무 지식 습득

개발 환경

  • FrontEnd : ExtJS / JavaScript

  • BackEnd : Java8 / 전자정부프레임워크

  • DB : Oracle 19c

  • VersionControl : SVN

포트폴리오

URL

link

사조그룹웨어

깃허브

교육

소속/기관명

KH정보교육원

종류 | 전공

사설 교육 | 클라우드 컴퓨팅 웹 융합 응용SW엔지니어 양성 과정

재학 기간 | 재학 상태

2021.12. ~ 2022.07. | 졸업

소속/기관명

서경대학교

종류 | 전공

대학교(학사) | 실용음악학과

재학 기간 | 재학 상태

2015.03. ~ 2015.08. | 중퇴

소속/기관명

설화고등학교

종류 | 전공

고등학교 | 인문계열

재학 기간 | 재학 상태

2012.03. ~ 2015.02. | 졸업

자기소개

자기소개

안녕하세요 3년차 백엔드 개발자 박정환입니다.

주로 Java와 Spring을 기반으로 이커머스 계열의 SI 프로젝트를 수행하며 B2B, B2C의 전반적인 업무 흐름을 익혀왔습니다.

레거시한 환경에서 발생하는 다양한 문제에 대해 단계적으로 분석하며 근본적인 해결책을 찾기 위해 노력합니다. 이러한 생각을 바탕으로 쿼리 성능을 30배 개선한 경험이 있고, Nexacro에서 기본적으로 제공하고있던 비효율적인 컴포넌트를 분석하여 커스텀한 컴포넌트를 개발해 팀에 배포해 변경될 요구사항에 유연하게 대응할 수 있도록 업무 효율을 증가시켰습니다.

또한 시간이라는 한정적인 리소스를 효율적으로 사용하기 위해 온보딩 프로세스, 개발 환경 설정 방법 등을 문서화하는 등 코드 뿐만 아니라 더 넓은 시야에서 프로젝트를 발전시키기 위한 방법을 찾고 실행합니다.

이러한 경험을 통해 지속 성장 가능한 프로덕트를 만들고, 팀의 성장과 성과에 기여하고자 합니다.

댓글