미리보기
기본 정보

안녕하세요, 박종현입니다. 2024년 2월에 졸업 예정인 학생으로, 지금까지 다양한 팀 프로젝트를 경험하며 문제 해결에 힘쓰고 있습니다. 그 예로, 최근 진행한 프로젝트 중 spring boot 3버전에서 발생한 spring security deprecated 문제를 성공적으로 해결한 경험에 대해 소개하겠습니다. 프로젝트를 진행하던 중, 기존에 사용하던 spring boot의 버전을 2.7.16에서 3.1.4로 변경하며 발생한 이 문제는 이전에 경험한 적이 없는 상황에서의 문제 해결 능력을 요구했습니다. 먼저, HttpSecurity 객체의 설정 방식이 변경되어 기존 코드를 적용할 수 없었다는 문제를 인식하였습니다. 이에 처음 발생한 에러 메시지부터 시작하여, 비슷한 문제를 해결한 다른 개발자들의 경험을 찾고, spring security의 공식 문서를 참고하여 변경된 버전에서의 HttpSecurity 설정 방법을 습득했습니다. 이러한 경험을 통해 저는 문제 상황에서 다양한 해결책을 찾고 실험하는 능력을 기를 수 있었습니다. 어떤 어려움에도 굴하지 않고, 새로운 환경에서 주어진 문제를 해결하기 위해 적극적으로 노력하는 사람으로 자부합니다.
기술 스택
Java, Spring Boot, Spring Security, spring-jpa, MySQL, MariaDB, Firebase, firestore, MongoDB
프로젝트
지자체 복지 안내 플랫폼
SW전문인재양성사업
2023.10. ~ 2023.11.
[프로젝트 설명]
- 기존의 복지 정보 제공 플랫폼인 ‘복지로’보다 빠르고 검색 옵션이 간편한 플랫폼 제공
- 로그인 시 비회원 사용자와의 차이점으로 사용자 맞춤 복지 정보 제공, 북마크 기능 제공
- 사용자가 직접 검색을 수행하는 것이 아닌 회원 정보를 통해 맞춤 복지 정보 제공
- 회원 정보는 거주 중인 시도명, 가구 상황, 생년월일을 포함
[담당 역할]
- 회원 정보 관리 기능 구현
- 지자체 별 복지 정보 집계 기능 개발
[기술적 경험]
- 유지 보수하기 좋도록 MVC 패턴을 사용하여 개발
- domain, DTO, repository, service, controller로 구조화
- 협업 시 필요한 부분만 빠르게 확인하여 수정이 용이함
- 지자체 별 복지 정보를 가져오기 위해 스케줄러 사용
- 공공 데이터 포털의 복지 정보 API 요청 시 평균 11초의 응답 시간 발생
- 일주일에 한 번 공공 데이터 포털의 지자체 별 복지 정보를 데이터 베이스에 저장
- 사용자의 요청에 따라 데이터베이스에 저장된 정보를 전달
- 기존의 API 응답을 그대로 전달하는 방식보다 조회 성능 개선(11s → 5s)
- @Valid 어노테이션을 활용한 유효성 판단
- @Valid 어노테이션을 활용하여 로그인 , 회원 가입 시 필요한 입력 값의 제약 사항 설정
- 회원 가입, 로그인, 회원 정보 관리에 필요한 제약 사항에 따른 DTO 분할
- DTO 분할에 따라 재사용성과 Swagger와의 통합 용이
밸런스게임 어플리케이션
금오공과대학교
2023.03. ~ 2023.06.
[프로젝트 설명]
- 사용자에게 다양한 주제의 밸런스 게임을 제공
- 자신의 선택이 다른 사용자와 어떻게 다른지 각 선택지 별 선택 비율 확인 가능
- 추가적으로 게임 결과를 통한 사용자 특성 별 통계 값 제공
- 특성으로 나이, 성별, 직군, 주요 활동 지역을 활용
[담당 역할]
- 통합 로그인 기능 구현
- 전체 사용자 정보 및 통계 테이블 설계 및 구현
- 통계 기능 구현
[기술적 경험]
- 유지보수 하기 좋도록 NoSQL 사용
- 데이터 모델 변경이 쉬운 NoSQL 활용을 통해 개발 중 변경 사항에 대응하기 용이함
- Firebase를 활용한 인증 및 보안 기능 구현
- firebase에서 제공하는 Authentication을 활용하여 인증 기능 구현
- Firebase Function을 활용한 카카오 소셜 로그인 구현
- 카카오 로그인 토큰을 Firebase Authentication의 커스텀 토큰으로 변환
- 로그인 토큰을 통해 JWT 토큰 생성 → JWT 토큰 정보를 바탕으로 커스텀 토큰 생성
- Firebase Realtime DB를 활용한 조회 성능 개선
- 실시간 데이터 동기화를 통해 사용자에게 최신 통계 정보 실시간 제공
버스 정보 안내 및 활용 방법 제시 어플리케이션
금오공과대학교
2022.10. ~ 2022.12.
[프로젝트 설명]
- 금오공대의 부족한 생활 인프라 해결을 위해 버스 도착 정보 및 주요 정거장 별 생활 정보 제공을 위한 앱 개발
- 학생들의 주요 이용 노선인 금오공대-옥계동, 금오공대-구미역, 금오공대-버스터미널의 버스 도착 정보 실시간 제공
- 각 노선별 주요 정거장 별 생활 정보 제공
- 생활 정보로 주변 음식점, 부동산, 카페 정보를 제공
[담당 역할]
- 실시간 버스 도착 정보 제공 기능 개발
- 주요 정거장 별 생활 정보 제공 기능 개발
[기술적 경험]
- 공공데이터포털 API를 활용한 실시간 버스 도착 정보 조회
- 주요 이용 노선의 버스 정보를 얻기 위해 버스 노선 정보, 정류소 정보, 도착 정보 3개의 API 활용
- Provider를 사용해 데이터 업데이트 시에만 사용자의 버스 도착 정보 화면 갱신
- 이벤트 기반 처리 방식을 통한 조회 성능 개선(4s → 1s이내)
- 생활 정보 조회 시 쿼리 최소화
- 주요 정거장 별 부동산, 음식점, 카페 정보 컬렉션으로 분리
- 분리 이전 하나의 컬렉션에서 각 문서의 필드 값을 쿼리로 검색하는 방식 사용
- 컬렉션 분리 이전 코드와 분리 이후 코드를 각각 다른 물리 장치에서 실행하여 성능 검증
- 컬렉션 분리를 통해 성능 개선(2s → 1s)