🧾 Resume.

Back-End Developer

💡
텍사스 사막에 떨어져도 살아남는 개발자, Cha Cha 입니다.

🛠 Skill.


⭐⭐⭐ (활용 가능)
  • Java
  • Spring
  • JPA QueryDsl MySQL
  • Spring Batch
  • JWT
⭐⭐ (사용 가능)
  • Docker
  • Jenkins
  • Redis
  • EC2
  • S3
(이용 경험)
  • JavaScript
  • Express.js
  • Nginx
 

🥇 Certificates


Computer

🪪 정보처리기사 24202070806J 한국산업인력공단 (2024.09.10)
🪪 SQLD 050008895 한국데이터산업진흥원 (2023.10.28)

English

🪪 OPIc IH 2A5954821312 ACTFL (2023.09.13)

ETC

🪪 기사 22204011000N 한국산업인력공단 (2022.12.30)
🪪 지게차운전기능사 20820230167K 한국산업인력공단 (2020.11.12)
 

🏆 Awards


🏅 2024.04 : 삼성 청년 SW 아카데미 2학기 Best Member (삼성 멀티캠퍼스)
🏅 2024.02.16 : 삼성 청년 SW 아카데미 2학기 공통프로젝트 'DIVA' 우수상 (삼성 멀티캠퍼스)
🏅 2024.01 : 삼성 청년 SW 아카데미 2학기 Best Member (삼성 멀티캠퍼스)
🏅 2022.11.25 : 친환경설비기술공모전 입선 '에너지 사용량을 이용한 1인가구 재실자 스케줄 파악' (한국친환경설비학회)
🏅 2022.06 : 2022 1학기 Dean's List
🏅 2021.11.26 : 친환경설비기술공모전 입선 '초고층건물에서 연돌효과를 이용한 소형 풍력발전기의 적용 검토 및 가이드라인 제시' (한국친환경설비학회)
 

🎈Experiences


👨🏻‍🎓 2023.07.05 - 2024.06.30 삼성 청년 SW 아카데미(SSAFY)
🧾 2022.06 대한설비공학회 하계학술발표대회 '1인 가구 에너지 사용량을 이용한 재실자 스케쥴 파악' 논문 발표
👨🏻‍🎓 2021.08 - 2022.08 환경 및 에너지 연구실
👨🏻‍🎓 2017.03 - 2023.08 학사
🧳 2013.07 - 2014.08 Texas Exchange Student Junior Year
 

🎓 Education


👨🏻‍🎓 2017.03 - 2023.08 학사
🧾 2021.08 - 2022.08 환경 및 에너지 연구실 학부연구생
🧾 2022.06 대한설비공학회 하계학술발표대회 '1인 가구 에너지 사용량을 이용한 재실자 스케쥴 파악' 논문 발표
 
🏅 2022.03 - 2022.06 1학기 Dean's List
🏅 2022.11.25 친환경설비기술공모전 입선 '에너지 사용량을 이용한 1인가구 재실자 스케줄 파악' (한국친환경설비학회)
🏅 2021.11.26 친환경설비기술공모전 입선 '초고층건물에서 연돌효과를 이용한 소형 풍력발전기의 적용 검토 및 가이드라인 제시' (한국친환경설비학회)
 

😄 About me


“사람은 꿈을 통해 비로소 배우고 즐길 수 있다.”

저는 대학 3학년까지 꿈이 없는 사람이었습니다. 때문에 입시, 전공 공부 등 모든 것에 의지를 찾아볼 수 없었습니다. 하지만 컴퓨터에 대해 아는 것 하나 없었음에도, 대학 축제 주점 POS 서비스 개발에 도전함으로써, ‘웹 개발’이라는 인생에서 처음으로 가슴뛰는 일을 발견했습니다. 이를 통해, 하루 200만원이 넘는 매출을 문제없이 처리하는 서비스를 완성해볼 수 있었습니다.
이후 삶 주변의 개선점을 관찰함으로써 ‘단과대 공지 알림 서비스’, ‘음역대 기반 음악 추천/노래방 서비스 DIVA’, ‘AI로 미리 입어보는 쇼핑몰 FitMe’ 등 다양한 사람의 니즈를 해소해주는 서비스를 개발했고, 기술로 사용자들의 삶을 개선할 수 있다는 매력에 매일 매일 행복한 개발자의 꿈을 이뤄가고 있습니다.
이렇게 단단한 철학을 기반으로 사용자의 문제를 해결하고, 사랑받는 서비스를 만드는 개발자가 되도록 노력하겠습니다.
 

