채용공고 올리기

이원호님을 응원해보세요!

이직/구직 중이에요
성실함
책임감
협업 지향
학습 지향
신뢰

미리보기

기본 정보

이름
이원호
직업
백엔드 개발자
간단 소개

개인 보단 조직을 먼저 생각하는 개발자 이원호입니다.

기술 스택

기술 스택

Java, JavaScript, Spring, Spring Boot, JPA, MySQL, Redis

경력

회사명

(주)에스피파트너스

직급 | 부서 | 근무 유형

주임 | 개발2팀

근무 기간

2021.02. ~ 2023.12. (2년 11개월)

담당 업무

Project Lead

2023.04. - 2023.12.

  • IoT 대기환경 측정 데이터 기반 대기환경 대응 시스템 구축

    • 프로젝트 기획 및 제안

      • 제안요청서의 내용을 토대로 기획서를 작성하고 고객 제안 및 입찰을 거쳐 계약까지 진행

    • 아키텍처, DB, 기능, 화면 설계 및 개발

      • 고객 대상 인터뷰 및 미팅 진행 후 기능 및 화면 설계

      • 기능에 따른 도메인 정의 후 아키텍처, DB 설계

    • 도로청소 차량 청소 최적경로 추천 기능 개발

      • IoT 대기환경 측정장치로부터 수집된 데이터의 분석결과 값을 통한 도로청소 차량의 청소 최적경로 개발

      • 구현된 최적경로를 소켓통신을 통해 청소차량별로 청소경로 실시간 제공

    • 내·외부망 통신환경 구축

      • DMZ 서버에서 Nginx 리버스 프록시를 활용하여 내부망 접근 환경 구축

      • 내부 서버에서 외부 데이터 수집 및 외부에서 내부 서버 API 접근 환경 구축

Developer

2021.02. - 2023.03.

  • 빅데이터 솔루션 고도화

    • 아키텍처 리팩토링

      • 기존 Service 레이어에서 Repository 레이어의 구현체 직접 참조하는 모델에서 추상화계층을 추가하여 레이어 간 강결합 제거

      • 추상화계층 참조를 통해 기존에 MariaDB에 관련된 SQL만 처리하는 MyBatis 구현체에서 PostreSQL DB도 사용할 수 있는 구조로 리모델링

      • 향후 JPA, MyBatis 등 고수준 모듈의 참조를 통해 Service 레이어 코드에 영향을 받지 않도록 DB 접근 환경 유연화

    • 스케줄러 기능 개발

      • 스케줄러 시간에 따른 API 쿼리스트링 값 변경 등으로 API 호출을 커스텀화해서 최신화된 API 데이터 호출 기능 개발

      • API 데이터 결과값을 EXCEL 또는 CSV 파일 변환 기능 개발

      • 설정된 스케줄마다 저장된 특정 커맨드라인을 런타임 환경에서 입력할 수 있도록 하여 특정 위치의 파일의 이동이나 출력을 할 수 있는 기능 구현

  • 관용차량 이용 및 출장 업무 간소화 기능 개발

    • 유가정보, 지도, 길찾기 API 기반 차량운행정보 관리기능 개발

    • 버스운행정보, 기차운행정보 API 기반 출장정보 관리기능 개발

  • 보고서 자동 생성 간소화 기능 개발

    • 보고서(HWP, PPT) 자동 생성 솔루션 활용

    • 보고서 템플릿 작업 및 데이터 연동 기능 개발

    • 데이터 수집 모듈 개발 및 스케줄링 환경 구축

프로젝트

프로젝트명

콘서트 예약 서비스

소속/기관명

개인

프로젝트 기간

2024.04. ~ 진행 중

프로젝트 내용

