채용공고 올리기

미리보기

기본 정보

이름
윤종원
직업
Back-End Engineer
이메일
eatingcookieman@gmail.com
간단소개

안녕하세요. 꾸준히 공부하는 개발자, 윤종원입니다😀

자기소개

자기소개

안녕하세요! 저는 백엔드 엔지니어 윤종원입니다.
저는 저를 아래와 같은 엔지니어로 정의하곤 합니다.

  • 복잡한 문제를 구조화하고 추상화해 단순하게 풀어내는 것을 좋아합니다.
  • 꾸준한 공부를 통해 문제를 오랫동안 끊임없이 개선하는 것을 좋아합니다.
  • 어려운 지식을 저만의 언어로 쉽게 풀어내는 것을 좋아합니다. 많은 사람에게 지식을 전파할 수 있는 사람이 되기를 원합니다.
  • 업무의 비효율을 개발로 풀어내는 것을 선호하고 이에 뿌듯함을 느낍니다.
  • 사내 개발 문화 개선이 팀의 성장 속도를 끌어올릴 수 있다고 생각하고, 팀의 성장이 곧 개인의 성장이라 믿습니다.

그리고 저라는 사람을 소개할 땐 아래와 같이 이야기하곤 합니다.

  • 책을 통해 공부하는 것을 좋아합니다. 2021년에는 31권의 책을, 2022년에는 47권, 2023년에는 43권의 책을 읽었습니다.
  • 다양한 직군의 사람들과 대화하는 것을 좋아하고 개발의 어려움을 다른 언어로 풀어내어 설명하는 것을 즐깁니다.
  • '덕분에'라는 이야기를 들었을 때 친구로서, 동료로서 깊은 보람을 느낍니다. 사람들에게 좋은 영향을 줄 수 있는 사람이 되려고 노력합니다.

기술 스택

기술 스택

경력

회사명

디어코퍼레이션

직책 • 부서

디어관제팀

담당 업무

디어코퍼레이션은 공유 킥보드 서비스를 제공하는 스타트업입니다.

디어관제팀에서 15,000대의 킥보드의 트래픽을 다루며 아래와 같은 업무를 진행했습니다.

  • 신규 IoT 시스템 설계 및 구현, 레거시 시스템을 신규 시스템으로 점진적 마이그레이션
  • 시스템의 안정성과 확장성, 그리고 가시성을 높이기 위해 아키텍처를 지속해서 설계 및 개선
  • 킥보드의 배터리 이상 현상을 실시간으로 감지하고 조치하는 시스템 설계 및 구현
  • 이동 수단을 관리하고 추상화된 API를 제공하는 Vehicle System 설계 및 구현

회사의 전반적인 AWS 리소스를 생성 및 관리했습니다. 전사 모니터링과 배포 시스템을 구축했습니다.

  • 주기적인 리소스 정리 및 최적화를 통해 월 비용 670만 원 절약
  • Prometheus와 Grafana를 이용해 모니터링 시스템 구축
  • FIS를 이용한 카오스 엔지니어링
  • Github Action, CodeDeploy, CodePipeline을 이용한 배포 파이프라인 구축, 배포 CLI 제작

사내 개발 문화 개선을 위해 책 스터디와 사내 세미나를 운영했습니다.

  • 'TDD', '리팩터링', '다재다능 코틀린 프로그래밍' 책 스터디 진행
  • 사내 세미나를 운영하며 돌아가며 주에 한 번씩 발표. '쿼리 최적화', 'Hello Kafka'라는 주제로 발표
근무 기간 (근무 형태)
2021.01. ~ 2023.03.

(2년 3개월 | 정규직)

프로젝트

소속/기관명

디어코퍼레이션

프로젝트명

Vehicle System

프로젝트 내용

Vehicle System은 전반적으로 이동 수단을 관리하는 서비스입니다. 이동 수단의 상태와 하드웨어 관리 지점을 단일화하였고 이동 수단에 대한 추상화된 API를 제공해 다른 서비스가 이동 수단과 손쉽게 상호작용할 수 있도록 했습니다.