“개발은 엔지니어링이다.”

저에게 개발이란 주어진 자원에서 최선의 솔루션을 제시하는 컴퓨터 엔지니어링이라고 생각합니다. 저는 음역대 기반 음악 추천/연습 서비스 DIVA를 통해 다음 역량을 기를 수 있었습니다.
 
첫째, 한정된 시간에서 최선의 결과를 제시할 수 있습니다.
저희 팀은 DIVA 서비스의 최종 목표를 다음과 같이 정의했습니다.
“노래방 Top100 음원 뿐만 아니라 어떠한 음원이든 MR 음원/실시간 가사 생성을 자동화하여 사용자가 바로 즐길 수 있으면 좋겠다.”
이는 집에서 간편하게 노래 연습을 하고 싶어하는 사용자들의 니즈를 완벽하게 충족 시킬 수 있는 목표였습니다. 하지만 6주라는 짧은 시간 안에 디자인/설계/구현/배포 등 모든 작업을 완료해야했기 때문에, 팀의 리더로서 “사용자의 추가적인 편의를 개선할 수 있는 것들은 핵심 서비스 구현 이후에 개발하더라도 늦지 않는다.”고 판단했습니다.
제한된 시간과 자원 안에서 데드라인에 맞는 적절한 목표를 설정하는 것이 프로젝트의 가장 중요한 특성임을 알았기에 앞서 정한 최종 목표보다 더욱 핵심적인 목표만 추렸고, 결국 기한 안에 성공적으로 완성하여 사용자들에게 서비스를 제공할 수 있었습니다.
 
둘째, 라이브러리를 분석해 문제를 해결 할 수 있도록 커스텀하며, 데이터 처리를 자동화하여 개발 기간을 단축할 수 있습니다.
“음원 확보”라는 목표 아래, 해결해야하는 문제를 “음원 추출”, “실시간 가사 생성”, “채점” 등 구체적인 기능으로 재정의했으며, 대중이 좋아하는 노래방 100을 대상으로, 크롤링을 주도했습니다. 이후 MR/실시간 가사를 위해 수많은 AI 라이브러리를 조사했고, 커스텀해 200곡에 달하는 음원을 확보, 채점 서버를 구현했습니다.
이렇게 100명 이상의 사용자가 공감하고 즐길 수 있는 서비스를 출시했고, 서비스 핵심 관심사를 해결하는 백엔드 테크 리더로 성장할 수 있었습니다.
 
셋째, 효율적이고 안정적인 서비스를 위한 기술을 빠르게 도입할 수 있습니다.
여행 정보 프로젝트에서 여러 조건을 선택하는 조회 API의 응답시간을 최적화한 경험이 있습니다. 초기에는 쉽게 개발 가능한 페이징으로 구현했지만, 34,895건의 마지막을 조회할 때 .1초가 넘는 현상을 발견했습니다. 이에 데이터가 늘어나면 기하급수적으로 느려질 것이라 판단했고, No Offset 조회를 도입했습니다. 이를 통해 같은 건수에서 응답시간을 .00087초로 117배 개선하여 백엔드 개발자로서 더 나은 사용자 경험을 제공할 수 있었습니다.
비즈니스 로직/데이터 정합성을 유지하기 위해 검증과 트랜잭션에 대해 고민했습니다. 회원가입 시, 유틸 클래스를 통해 비밀번호 규칙 검사를 구현했고 외부에서 들어오는 데이터를 걸러낼 수 있었습니다. 또한, 이미지 업로드 시, S3와 DB의 상태를 동기화하기 위해 업로드 실패 시 예외처리를 고려하여 개발했습니다. 이로써 DB와 S3의 정합성을 유지했으며, 추후 중요 데이터를 다룰 때 이 기술을 활용해 데이터를 안전하게 처리하여 사용자에게 최고의 경험을 제공하는 개발자가 되도록 노력하겠습니다.
 

