채용공고 올리기

윤원준님을 응원해보세요!

INFCON 참여
이직/구직 중이에요
성실함
분석적
비전 지향
자기 주도적
열정적

미리보기

기본 정보

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

물음표에 대해 놓치지 않고 꾸준히 알아가며 성장하는 백엔드 개발자 윤원준 입니다.

자기소개

자기소개
  • 복잡한 구조를 추상화하고 명확한 명칭을 사용하여 코드의 가독성을 높이는 것을 좋아합니다.
  • 기능별로 코드를 모듈화하여 재사용성을 높이는 것을 선호합니다.
  • 어려운 문제에 대해 두려움 없이 도전하고 해결하며, 그 과정에서 성취감을 느낍니다.
  • 새로운 기술을 학습하고 적용하는 것을 즐기며, 얻은 경험과 지식을 공유하여 함께 성장하는 과정에서 보람을 느낍니다.

기술 스택

기술 스택

Spring, Spring Boot, Java, Docker, PostgreSQL, MySQL, Redis, JPA, querydsl, Kubernetes

경력

회사명

주식회사비네아

직급 | 부서 | 근무 유형

사원 | 소프트웨어개발팀

근무 기간

2021.09. ~ 2024.03. (2년 7개월)

담당 업무

비네아는 정부 출연 연구기관과 공공기관을 대상으로 시스템 통합(SI) 및 시스템 유지보수(SM) 서비스를 제공하는 회사입니다.

프로젝트 개발 및 구축, 유지보수, 운영 및 관리하면서 아래와 같은 업무를 진행했습니다.

  • 사용자별 분석 환경을 안정화하고 작업 효율성을 높이기 위해 표준화된 분석 환경 시스템 구축

  • Pod의 안정적인 배포를 보장하기 위해 분석 환경 Pod를 사전에 검증하는 시스템 구축

  • 사용자 맞춤형 대용량 데이터 저장소 구축 및 관리 시스템 개발

  • 데이터 수집 서버와 데이터 정제 및 통합 서버 간의 작업을 자동화하는 시스템 설계 및 구현

  • 비효율적인 레거시 코드와 쿼리를 분석하여 코드 품질 개선 및 성능 최적화

회사와 팀을 위해 주도적으로 활동했습니다.

  • Docker로 내부 개발 환경을 구축하여 배포 환경을 표준화하고 메모리 자원을 효율적으로 관리

  • 노션을 도입하여 팀원들과 이슈를 공유하고 소통하는 시간을 늘려 프로젝트 관리를 개선

프로젝트

프로젝트명

2024년도 국가연구데이터플랫폼(DataON) 운영 및 관리

소속/기관명

주식회사비네아

프로젝트 기간

2023.12. ~ 2024.03.

프로젝트 내용

기존 사용자별 분석 환경을 개선하고, 안정성을 사전에 검증하여 배포하는 시스템을 구축했습니다. 이를 통해 표준화된 분석 환경을 제공하여 시스템의 안정성과 신뢰성 높이고, 사용자의 작업 효율성을 향상시켰습니다.

작업 내용

  • 사용자별 분석 환경에서 필수 라이브러리를 수동으로 설치해야 하는 번거로움과 버전 충돌 문제를 해결하기 위해 Dockerfile을 작성하고 이미지를 빌드하여 표준화된 분석 환경(Java, Python, Rscript)을 제공했습니다. 이를 통해 설정 시간을 단축하고 안정성과 작업 효율성을 향상시켰습니다.

  • Kubernetes Job Controller를 활용하여 Dockerfile로 빌드된 이미지의 안정성을 검증하고, 분석 환경의 Pod를 안정적으로 배포하기 위한 시스템을 구축했습니다. 이를 통해 Pod 실행 전 잠재적인 문제를 사전에 발견하고 처리하여 시스템의 신뢰성을 높였습니다.

사용 기술 및 환경

Kubernetes, Docker, CentOS

프로젝트명

국가연구데이터플랫폼 5차 구축

소속/기관명

주식회사비네아

프로젝트 기간

2023.06. ~ 2023.11.

프로젝트 내용

국가연구데이터플랫폼(DataON)에 새로 추가되는 국내/해외 3개 기관의 OpenAPI를 활용하여 데이터 수집, 정제 및 통합하는 시스템을 확장하고, 데이터 수집 서버와 데이터 정제 및 통합 서버 간의 작업을 자동화하는 시스템을 개발하여 개발자와 관리자의 작업 효율성을 향상시켰습니다.

작업 내용

  • 수집한 데이터를 정제하고 통합하는 과정에서 중복 코드를 최소화하고 유지보수성을 높이기 위해 공통 코드를 개발하여 코드 양을 10000줄 이상에서 2000줄 이하로 기존 코드량 대비 약 80% 감소시켰습니다.

  • 서버 간 호출 시 Session Clustering 이슈가 발생하여, 먼저 리눅스명령어 ping, telnet, tcpdump로 네트워크와 특정 포트의 상태를 확인했습니다. 이 과정에서 네트워크 연결에 문제가 없음을 확인한 후, Apache HTTP Server와 Apache Tomcat 간에 AJP 프로토콜을 설정하여 문제를 해결했습니다. 이로 인해 웹 서버와 WAS 간의 통신이 안정화되었습니다.

  • 데이터 수집 서버와 데이터 정제 및 통합 서버 간의 작업을 동기화하여 자동화하고, 수집된 데이터를 비동기적으로 재통합하는 시스템을 설계하고 구현했습니다. 이로 인해 관리자의 작업 처리 속도와 수집된 데이터의 재사용성을 향상시켰습니다.

