미리보기
기본 정보
안녕하세요 개발을 즐기고 성장하는 개발자 조동국입니다! 사용자를 위한 서비스를 개발하며 도전하고 그 과정에서 배우고 성장할 수 있다고 생각합니다. 배운 내용을 기록하고 공유하며 다 같이 성장할 수 있도록 노력하고 있습니다. 앞으로도 사용자가 좋은 경험만 할 수 있도록 항상 고민하고 개선해 나가며 동료들과 문제를 해결해 나가는 개발자가 되고 싶습니다.
기술 스택
Java, Spring, MySQL, Redis, Python, Vue.js, Next.js, AWS, Docker, JPA, JavaScript, Android, Kotlin, GitHub, 네이버 클라우드
경력
프로젝트어스
연구원 | 솔루션개발팀
2021.08. ~ 2023.07. (2년)
1. 생물정보 데이터 수집 프로그램 개발
분석 프로그램에서 사용할 수 있도록 가공된 데이터를 수집 및 정규화 하는 작업을 진행
기술 스택
Java, Spring, JPA, Python, MySQL
주요 성과
빠른 목표 달성을 위해 쉽게 데이터를 수집할 수 있는 기술과 빠르게 개발할 수 있는 기술을 활용
웹 크롤링에 적합한 Python을 활용하여 데이터 수집
데이터 접근이 잦아, 쉽고 효율적인 접근을 위한 Java/Spring과 JPA 활용
약 800만건의 데이터 수집 및 데이터 정규화 작업 수행
개발사항
생물정보팀과 협업하여 데이터 분석 및 정규화 작업 진행
웹 크롤링 및 대용량 XML 파싱 프로그램 개발
Open API를 통한 프로그램 개발
2. 서버 모니터링 프로그램 개발
수정이 어려운 레거시 프로그램의 이슈를 빠르게 파악하여 안정적인 서비스를 제공할 수 있도록 모니터링 기능을 개발
기술 스택
Python, MySQL, Webhook
주요성과
사용자 입장에서 불편함을 느끼는 요소를 줄였으며, 이슈 파악 및 처리 시간을 단축
오픈소스 모니터링 툴을 고려하였으나, 직접 개발하는 쪽이 빠를 것으로 판단하여 직접 개발
주기적으로 업데이트 되는 서버 상태 데이터를 모니터링 하여, 주기적으로 업무 메신저로 전송
개발사항
저장된 DB상의 서버 상태를 30분 단위로 조회 및 분석하여 업무 메신저로 전송
3. 국가생물종목록 관리자 페이지 유지보수 및 데이터 관리
기술 스택
Java, 전자정부프레임워크, MyBatis, Oracle, MySQL
주요성과
주기적으로 갱신되는 데이터 관리를 담당했으며, 관리자 페이지에 필요한 기능을 개발
개발사항
DB상에 저장 된 종목록 데이터를 검색할 수 있는 기능을 개발
프로젝트
COM,MA
기타
2024.01. ~ 2024.03.
인디 작곡가를 지원하기 위한 음악 플랫폼
작곡가들에게 음원 피드백과 홍보, 후원 기회를 제공하여 창작 활동을 지원하기 위해 개발했습니다.
활용 기술 스택
Typescript/Next.js
Java/Spring boot, JPA, MySQL, Redis, JWT, Spring Security
NCP(Naver Cloud Platform), Docker, Github Action
주요 기여 이력
시간이 제한되어있어 빠른 개발을 위한 기술스택 위주로 활용했습니다.
Object Storage(S3)를 활용하여, 별도의 파일 서버 구현 없이 개발
Cloud Function(Lambda)으로 음원파일 업로드 시 인코딩 이벤트를 처리하도록 설정 및 실시간으로 진행되는 인코딩 결과를 전달
SSE, Long Polling, Redis pub/sub을 통해 실시간 알림 전송 및 빠른 메시지 기능 구현
빠른 업로드와 스트리밍 서비스와의 연계를 위해 사용
개발 사항
음원 업로드 시 Presigned Url을 통해 클라이언트에서 업로드할 수 있도록 구현
초기 구현 시 서버를 통해 업로드를 하여 비효율적이던 로직을 개선
업로드 속도를 5초에서 1.5초로 70% 개선
음원 업로드 후 인코딩 완료 Callback을 SSE, Redis로 전달하는 기능 개발
업로드한 음원을 바로 사용하여 음원이 재생되지 않는 문제 발생
음원 인코딩을 추가하여 음원이 재생되지 않는 문제 해결
작곡가의 활동 이벤트를 Long Polling으로 전달하는 기능 개발
DefferredResult를 통한 비동기 처리 시, 요청 중에 완료된 인증 정보를 응답 시 확인할 수 없는 문제 발생
Spring Security 6 이후 변경사항에 따라 SecurityContextRepository를 지정하여 문제 해결
Nyangmunity
개인
2021.07. ~ 진행 중
고양이 이미지를 공유하고 고양이 이미지를 제공하는 서비스
고양이 사진 공유를 좋아하는 사용자를 위해 사진 공유 커뮤니티와 여러 고양이 사진을 url 형식으로 제공하기 위해 만들었습니다.
활용 기술 스택
TypeScript/Vue.js
Java/Spring boot, JPA, MySQL, Redis, JWT, Spring Batch, Spring Security
AWS (EC2, S3, Cloud Front), Docker, Github Action
주요 기여 이력
Spring Batch를 활용하여 외부 이미지 API 내 고양이 이미지를 매일 갱신하여 제공하도록 구현
S3와 Cloud Front를 활용하여 업로드한 이미지를 URL로 제공되도록 구현
개발 사항
Scheduler를 통해 설정한 Batch Job이 매일 작동하도록 개발
업로드 된 이미지를 URL로 변환하여 제공하는 기능 개발
포트폴리오
교육
멋쟁이사자처럼
사설 교육 | 백엔드스쿨 7기
2023.11. ~ 2024.04. | 졸업
동양미래대학교
대학교(전문학사) | 컴퓨터정보공학과
2019.03. ~ 2021.02. | 졸업
덕이고등학교
고등학교 | 이과
2016.03. ~ 2019.02. | 졸업
대외활동
2020 스마트 ICT 창의공학대회 우수상
동양미래대 컴퓨터정보공학과
현대인들의 물 마시는 습관을 개선하기 위한 프로젝트
현대인들의 수분 섭취 습관을 개선하기 위해 아두이노를 사용한 물컵과 안드로이드 앱을 사용하여
활용 기술 스택
Arduino
Java(Android), firebase
Git
주요 기여 이력
아두이노 물컵에 음료가 들어갔을 때, 음료 종류 설정 및 음수량 체크 기능 구현
Firebase와 연동하여 음수량을 실시간으로 기록하고 사용할 수 있도록 구현
자격증
정보처리
산업기사 | 한국산업인력공단
2020.11.
외국어
영어
일상 회화 가능
자기소개
저는 만드는 것과 성취감을 얻는 것을 좋아해서 개발을 시작하게 되었습니다.
공부하는 과정에서 아두이노, 앱, 웹 등 다양한 분야에서 서비스를 만들어 보면서 개발 뿐만이 아닌 사용자, 기획, 디자인 등 다양한 관점에서 생각하는 방법을 배웠습니다.
사용자에게 편리한 서비스를 지향하며, 어떤 문제든 도전하는 것을 좋아합니다.
그 과정에서 배우고 성장할 수 있다고 생각하며, 배운 내용을 정리하고 공유하는 것을 좋아합니다.
앞으로도 사용자를 위한 서비스를 고민하고 개선해 나가며 동료들과 문제를 해결해 나가는 개발자가 되고 싶습니다.