“텍사스 사막에 떨어져도 살아남는 개발자”

고등학교 때 홀로 미국 텍사스에 교환학생으로 공부하러 간 경험이 있습니다. 3000명 중 유일한 아시아인으로서 초반에는 수많은 인종차별을 경험했습니다. 하지만 저는 다양한 인종의 사람들에게 먼저 다가가 친구가 될 수 있었고, 평균키 190cm가 넘는 농구부에 들어가 그들과 한 팀이 되어 경기에도 참가해볼 수 있었습니다.
이 경험을 통해, 텍사스 사막 한가운데 떨어져도 어떻게든 적응할 수 있는 역량을 기를 수 있었으며 이를 업무에 적용한다면, 어떤 언어, 도메인 업무를 맡더라도 적응하고, 프로젝트를 적극적으로 주도하여 개발을 이끌어나갈 수 있다고 생각합니다.
그 예로, 사용자가 구매 전에 미리 입어봄으로써 온라인 패션 쇼핑몰의 반품률을 낮출 수 있는 AI 피팅 / 쇼핑몰 서비스 FIT ME를 개발한 경험이 있습니다.
처음 접하는 도메인임에도 서비스에 핵심 기능인 AI 피팅을 구현하기 위해 관련 논문을 주도적으로 조사, 검증했으며 이를 사용자들이 필요로 하는 프로젝트로 구현해낼 수 있었습니다. 뿐만 아니라, 추천 시스템에도 도전하여 해당 상품과 연관이 높은 상품을 추천해내는 Content-based Filtering을 구현할 수 있었습니다.
결국, 저만의 역량을 통해 프로젝트를 성공적으로 출시할 수 있었고, 개척정신을 가진 개발자로서 팀에 큰 기여할 수 있다고 생각합니다.
 

🚀 Projects.


DIVA

💡

음역대 기반 음악 추천 및 연습 서비스

기간 :

2024.01 - 2024.02

기술 :

Backend
Java, Spring Boot, JPA, QueryDsl, MySQL
Frontend
Typescript, Next.js, React, Jotai
AI
Tensorflow, Pytorch, UltraSinger, WhisiperX
Infra
Docker, Jenkins, Nginx
Soft-skill
Agile Team Projects

GitHub :

개요

어디서나 연습할 수 있는 내 손안의 노래방, DIVA!
notion image
notion image
notion image
notion image
notion image
notion image

음원 확보및 AI 라이브러리 커스텀

20개가 넘는 오픈 소스 라이브러리 조사/분석하여 프로젝트에 적합한 라이브러리를 선정했습니다.
특히, OpenAI의 ASR 모델인 Whisper X, CNN 기반의 CREPE를 활용하여 노래방 Top 100, 총 200곡의 앨범 커버, Pitch 정보, MR 음원, 실시간 가사를 수집/생성할 수 있었습니다. 최종적으로 사용자가 부른 노래를 채점하기 위해 상기 라이브러리를 커스텀하여 구현했습니다.

No Offset을 통한 피드 쿼리 속도 최적화

수많은 조회 요청이 발생하는 피드 탭 조회 쿼리를 No Offset 조회를 통해 최적화했습니다.
초기에는 쉽게 개발 가능한 페이징으로 구현했지만, 34,895건의 마지막을 조회할 때 .1초가 넘는 현상을 발견했습니다. 이에 데이터가 늘어나면 기하급수적으로 느려질 것이라 판단했고, No Offset 조회를 도입했습니다. 이를 통해 같은 건수에서 응답시간을 .00087초로 117배 개선하여 백엔드 개발자로서 더 나은 사용자 경험을 제공할 수 있었습니다.
 

CI / CD로 안정적인 배포 및 개발 기간 단축

백엔드 기술 리드로서 신속하며 안정적인 배포 환경을 위해 도커, 젠킨스를 사전에 학습했고 이 기술을 적극적으로 도입하였습니다. 덕분에 끊김없는 배포 환경 뿐 아니라 자동화된 배포로 개발 기간을 단축할 수 있었습니다.

