미리보기
기본 정보
안녕하세요. 백엔드 개발자 주상우 입니다.
기술 스택
Java, Spring boot, JPA, MySQL, EC2, RDS, IntelliJ, Nginx, Postman, Oauth2.0, JWT
경력
레드 테이블
인턴 | 빅데이터 팀
2021.08. ~ 2021.12. (5개월)
음식 관광 빅데이터 플랫폼 구축을 위한 빅데이터 전처리 작업
프로젝트
News (Personal Project)
토이 프로젝트
2022.11. ~ 2023.05.
< 프로젝트 상세 설명 >
- 기사에 유저 이름을 매핑하여 게시물 작성자를 파악
- 기사를 작성할 시 해당 게시물을 어떤 유저가 작성하였는지 파악 할 수 있도록 개선
- 기사 조회 시 기자의 이름이 null로 나오는 트러블슈팅이 있었는데 이를 해결함
- 기사를 언론사 별로 카테고리 화
- Article과 Category를 매핑 시켜 한 언론사는 여러 기사와 연관을 가지도록 함
- Role을 부여하여 카테고리를 구현하여 관리자가 언론사의 기사를 쉽게 관리할 수 있도록 함
- 기사에 댓글을 쓸 수 있도록 구현
- 기사 별로 댓글을 쓰고 관리할 수 있게 함
- 댓글과 유저를 매핑하여 해당 댓글을 어떤 유저가 작성하였는지 인식하도록 함
- 기사에 좋아요를 달 수 있도록 함
- 특정 게시물에 좋아요를 누르고 취소하도록 구현
- 게시글(Article)과 사용자(User) 사이에 좋아요(ArticleLike)라는 개념을 만들어서 다대다 관계를 구현
- 사용자가 어떤 게시글에 좋아요를 했는지 혹은 어떤 사용자가 좋아요를 눌렀는지 알 수 있도록 함
<프로젝트를 진행하여 경험한 부분>
- Spring Boot와 JPA를 이용해 아키텍처 설계 및 DB 모델링 & REST API 개발
- API는 글, 사용자, 카테고리, 좋아요 등에 대한 CRUD 작업을 처리하며, 각 요청에 대해 적절한 HTTP 응답 코드와 메시지를 반환하였음
- 애플리케이션의 전체 설계 및 데이터베이스 모델링 경험
- 전체 기사 조회 API 페이징 적용 및 쿼리 성능 최적화를 통한 조회 성능 개선
- 페이징을 구현하여 사용자가 대량의 데이터를 쉽게 탐색하고 정렬할 수 있도록 하였음
- JPA를 사용하며 Fetch Join을 통해 쿼리 성능 개선
- Spring Security 적용을 하여 가용성 및 기밀성 강화
- 리프레시 토큰을 사용하여 액세스 토큰의 짧은 수명 문제를 개선
- 토큰 테이블을 만들어 기존 토큰을 무효화하여 토큰 재사용 공격 방지
- Google OAuth2 로그인을 통해 사용자는 간편하게 로그인을 수행할 수 있도록 함
- 별도의 회원 가입 과정 없이 서비스를 사용할 수 있도록 개선
마켓 컬리 (Team Project)
토이 프로젝트
2021.12. ~ 2022.01.
< 프로젝트 상세 설명 >
- 카테고리를 다층화하여 API를 개발
- 상위 카테고리(채소)이고 상위 카테고리 안에 포함되는 하위 카테고리(당근 , 시금치)에 속하는 API를 구현
- 상위 카테고리를 기준으로 하위 카테고리를 조인하였음
- 상위 카테고리(채소)이고 상위 카테고리 안에 포함되는 하위 카테고리(당근 , 시금치)에 속하는 API를 구현
- 마감 세일 기간을 설정하여 할인율 붙은 상품을 조회하는 API 개발
- 특정 기간 내에 할인율이 붙은 상품 API를 조회하는 SQL문을 작성
- timestamp로 기간을 설정하고 0%이 아닌 할인율을 가지는 순으로 나열
- 특정 기간 내에 할인율이 붙은 상품 API를 조회하는 SQL문을 작성
- 리뷰가 많은 순서대로 조회하는 API 개발
- 사용자가 리뷰를 썼을 때 외래키로 선정하여 서브쿼리로 카운트를 새는 방식으로 구현
- 이외에 그룹화(Group by)와 정렬(Order by) 사용하였음
- 사용자가 리뷰를 썼을 때 외래키로 선정하여 서브쿼리로 카운트를 새는 방식으로 구현
<프로젝트를 진행하여 경험한 부분>
- 팀장으로서 리더 역할
- BE와 FE의 의견을 중간에서 조율
- API 개발 경험
- JDBC를 이용한 데이터베이스 조작
- Spring JDBC Template를 활용하여 CRUD 구현 경험
- JDBC를 이용한 데이터베이스 조작
- 코드 공유 및 협업
- Github를 활용하여 팀원들과 코드를 공유하고 협업
- 브랜치 관리 , Merge 충동을 경험하고 해결하며 협업 방식을 경험
- Discord로 실시간으로 소통하며 협업
- 영상 및 채팅 등을 통해 다른 개발자들과 소통 하였음
- Github를 활용하여 팀원들과 코드를 공유하고 협업
- AWS 서버 구축
- 외부 환경에서 EC2 인스턴스 접속을 할 수 있는 서버 환경 구축
- 도메인 적용으로 IP 주소 접근성을 향상
- HTTPS 적용으로 HTTP 환경보다 보안성 향상
- 서버 도메인을 구축하여 개발과 배포 환경을 분리 시킴
- RDS 구축
- RDS를 구축하여 DB 관리에 부담을 줄이고 고가용성을 보장하여 배포 환경 개선
- 외부에서 RDS 접속을 하여 개발 편의성을 높임
- 타임존 설정 및 utf -8 인코딩 설정으로 RDS 환경 개선
교육
원티드 프리온 보딩
사설 교육 | 백엔드
2023.01. ~ 2023.05. | 졸업
알고리즘 잡스
사설 교육 | 알고리즘
2022.09. ~ 2022.10. | 졸업
라이징 캠프 3기
사설 교육 | 백엔드
2021.11. ~ 2022.01. | 졸업
한성 대학교
대학교(학사) | 사이버 보안 / 공학
2019.03. ~ 2021.02. | 졸업
세명대학교
대학교(학사) | 광고홍보 / 사회
2011.03. ~ 2016.09. | 중퇴
자격증
SQL 개발자
합격 | 한국데이터산업진흥원
2022.06.