Main-project 회고

주현·2022년 10월 20일
0

project

목록 보기
6/9

무엇을 기획했는가?

독서관련 서비스를 제공하는 웹서비스를 만들었습니다.

➡️ 기획을 하면서 팀원들과 여러 아이디어가 나왔지만 관련된 서비스의 제공이 많은지, 우리만의 서비스를 어떻게 제공할 수 있을지 하는고민과 소통끝에 나만의 서점이라는 부주제로 독서 습관, 성취감을 통해 동기 부여되어지는 독서기록서비스를 제공하기로 하였습니다.

팀원 - 김형섭,김주현,한상욱,이슬

어떤 서비스를 제공하는가?

  1. 회원가입을 통해 로그인한 사용자만 자신의 것을 등록하고 볼 수 있습니다.

  2. 회원이 읽고싶은 책이나 읽었던 책을 검색하고 등록할 수 있습니다(읽고 있는 책, 읽고 싶은 책, 다 읽은 책)

  3. 메모 작성하기를 누르면 메모를 작성하고 (카테고리별로 남길수 있습니다) 저장합니다.

  4. 독서 통계에는 맨 위에 랜덤으로 자신이 작성한 메모들중 하나가 나타나고 중간에는 등록하고 읽지않는 책을 3달이 넘으면 보여준다 마지막에는 달력에 다 읽은 책을 그날짜에 맞춰 보여준다.

어떻게 구현하였나? (Back-End)

  1. 검색할때 알라딘 - open API를 서버에서 불러와서 사용자가 검색한 책을 불러와 응답해준다.
  2. 책을 등록할때, POST로 날려 DB에 저장한다.
  3. 각각의 책에 메모가 달리게 저장한다.메모를 찾을때는 jpa native query를 통해 사용자의 책에 맞추어 찾은 것을 응답해준다.
  4. 이미지는 S3를 통해 클라이언트측에서 직접 저장이 가능하도록 설계하였다.

Architecture

개선해야할 부분은?

  1. navige query가 아닌 JPQL 사용하기,Criteria api 사용하기,QueryDSL 사용하기를 사용해 작성한것도 보였는데 차이점을 공부하고 개선하고싶다.

    JPQL, Native Query
    애플리케이션 로딩 시점에 타입체크가 가능하지만 컴파일 시점에 타입 체크가 불가능함
    Criteria API
    JPQL과 Native Query 보다 컴파일 타임 오류와 동적 쿼리를 비교적 안전하게 생성해줌
    api가 장황하고 복잡함
    QueryDSL
    컴파일 타임 오류 체크 가능
    동적쿼리를 Criteria API보다 직관적으로 표현 가능
    JPA가 공식적으로 지원하지는 않음 따라서 별도의 의존성을 추가
    참고 : https://sup2is.github.io/2020/10/20/what-is-jpa-query-dsl.html

  1. JWT token을 Redis에 저장하여 사용(토큰 관리) 개선해보고싶다.
    참고 : https://sol-devlog.tistory.com/22

  2. 로그인 기능에서 Oauth2(구글로그인,카카오톡로그인 등)을 사용할 수 있게 개선하고싶다.

  3. Spring REST Docs 사용하여 테스트 또한 활용하기 개선하고싶다.

  • 맴버들과 상의후 프로젝트완료기간이 끝나더라도 개선해가면서 진행하기로 하였다.
  • 진행되어 감에 따라 계속 수정이 이루어 질꺼같다.
profile
능력있는 개발자가되고싶다!

0개의 댓글