수상

  1. 2024년 1월 Best Member
  1. SSAFY 10기 공통 PJT 우수상

Architecture

notion image

 
 
 
 
 

FitMe

💡

AI로 미리 입어보는 쇼핑몰

기간 :

2024.02 - 2024.04

기술 :

Backend
Java, Spring Boot, JPA, QueryDsl, MySQL
Frontend
Typescript, React
AI
Tensorflow, Pytorch
Infra
Docker, Jenkins, Nginx
Soft-skill
Agile Team Projects

GitHub :

개요

온라인에서도 미리 입어보고 사자!
notion image
notion image
notion image
notion image
notion image

Content-based Filtering

사용자의 관심을 유도하고 관련 매출을 높이기 위한 전략으로 추천 시스템을 도입했습니다.
이를 구현하기 위해 상품의 태그 데이터에 Cosine Similarity를 적용하여 유사도를 계산할 수 있었습니다.

20,000건의 학습 데이터로 모델을 생성

CNN 기반 Virtual Try-On AI 논문을 바탕으로 상의를 입히는 모델 뿐만 아니라, 하의를 입힐 수 있는 모델을 생성했습니다. 또한 전처리 작업을 자동화하여 추론 시간을 획기적으로 줄일 수 있었습니다. 마지막으로, 이미 추론된 결과가 있는 경우, 캐싱을 통해 이미지 생성 응답 시간을 10배 이상 앞당길 수 있었습니다.

끊김없는 서비스 제공 및 배포 효율화를 위한 무중단 배포 구축

배포과정에서 발생하는 단순 반복작업을 줄이기 위해 Jenkins 등 CI / CD를 도입하여 개발기간 단축하였습니다. 뿐만 아니라, 새로운 개발 작업을 반영할 때에도 지속적인 서비스를 제공하기 위해 Blue - Green 무중단 배포를 구현하여 사용자 경험을 증진할 수 있었습니다.

수상

2024년 4월 Best Member

Architecture

notion image

단과대 공지 알림 서비스

💡

중요한 공지를 놓치는 대학생들을 위한 알림 서비스

기간 :

2023.09 - 2023.12

기술 :

Backend
Java, Spring Boot, JPA, QueryDsl, MySQL
App
iOS, Swift, Swift UI, Alamofire
Batch
Quartz
Infra
EC2

GitHub :

notion image
notion image
notion image
notion image

Batch

게시판에 올라오는 새로운 게시글을 감지하기 위한 알고리즘을 구현하였습니다. 또한 이 작업을 주기적으로 수행하기 위해 Quartz 적용하여 매일 동일한 시간에 시작하도록 구현했습니다. 이를 통해 복잡한 배치 작업을 위한 Spring Batch 프레임워크의 등장 배경을 이해할 수 있었습니다.
 

구독 및 Push 알림

Push 알림 기능을 구현하기 위해 FCM 서비스를 도입했으며, 회원의 여러 기기들을 구별하기 위한 토큰 관리 로직을 개발했습니다.

iOS 개발에 도전!

개인 프로젝트로서 iOS 언어인 Swift와 프레임워크인 Swift UI를 새로이 학습했습니다. 또한 서버와 통신에 필요한 공통 로직을 대신해주는 Alamofire를 도입했습니다.

OrderME!

💡

대학 축제 주점 POS / 커뮤니티 서비스

기간 :

2022.09 - 2022.11

기술 :

Backend
JavaScript, Express.js, MongoDB
Frontend
PUG
Infra
집컴

GitHub :

notion image
notion image

개발 첫경험

비전공 개발자로서 대학 축제 근무자들을 위한 웹 POS 개발에 도전했습니다. 비록 UI/UX에 큰 기대를 할 수 없지만, “주점 운영을 도와주는 주문 시스템이 있으면 친구들을 도와줄 수 있겠다.”라는 문제의식 아래, 일상의 작은 문제를 해결하고자했고, 결국 당일 200만원이 넘는 매출을 문제없이 처리하는 서비스를 완성할 수 있었습니다.
 
