미리보기
기본 정보
무한한 노력의 소유자 입니다. 맡은 작업에 대해 하나부터 열까지 전부 파헤쳐 빠르게 습득하는 개발자 입니다. 이러한 성실함과 집중력으로 매 순간 성장하고 발전하는 후임이 되겠습니다.
기술 스택
Java, Spring Boot, Spring Security, Spring, JPA, MySQL, MariaDB, Redis, Docker, JWT, REST API, oauth2
프로젝트
Funding Boost | 선물 펀딩 + 쇼핑몰 플랫폼
카카오 클라우드 스쿨 4기
2024.04. ~ 2024.06.
고가의 선물을 사용자들 간 펀딩을 통해 받을 수 있는 서비스
팀 | 2024. 03 ~ 2024. 06 | 프론트엔드- 2명 , 백엔드 - 4명
🔗 Github
[ 사용 기술 스택 ]
백엔드 :
Java
,SpringBoot
,SpringSecurity
,JWT
,Juint5/mockito
,JPA
,MariaDB
,Redis
프론트엔드 :
React
,Axios
,Recoil
,SCSS
인프라 :
Krampolin
,Docker
,Grafana/Prometheus
협업 :
Git/Github
,Discord
,Confluence
,Jira
[ 개발 주요 사항 ]
Redis 분산 락의 spin-lock 방식을 활용하여 동시성 제어 적용
OAuth, JWT를 활용한 사용자 인증 방식 사용
Controller, Repository, Service 단위로 나누어 단위테스트 진행
Elastic Search 및 No-offset 방식을 활용하여 검색 속도 향상
카카오 클라우드 자원(DKOS Cluster, D2Hub, Kargo)을 활용한 배포
[ 트러블 슈팅 및 고민점 ]
DB에서 상태 관리 Enum 타입으로 변경
✅ ****초기에는 펀딩 상태, 펀딩 아이템 완료 상태, 배송지 입력 상태 등을 Boolean으로 처리했으나, 상태 간의 혼동을 줄이고 직관성을 높이기 위해 Enum 타입으로 변경했습니다.
Optional 남용 문제
✅ Safety한 null처리를 위해 모든 경우에 Optional을 사용하였으나 메모리 사용량 과 접근 비용이 크게 증가하는 것을 발견, null 처리를 위한 사용 지양 및 DB에서 직접 데이터를 가져오는 경우에만 사용하여 남용을 줄였습니다.
OAuth Redirect 문제 해결
✅ client-authentication-method를 post로 설정하니 401 오류가 발생,Spring Security 5.6 버전 이후로는 client_secret_post로만 설정이 가능하여 이를 변경하고 오류를 해결했습니다.
Test Code에 대한 고민
✅ client-authentication-method를 post로 설정할 때 401 오류가 발생했는데, Spring Security 5.6 버전 이후로는
client_secret_post로만 설정이 가능하기 때문에 이를 수정하여 오류를 해결했습니다.
StepStory | 여행 기록 플랫폼
카카오 클라우드 스쿨 4기
2024.01. ~ 2024.03.
사용자들이 다닌 여행기록을 시각화 하고 서로 공유하는 서비스
팀 | 2024. 01 ~ 2024.03 | 풀스택 - 2명, 프론트엔드- 1명 , 백엔드 - 2명
🔗 Github
[ 사용 기술 스택 ]
백엔드 :
Java
,SpringBoot
,SpringSecurity
,JPA
,MariaDB
프론트엔드 :
React
,Axios
,D3.js
인프라 :
Docker
,Jenkins
,GCP
협업 :
Git/Github
,Notion
,Discord
[ 개발 주요 사항 ]
사용자의 편의성을 위해 장소와 날짜 기입 자동화
Cookie를 사용한 서버 자체 사용자 인증 구현
Postman 과 Swagger를 이용한 API Test 진행
[ 트러블 슈팅 및 고민점 ]
여행사진의 메타데이터 사용
✅ 사용자의 편의를 위해 사진의 메타데이터를 활용하였습니다. 사진에 포함된 위도와 경도 정보를 통해 위치를 파악하고, 시간 정보를 바탕으로 촬영 시점을 확인하여, 자동으로 여행 장소와 이동 경로, 시간을 기록할 수 있도록 구현했습니다.
CORS 및 Samesite 오류 해결
✅ 서버 측에서는 Spring Security 필터의 Allow-Credentials 설정과 클라이언트의 Credential 요청을 통해 CORS 및 쿠키 관련 문제를 해결했습니다. 또한, 서브 도메인을 설정하여 SameSite 문제를 해결하였습니다.
효율적인 철근 재단 알고리즘
공주대학교
2023.09. ~ 2023.11.
철근을 효율적으로 재단하는 알고리즘 개발 프로젝트
팀 | 2023.09 ~ 2023.11 | 데이터 담당자 - 1명, 알고리즘 개발자 - 1명
[ 사용 기술 스택 ]
개발 :
Java 1.8
데이터 관리 :
Excel
Tool :
Eclipse 2022-09
[ 개발 주요 사항 ]
HashMap 자료구조를 이용하여 Key-Value 구조로 표현(Key: 철근재단 방법, Value: 철근 사용 수량)
2021년도 데이터를 이용하여 알고리즘 비교 결과 로스율 3.2% → 1.7%로 하락 ( 1.5%p 향상 )
[ 고민점 ]
DFS와 백트래킹, Greedy 알고리즘 사용
✅ Greedy 알고리즘을 통하여 재단할 필요가 없는 것들과 길이가 딱 맞아 떨어져 재단이 복잡하지 않은 경우를 먼저 구분하고, 후 DFS와 백트래킹을 이용하여 모든 경우를 파악 후 손실률이 가장 적은 것을 찾는 방식을 활용하였습니다.