What did I do

  • 기존 디어 상태 관리의 문제점을 파악하고, 새로운 디어 상태 다이어그램 설계
  • 모든 시스템에 흩어져있던 레거시 상태 로직을 제거하고, Vehicle System을 사용하도록 마이그레이션
  • Vehicle System의 전반적인 설계 및 구현
  • 레거시 Cron 시스템을 이벤트 기반 시스템으로 마이그레이션

Tech Stack

Kotlin, Spring Boot, MySQL, Redis, AWS SQS, AWS

프로젝트 기간
2022.09. ~ 2023.02.
(6개월)
소속/기관명

디어코퍼레이션

프로젝트명

IoT 동적 할당, 동적 스케일 프로젝트

프로젝트 내용

하드웨어와 서버가 연결되는 구조와 IoT 시스템 간의 통신 구조를 개선해 IoT 시스템의 확장성을 높이고 안정성과 가용성을 개선했습니다.

What did I do

  • IoT Relay와 IoT Biz 간의 통신 구조를 개선해 기존에 불가능하던 IoT Relay의 동적 스케일링이 가능하도록 개선(관련 아티클)
  • k6를 이용해 새로운 구조에 대한 성능 테스트를 진행하고, 아키텍처에 대한 성능 평가를 진행
  • 킥보드와 IoT Relay 간의 연결 구조를 새롭게 설계해 자동으로 장애가 복구되도록 개선해 장애 복구 시간을 20분에서 6초로 개선 (관련 아티클)
  • AWS FIS를 이용한 카오스엔지니어링을 통해 시스템의 안정성 개선 여부를 평가

Tech Stack

Typescript, Node.js, MySQL, Redis, Kafka, AWS, AWS FIS

프로젝트 기간
2022.06. ~ 2022.08.
(3개월)
소속/기관명

디어코퍼레이션

프로젝트명

하드웨어 이상 감지 시스템

프로젝트 내용

Kafka Streams를 활용해 하드웨어의 이벤트를 처리하는 시스템을 개발했습니다. 덕분에 모든 팀원이 Kibana에서 하드웨어 이벤트를 조회할 수 있게 되었고, 하드웨어 이상 현상을 실시간으로 감지해 문제가 되는 하드웨어의 수는 이전의 10% 수준으로, 관련 고객 문의는 이전의 5% 수준으로 줄여냈습니다.

What did I do

  • Kafka Streams를 이용해 이벤트의 부가 정보를 추가해 Kibana에서 편하게 하드웨어 이벤트를 조회할 수 있도록 구현
  • Kafka Streams를 이용해 하드웨어 이상 현상을 실시간으로 감지 및 대처
  • 타 부서의 원활한 이상 현상 분석 및 대처를 위한 슬랙 봇 개발

Tech Stack

Kotlin, Spring Boot, Kafka, Kafka Streams, ELK, AWS

프로젝트 기간
2022.05. ~ 2022.06.
(2개월)
소속/기관명

디어코퍼레이션

프로젝트명

IoT 시스템 레거시 개편

프로젝트 내용

기존의 IoT 레거시 시스템을 IoT Relay, IoT Biz, 그리고 IoT Cron이라는 새로운 시스템으로 마이그레이션 하는 작업을 진행했습니다. 이를 통해 비즈니스 로직을 추가하는 데 걸리던 시간을 일주일에서 단 2~3시간으로 대폭 줄일 수 있었으며, 서비스 중단 없이 소프트웨어를 배포할 수 있는 환경을 구축했습니다.