이 프로젝트를 통해, ‘웹 개발’이라는 인생에서 처음으로 가슴뛰는 일을 발견할 수 있었으며, “일상 생활에 관심을 갖고 선한 영향력을 전하는 개발자”를 목표로 열정을 머금은 개발자로 도약하는 계기가 되었습니다.

머리가 나쁘면 몸이 고생한다.

이 프로젝트를 통해, DB의 스키마/정규화를 모르면 제목만 다른 동일한 게시판을 하드 코딩해야한다는 것을 깨달을 수 있었고, 이를 통해 개발자로서 무엇이 부족하고, 어떤 공부해야하는지 방향을 결정할 수 있었습니다.
이후로 효율적인 시스템을 목표로 CS, 아키텍처에 관심을 가지는 개발자로 성장할 수 있었습니다.

Folder

OrderME! (2022.09 - 2022.11)

축제 주점 POS / 커뮤니티 서비스
notion image
notion image
💡
머리가 나쁘면 몸이 고생한다.

하드코딩

게시판 이름이 다르면 게시판에 맞게 하나 하나 하드코딩하였음
→ 개발자의 단순 반복을 줄이고, 변경에 강한 설계에 대한 니즈를 깨닫게 됨

DB

스키마, 정규화 등 DB에 대해 공부하고 DB를 설계했다면, 성능 최적화와 변경에 강한 소프트웨어를 설계할 수 있을 것

테스트

테스트에 오랜 시간을 소비했고, 테스트를 함에도 불확실성을 제거할 수 없었다.
→ 테스트 코드를 통해, 코드 변경 시 발생하는 불확실성을 제어해야함을 배울 수 있었음

Tech Stack

JavaScript, Express.js, MongoDB, PUG

Repository


MyLittleStore (2023.01 - 2023.04)

OrderME! 프로젝트 Java 리팩토링
notion image
notion image
notion image
💡
Java Spring 진영으로 / 다른 프로젝트의 밑거름이 되다…!
  • OrderME! 프로젝트를 Java, Spring으로 리팩토링

보안

  • OAuth 2.0 + JWT 적용

DB

  • ERD 작성
  • Spring Data JPA 적용

테스트

  • 테스트 코드 작성

ETC

  • 회원 가입 인증 메일 기능

Tech Stack

Java, Spring, JPA, Thymeleaf

Repository


Voyage (2023.11 - 2023.11)

국내 여행자들을 위한 여행지 검색 서비스
notion image
notion image
notion image
💡
첫 팀프로젝트

JWT에 대한 고민

  • JWT 적용
    • Refresh Token 재발급 로직 개선을 통한 보안 향상

쿼리 최적화

  • No Offset을 활용해 페이징 쿼리 속도 100배 개선
  • QueryDsl을 통해 No Offset 로직 가독성 향상

Validation & Transaction

  • API에 적극적인 Validation 적용
  • Transaction을 통해 비즈니스 로직, 데이터 정합성을 지킴

Tech Stack

Java, Spring, JPA, QueryDsl, Vue.js

Repository

voyage
ChaCha3088Updated Feb 23, 2024

단과대 공지 알림 서비스 (2023.09 - 2023.12)

중요한 공지를 놓치는 대학생들을 위한 알림 서비스
notion image
notion image
notion image
 
💡
새로운 언어에 도전!

Batch & Crawling

  • 주기적인 크롤링을 처리하기 위해 Quartz 적용
  • 게시판에 올라오는 새로운 글 감지하는 알고리즘 구현
  • 배치 작업이 무엇인지, 이 배치 작업을 관리하기 위해 왜 프레임워크가 탄생했는지 이해할 수 있었다.

Push Notification

  • FCM을 활용한 푸시 알림 구현
  • 푸시 알림 구현 시, 기기를 구별하기 위한 토큰 관리 로직 개발

iOS

  • Swift UI
  • Alamofire

Tech Stack

Java, Spring, JPA, Quartz

Notion

Repository

notion image

 
 
 
 
 
 
 
 
 
 