사용 기술 및 환경

Kubernetes, Spring, Java, PostgreSQL, MyBatis, CentOS, Tomcat, GitLab, JSP, JavaScript, HTML/CSS

프로젝트명

국가연구데이터플랫폼(DataON) 운영 및 관리

소속/기관명

주식회사비네아

프로젝트 기간

2023.01. ~ 2023.06.

프로젝트 내용

단일 서버로 하루 약 20만건의 데이터를 다루는 시스템의 부하를 줄이기 위해 로드 밸런싱을 적용하고, 약 80GB 규모의 테이블 조회 속도가 저하된 쿼리들을 성능 분석하여 최적화했습니다.

작업 내용

  • 단일 서버로 하루 약 20만건의 데이터를 다루는 시스템의 부하를 줄이기 위해 2개의 Tomcat 서버를 사용하여 로드 밸런싱를 적용했습니다. 이로 인해 서버 간의 부하를 분산시켜 시스템 가용성과 성능을 향상시켰습니다.

  • 약 80GB 규모의 테이블 조회 속도가 저하되어 성능 분석을 통해 불필요한 join과 인덱스를 제거하여 쿼리와 인덱스를 최적화했습니다. 그 결과, 조회 속도가 30초 이상에서 8초 이하로 기존 속도 대비 약 73% 향상되었습니다.

사용 기술 및 환경

Kubernetes, Spring, Java, PostgreSQL, MyBatis, CentOS, Tomcat, GitLab, JSP, JavaScript, HTML/CSS

프로젝트명

국가연구데이터플랫폼 4차 구축

소속/기관명

주식회사비네아

프로젝트 기간

2022.09. ~ 2022.12.

프로젝트 내용

이 프로젝트는 크게 3개의 서비스로 분할된 MSA 형태의 시스템입니다. 여기서 사용자 맞춤형 대용량 데이터 저장소를 구축하고, 저장소 용량의 신청 및 수정을 관리하는 시스템을 RESTful API로 설계하여 개발했습니다.

작업 내용

  • 사용자별로 필요한 용량의 저장소를 제공하기 위해 Lustre 분산 파일 시스템을 활용하여 대용량 데이터 저장소를 구축했습니다. 이를 통해 대규모 데이터 처리, 분석, 저장을 안정적으로 운영할 수 있었습니다.

  • 저장소 용량 신청 및 수정을 관리하기 위해 네트워크 통신의 복잡성을 추상화하는 RMI 서버를 도입하여 대용량 데이터 저장소 관리 시스템을 객체지향적으로 개발했습니다. 이를 통해 시스템의 안정성과 저장소 관리 효율을 높였습니다.

사용 기술 및 환경

Kubernetes, Spring, Java, PostgreSQL, MyBatis, CentOS, Lustre, RMI, Tomcat, GitLab, JSP, JavaScript, HTML/CSS

프로젝트명

처방적 지식분석 정보추출기반 연구자 맞춤 연구정보 제공을 위한 지능형 큐레이션 서비스

소속/기관명

주식회사비네아

프로젝트 기간

2022.02. ~ 2022.09.

프로젝트 내용

연구자들이 필요로 하는 핵심 정보를 추출하기 위한 분석 작업에서 대용량 데이터를 효과적으로 분석할 수 있도록 시스템과 환경을 개선했습니다.

작업 내용

  • 하나의 리눅스 서버에서 여러 프로젝트를 배포하여 사용하는 과정에서 지속적으로 발생한 Out Of Memory 이슈를 해결하기 위해 Docker를 도입하여 내부 개발 환경를 구축했습니다. 이를 통해 각 프로젝트를 독립된 컨테이너로 메모리 제한을 설정하여 배포하고 관리했습니다. 그 결과, 안정적으로 메모리를 관리하여 시스템의 확장성을 높였습니다.

  • 프로젝트를 tar 파일로 압축하여 관리하던 방식을 Docker Image로 전환하여 리소스 비용을 절약하고 안정적으로 버전을 관리했습니다. 더불어 일관된 배포 환경 제공으로 개발 및 테스트의 유연성을 높였습니다.

  • 대용량 데이터를 일괄로 분석하던 시간이 길어져, 특정 작업이 시스템 자원을 비효율적으로 점유하는 문제를 해결하기 위해 멀티프로세싱 기능을 도입했습니다. 이를 통해 대용량 데이터를 병렬로 분석하여 처리 시간을 4시간에서 20분으로 기존 분석 시간 대비 약 90% 향상시켰습니다.

  • DB 테이블에 매일 약 25만 건씩 학습된 데이터가 쌓여 분석 성능이 저하되는 문제를 해결하기 위해 Crontab 스케줄러를 활용하여 데이터를 일별로 백업하고, 테이블을 분리했습니다. 이를 통해 일별 데이터를 비교 분석하고 유용한 데이터로 재구성하여 데이터 분석 성능을 최적화했습니다.

사용 기술 및 환경

Docker, Spring, Java, MySQL, MyBatis, Ubuntu, Tomcat, GitHub, Python, JSP, JavaScript, HTML/CSS

포트폴리오

URL

link

성장하는 인삼의 개발 블로그

티스토리
link

성장하는 인삼의 지식 블로그

깃허브

교육

소속/기관명

목원대학교

종류 | 전공

대학교(학사) | 정보통신융합공학

재학 기간 | 재학 상태

2016.03. ~ 2022.02. | 졸업

자격증

자격증명

SQLD

점수 | 발급기관

한국데이터산업진흥원

취득연월

2023.07.

자격증명

정보처리기사

점수 | 발급기관

한국산업인력공단

취득연월

2022.06.

댓글