What did I do

  • IoT Biz, IoT Relay를 개발해 시스템의 안정성을 높이고 개발 속도를 개선
  • 킥보드 펌웨어 자동 업데이트, 지역 판단 로직, 속도 단계적 조정 기능 등을 구현
  • KafkaJS에 버퍼링을 지원하는 Producer를 새롭게 구현해 트래픽이 몰렸을 때 애플리케이션이 죽는 현상 해소
  • Redis를 사용하던 패턴을 개선하고, Redis 어댑터를 수정해 Redis의 GET 명령을 약 95% 줄임
  • 하드웨어 조작 중 일부 과정을 캐싱해 사용자의 이용 시작에 걸리는 시간을 1초 줄임
  • 킥보드 GPS를 시뮬레이션할 수 있는 지도 서비스, 성능 테스트를 위한 킥보드 시뮬레이터 개발

Tech Stack

Typescript, Node.js, MySQL, Redis, Kafka, AWS

프로젝트 기간
2021.05. ~ 2022.05.
(1년 1개월)
소속/기관명

디어코퍼레이션

프로젝트명

운영 센터 및 정산 프로젝트

프로젝트 내용

'지자자(지사장 자급자족)' 프로젝트의 일환으로, 기존에 지사장이 현장 관리를 위해 운영팀에 수동으로 요청하던 업무들을 스스로 처리할 수 있도록 '운영센터' 페이지를 개발했습니다. 이를 통해 운영팀과 개발팀에 대한 주간 요청 건수를 약 85% 감소시킬 수 있었습니다.
또한, 정산 계약 프로세스를 시스템에 통합하여 자동 정산이 가능한 시스템을 구축했습니다. 이에 따라 정산에 대한 부담을 낮추고, 유연한 계약을 가능케 했습니다.

What did I do

  • 현장 관리에 필요한 API 구현
  • 이전에 모호했던 이용 상태를 명확히 정의하고, 이에 맞춰 이용 내역 조회 및 정산 시스템을 개발
  • 기존에 엑셀로 관리되던 계약을 시스템이 관리하도록 마이그레이션

Tech Stack

Typescript, Node.js, MySQL, AWS

프로젝트 기간
2021.01. ~ 2021.06.
(6개월)
소속/기관명

AWS DNA

프로젝트명

Emergency Time 재난 실시간 상황 공유 서비스

프로젝트 내용

'Emergency Time 재난 실시간 상황 공유 서비스'는 AWS DNA의 해커톤에서 1등을 한 서비스입니다. 재난 상황이 발생했을 때 실시간으로 방송 및 영상 공유를 할 수 있는 지도 기반 서비스로, 재난 상황에 맞게 다음 특성을 고려했습니다.

  • 평소에는 트래픽이 매우 적으므로 사용한 만큼 돈을 내는 pay-as-you-go 구조
  • 재난 상황에 트래픽이 몰렸을 때 대응할 수 있는 구조

What did I do

  • AWS Locaiton Service, AWS Amplify, AWS IVS를 이용한 지도 기반 실시간 방송 기능 구현
  • 실시간으로 방송을 보거나, 지난 방송을 확인할 수 있는 지도 페이지 개발

Tech Stack

Typescript, React, AWS Location Service, AWS Amplify, AWS IVS

프로젝트 기간
2022.08. ~ 2022.08.
(1개월)

포트폴리오

타입

URL

깃허브
링크

Github

URL 링크
링크

Blog

URL 링크
링크

AWSKRUG #Beginner 모임 발표 (분산 시스템의 어려움부터 Kafka까지 톺아보기)

URL 링크
링크

AWS Community Day 2023 발표 (카오스 엔지니어링과 AWS Fault Injection Simulator)

교육

소속/기관명

중앙대학교

종류 | 전공

대학교(학사) | 전자전기공학부 / 소프트웨어학부(복수전공) | 이수 학점 : 157 (4.48/4.5)

재학 기간

2018.03. ~ 현재

재학 상태

재학 중

대외활동

소속/기관명

글또

활동명

글또 9기

내용
연도

2023

소속/기관명

AUSG

활동명

AUSG 7기

내용
연도

2023

소속/기관명

AWS

활동명

AWS DNA 4기

내용
연도

2022

자격증

자격증명

AWS Certified Solutions Architect Associate

점수 | 발급기관

Amazon Web Services (AWS)

취득연월

2023.12.