대기열로 트래픽을 처리한 콘서트 예약 서비스

  • 아키텍처

    • Layered 아키텍처와 Clean 아키텍처의 장점을 결합하여 도메인 중심의 고수준 관심사를 인터페이스를 통해 분리했습니다.

    • 데이터계층과 API계층이 도메인의 비즈니스로직 추상클래스에 의존하도록 하여 모듈 간 결합도를 낮췄습니다.

    • 애플리케이션 핵심인 도메인이 보호되도록 아키텍처 설계에 집중했습니다.

    • DIP와 OCP가 만족되는 아키텍처를 구성했습니다.

  • 대기열 트래픽 제어

    • 콘서트 예약과 결제 API 호출 시, 접근 가능 인원 50명을 제한해 대기열을 구현했습니다.

    • Redis를 통해 Set에 활성 토큰과 SortedSet에 대기 토큰을 발행하여 트래픽을 제어했습니다.

    • 활성 토큰이 발행 시 토큰ID 별로 TTL Key를 생성해 만료정책을 관리하였으며, 활성 토큰의 작업 종료 및 만료 시 Sorted Set의 대기자의 토큰이 순차적으로 활성화 되도록 했습니다.

  • 동시성 문제 처리

    • 콘서트 예매 API 호출 시, 예매할 콘서트 좌석 조회에 비관적락을 적용했으며, 좌석 데이터 Row에 배타락을 걸어 동시성 문제를 해결했습니다.

    • 사용자의 포인트 충전 API 호출 시, API 중복 요청 방지를 위해 낙관적락을 적용하여 데이터의 갱신손실 문제와 같은 동시성 문제를 해결했습니다.

  • JUnit, Mockito를 활용한 테스트코드 작성

    • 메서드별로 테스트를 수행했으며, Testable한 코드가 될 수 있도록 리팩토링 과정을 거치며 테스트코드를 작성했습니다.

    • DIP 원칙 하에 설계된 아키텍처를 토대로 의존모듈에 대한 Mocking 테스트가 가능하도록 했습니다.

    • 테스트하기 좋은 코드가 잘 설계되고 잘 작성된 코드라는 것을 되새기며 좋은 테스트코드를 작성하기 위해 노력했습니다.

포트폴리오

URL

link

https://github.com/johnowlee/concert-booking

URL 링크

교육

소속/기관명

항해99

종류 | 전공

사설 교육 | 항해플러스 백엔드 4기

재학 기간 | 재학 상태

2024.03. ~ 2024.05. | 졸업

소속/기관명

예담직업전문학교

종류 | 전공

사설 교육 | 디지털컨버전스 기반 Java 개발자 양성 과정

재학 기간 | 재학 상태

2021.01. ~ 2021.08. | 졸업

소속/기관명

계명대학교

종류 | 전공

대학교(학사) | 경제금융학

재학 기간 | 재학 상태

2010.03. ~ 2016.08. | 졸업

외국어

외국어명

영어

점수

일상 회화 가능

자기소개

자기소개

3년차 개발자로 빅데이터 솔루션 기반 IT서비스 회사에서 기획부터 설계, 개발, 배포 및 운영까지 전 과정에서 다양한 경험을 했습니다. 주로 공공기관과 협업했으며 고객 인터뷰, 설계 및 개발, 납품된 소프트웨어의 고도화 및 유지/보수 업무 등을 수행했습니다.

시스템 구축의 처음부터 끝까지 전 과정에서 다양한 직무 및 직군의 구성원들과 커뮤니케이션 및 협업을 경험했습니다. 개발자로서는 백엔드, 프론트엔드 개발부터 프로젝트 리더 역할까지 수행했습니다.


항상 조직의 성장을 최우선으로 생각합니다.

  • 회사에서 참여했던 매 프로젝트마다 ‘완수’가 목표였으며 참여했던 프로젝트는 모두 성공적으로 수행했습니다.

  • 회사와 조직의 경험 및 자원의 부재로 발생하는 문제에도 적극 참여하여 문제를 관리하고 해결했습니다.

  • 이와 같은 성과로 입사 이후 조직의 꾸준한 매출액 성장에 기여했으며 참여했던 프로젝트 중 하나는 대통령상을 수상했던 경험이 있습니다.

개인의 성장을 소흘히 하지 않으려 노력합니다.

  • 개발 조직의 성장은 개인 구성원들의 성장에 기반한다고 생각합니다.

  • 개인 역량의 향상은 조직의 업무 진행 속도와 유지/보수 증진에 귀결됩니다. 따라서 업무 외에 부족한 부분을 채워나가기 위해 노력합니다.

  • 현재는 CS, TDD, 아키텍처, DDD, 클린코드 등에 관심을 가지며 지속적으로 공부하고 있습니다.

조직과 개인의 기술 및 역량의 발전을 추구합니다.

  • 새로운 기술과 지식 습득에 적극적으로 임하며 조직원들과의 지식의 공유를 즐깁니다.

  • 낡은 기술을 지양하고 진보적인 기술의 도입을 지향합니다.

  • Restful API, 디자인패턴, 클린코드, OOP등 기존에 조직에서 사용하지 않았던 기술들을 학습하여 조직원들과 지식을 공유하고 코드리뷰를 진행하였으며 프로젝트에 도입한 경험이 있습니다.

댓글