DIVA (2024.01 - 2024.02)

사용자 음역 분석 기반 음악 추천 및 연습 서비스
notion image
notion image
💡
Back-End 개발자로 성장 가도!

AI Library & Batch

  • 노래방 Top 100의 MR / 실시간 가사 데이터 확보 및 생성
  • 사용자 음원 채점 기능 개발

Infrastructure

  • Jenkins 등 CI / CD를 도입하여 개발기간 단축

Authentication

  • OAuth 2.0 구현(Kakao LogIn)

수상

  • SSAFY 10기 공통 PJT 1등
  • 2024년 1월 Best Member

Tech Stack

Backend

Java, SpringBoot, JPA, QueryDsl, MYSQL

Frontend

Typescript, Next.js, React, Jotai

CI / CD

Docker, Jenkins

Web Server

Nginx

AWS

EC2, S3

AI

Tensorflow, Pytorch, UltraSinger, WhisiperX

Tool

Jira, Figma

Soft Skills

Agile Team Projects

Repository

DIVA
ChaCha3088Updated Apr 5, 2024
notion image

 
 
 
 
 
 
 
 
 
 
 
 
 
 

FitMe (2024.02 - 2024.04)

AI 피팅 / 쇼핑몰 서비스
notion image
notion image
notion image
 
💡
AI와 추천으로 패션 쇼핑을 혁신하다!

가상 피팅 AI

  • CNN 기반 Virtual Try-On AI 채택
    • 전처리
    • 하의 모델 학습
    • 추론 자동화
  • AI로 생성한 이미지 캐싱 적용

추천 시스템

  • 상품 메타 데이터를 활용 Content-based Filtering(Cosine Similarity)

Infrastructure

  • Jenkins 등 CI / CD를 도입하여 개발기간 단축
  • Docker, Jenkins, Nginx를 활용해 무중단 배포 구현(Blue - Green)
  • 자체 이미지 서버 구현

Authentication

  • OAuth 2.0 구현(Kakao LogIn)
  • Redis에 Refresh Token 저장
    • 성능 개선

수상

  • 2024년 4월 Best Member

Tech Stack

Backend

Java, SpringBoot, JPA, QueryDsl, MySQL

Frontend

Typescript, React

CI / CD

Docker, Jenkins

Batch

Spring Batch

Web Server

Nginx

AWS

EC2

AI

Tensorflow, Pytorch

Tool

Jira, Figma

Soft Skills

Agile Team Projects
notion image
 
notion image
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🎓Education


학사 (2017.03 - 2023.08)
  • 2022학년도 1학기 Dean’s List
 
환경 및 에너지 연구실 학부연구생 (2021.08.01 - 2022.08.31)
  • 2021년 친환경설비기술공모전 입선(한국친환경설비학회)
    • '초고층건물에서 연돌효과를 이용한 소형 풍력발전기의 적용 검토 및 가이드라인 제시'
  • 공립 철원 어린이집 에너지 모델링 외주
  • 2022년 친환경설비기술공모전 입선(한국친환경설비학회)
    • ‘에너지 사용량을 이용한 1인가구 재실자 스케줄 파악’
  • '1인 가구 에너지 사용량을 이용한 재실자 스케쥴 파악' 논문 발표(2022.06)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🎁 Detailed Projects.


OrderME!

2022.09 - 2022.11

대학교 주점 POS / 커뮤니티 서비스

Description

2022 대학교 축제 주점 부스에서 사용한 POS, 신청곡 게시판, 자유게시판 서비스 입니다.

What I did

  • 간단한 POS
    • 직원은 메뉴와 수량, 합계 등을 간편하게 확인하고 추가, 수정, 삭제 가능
  • 신청곡 게시판
    • 손님은 원하는 음악의 아티스트와 제목을 신청 가능
  • 자유게시판
    • 대학 축제에서 같은 주점을 이용하는 사람은 회원가입 후 게시판을 통해 자유롭게 게시 가능

What I learned

  • 네트워크와 프레임워크에 대해 알지 못하고 기능 구현에 급급하여 게시판 이름이 다르면 게시판에 맞게 하나 하나 하드코딩하였음
    • → 개발자의 단순 반복을 줄이고, 변경에 강한 설계에 대한 니즈를 깨닫게 됨
  • 정규화 등 DB에 대해 공부하고 DB를 설계했다면, 성능 최적화와 변경에 강한 설계를 배워볼 수 있을 것
  • 모든 기능을 직접 손으로 데이터를 넣으며 테스트 함
    • 테스트에 오랜 시간을 소비했고, 테스트를 함에도 불확실성을 제거할 수 없었다.
      • → 테스트 코드를 통해, 로직 변경 시 발생하는 불확실성을 제어해야함을 배울 수 있었음

Tech Stack

JavaScript, Express.js, MongoDB, PUG

Repository


MyLittleStore

2023.01 - 2023.04
 

OrderME! 프로젝트 Java 리팩토링

모든 플랫폼, 언제 어디에서나 사용할 수 있는 POS

Description

  • OrderME! 프로젝트를 Java, Spring으로 리팩토링
  • 실제 서비스에서 사용할만한 비즈니스 로직을 구현하여 직접 사용해볼 수 있는 서비스를 구축

What I did

  • Spring Data JPA 사용
  • OAuth 2.0 + JWT 적용
    • notion image
  • 회원 가입 인증 메일 기능
    • notion image
  • 테스트 코드 작성
  • ERD 작성
    • notion image

What I learned

  • 테스트 코드를 통해, 로직 변경 시 발생하는 불확실성을 제어할 수 있었음
  • 실제 서비스에서 자주 이용되는 공통 기능들을 구현함으로써, 이 기능들의 로직을 설계하고 글로 정리, 구현할 수 있는 능력을 갖춤
  • DB 테이블을 정규화하여 설계하고, 서비스에 ORM을 적용하는 경험을 쌓음
  • JWT의 원리와 장점
  • OAuth2.0의 작동 흐름 파악
  • 프로젝트에서 꼭 필요한 기능들을 구현하여 다른 프로젝트의 밑거름이 됨

Tech Stack

Java, Spring, JPA, Thymeleaf

Repository


단과대 공지 알림 서비스

2023.09 - 2023.12
 

Description

중요한 공지를 놓치는 대학생들을 위한 알림 서비스

What I did

  • 주기적인 작업을 처리하기 위해 Quartz 적용
  • 게시판에 올라오는 새로운 글 감지하는 알고리즘 구현
  • FCM을 활용한 푸시 알림 구현
  • JWT 적용
    • Refresh Token 재발급 로직 개선을 통한 보안 향상
  • iOS 개발
    • Swift UI
    • Alamofire

What I learned

  • 푸시 알림 구현 시, 기기를 구별하기 위한 토큰 관리 로직 개발
  • 배치 작업이 무엇인지, 이 배치 작업을 관리하기 위해 왜 프레임워크가 탄생했는지 이해할 수 있었다.

Tech Stack

Java, Spring, JPA, Quartz

Notion


Voyage

2023.11 - 2023.11

Description

국내 여행자들을 위한 여행지 검색 서비스

What I did

  • JWT 적용
    • Refresh Token 재발급 로직 개선을 통한 보안 향상
  • No Offset을 활용해 페이징 쿼리 속도 100배 개선
  • QueryDsl을 통해 No Offset 로직 가독성 향상
  • API에 적극적인 Validation 적용
  • Transaction을 통해 비즈니스 로직, 데이터 정합성을 지킴

Tech Stack

Java, Spring, JPA, QueryDsl, Vue.js

Link

voyage
ChaCha3088Updated Feb 23, 2024
Video preview

DIVA

2024.01 - 2024.02

Description

사용자 음역 분석 기반 음악 추천 및 연습 서비스

What I did

  • 노래방 Top 100의 MR, 실시간 가사 데이터 확보
  • 사용자 음원 채점 기능 개발
  • Jenkins, Docker 등 CI / CD를 도입하여 개발기간 단축
  • JWT 구현
    • Refresh Token 재발급 후 만료 로직을 통한 보안 향상
  • OAuth 2.0 구현(Kakao LogIn)

수상

  • SSAFY 10기 공통 PJT 1등
  • 2024년 1월 Best Member

Tech Stack

Backend

Java, SpringBoot, JPA, QueryDsl, MYSQL

Frontend

Typescript, Next.js, React, Jotai

CI / CD

Jenkins, Docker

Web Server

Nginx

Amazon

EC2, S3

AI

Tensorflow, Pytorch, UltraSinger, WhisiperX

Tool

Jira, Figma

Soft Skills

Agile Team Projects

Link

https://github.com/ChaCha3088/DIVA

FitMe (2024.02 - 2024.04)

AI 피팅 / 쇼핑몰 서비스
notion image
notion image
notion image
💡
AI와 추천으로 패션 쇼핑을 혁신하다!

가상 피팅 AI

  • CNN 기반 Virtual Try-On AI 채택
    • 전처리
    • 하의 모델 학습
    • 추론 자동화
  • AI로 생성한 이미지 캐싱 적용

추천 시스템

  • 상품 메타 데이터를 활용 Content-based Filtering(Cosine Similarity)

Infrastructure

  • Jenkins 등 CI / CD를 도입하여 개발기간 단축
  • Docker, Jenkins, Nginx를 활용해 무중단 배포 구현(Blue - Green)
  • 자체 이미지 서버 구현

Authentication

  • OAuth 2.0 구현(Kakao LogIn)
  • Redis에 Refresh Token 저장
    • 성능 개선

Tech Stack

Backend

Java, SpringBoot, JPA, QueryDsl, MySQL

Frontend

Typescript, React

CI / CD

Docker, Jenkins

Batch

Spring Batch

Web Server

Nginx

AWS

EC2

AI

Tensorflow, Pytorch

Tool

Jira, Figma

Soft Skills

Agile Team Projects

Repository

notion image
 
notion image
 

Experience.

SSAFY

2023.07 - present

Algorithm Study

2023.04 - present
꾸준히 알고리즘

Spring Study

2023.02 - 2023.04
개발바닥 스프링 스터디

Tech Blog

2023.02 - present
Cha Cha의 기술 블로그

Others

University

Architecture 2017.03 - 2024.08 (Bachelor Candidate 2024)

환경 및 에너지 연구실(2021.08 - 2022.08)

  • 2021년 친환경설비기술공모전 입상
  • 공립 철원 어린이집 에너지 모델링 외주
  • '1인 가구 에너지 사용량을 이용한 재실자 스케쥴 파악' 논문 발표(2022)
 
  1. 2021년 친환경설비기술공모전 입선(2021.11.26) - 한국친환경설비학회
'초고층건물에서 연돌효과를 이용한 소형 풍력발전기의 적용 검토 및 가이드라인 제시'
  • 건물 내 제연 샤프트와 연돌 효과를 이용한 건물 내 풍력 에너지 생산 가능성 검토
  • Multizone 네트워크 공기유동 시뮬레이션인 CONTAM을 이용하여 건물의 공기유동과 풍량 분석
 
 
  1. 공립 철원 어린이집 에너지 모델링(2022.08)
ECO2와 OpenStudio를 사용하여 공립 철원 어린이집 모델링
  • 바닥 복사 난방 구현
  • 여름철 냉방 구현
  • 인체 발열 구현
  • 벽체 및 단열재 구현
 
  1. '1인 가구 에너지 사용량을 이용한 재실자 스케쥴 파악' 논문 발표
  • 1인 가구의 전기, 온수, 도시가스, 물 사용량 데이터를 비지도학습 알고리즘 PHT (Page-Hinckley Test)를 사용하여 재실 여부를 시간 단위로 감지
  • 재실 정보를 누적하여 건물 에너지 시뮬레이션에 필요한 가구 유형별 스케쥴 데이터 생성
 
  1. 2022년 대한설비공학회 학술발표대회 논문 발표 대회
'1인 가구 에너지 사용량을 이용한 재실자 스케쥴 파악' 발표
 
  1. 2022년 친환경설비기술공모전 입선(2022.11.25)
'에너지 사용량을 이용한 1인가구 재실자 스케줄 파악'