https://github.com/sglee487/isolia-spring-api/tree/179da382bbc0f72b721e2a3a2570c0c69ab12b52
GitHub - sglee487/isolia-spring-api: change FastAPI to Spring boot
change FastAPI to Spring boot. Contribute to sglee487/isolia-spring-api development by creating an account on GitHub.
github.com
한 가지 문제가 있는데, 게시판을 작성하려면 로그인을 해야되고, 로그인을 기억해야 한다. 난 jwt를 사용했다.
그래서 jwt관련 코드 먼저 작성하려 했던 것 같다.
회원가입이나 로그인할 때 jwt token을 발급해서 주고, 게시물 작성 같은 로그인이 필요한 작업을 수행할 때 header에 token도 같이 받아 확인하는 방식. controller에서 token을 확인 후, service에 작성하라고 넘겨준다. 작성 뒤 해당 게시물의 id Long을 반환하게 했다.
별다른 함수 정의 없이 JpaRepository의 save만 해주면 자기가 알아서 DB에 잘 저장한다.
이걸 postman으로 테스트 해본다. 잘 된다.
로그인 / 회원가입할 때 받은 jwt token을 header의 Token으로 입력한다. 그럼 controller의 @RequestHeader("Authorization") authorization: String 변수로 저장된다.
이제 이걸 response하는 body를 dto에 response로 정의해준다. 그냥 쌩으로 반납하게 하면 모든 칼럼을 보여주기 때문에 유저의 암호화된 패스워드, 게시물 전체보기에서 preview를 만들었지만 사실 안의 내용도 다 가져오는 등의 낭비가 있기 때문.
companion object의 of 함수로 저장해서, user나 board같은 엔터티 모델을 주기만 하면 알아서 지정해주도록 하면 코드가 더 깔끔해진다.
아 물론 postman으로 테스트하려면 jwt token을 계속 따로 복사해서 header에 붙여넣기 하는게 귀찮아져서 테스트를 이 때쯤 만들었다. jwt를 테스트하는게 아닌 service를 테스트하는 것. 통합하더라도 어차피 따로따로 만들어야 문제 생겼을 때 어디서 생겼는지 자세히 알수 있지 않을까..
GitHub - sglee487/isolia-spring-api: change FastAPI to Spring boot
change FastAPI to Spring boot. Contribute to sglee487/isolia-spring-api development by creating an account on GitHub.
github.com
여기까지 한 뒤에 또 강의 내용이 여기서 JpaRepository 대신에 querydsl로 리팩토링 한것도 그렇고, 개인적으로도 공부하려고 바꿨었다. 생각만큼 잘 되진 않았지만.. 기술적인 문제라 시간을 오래 들이면 해결될 문제다.
'프로그래밍 언어 및 기타 > Spring Boot' 카테고리의 다른 글
[게시판 서버] 사이트랑 연결하기 (0) | 2023.05.30 |
---|---|
[게시판 서버] Querydsl으로 변환(별거없음) (0) | 2023.05.29 |
[게시판 서버] 기본 유저 기능 (1) | 2023.05.29 |
[게시판 서버] 기존 서버 구조 파악하기 (0) | 2023.05.29 |
[게시판 서버] spring boot kotlin 서버 만든 과정 기록할라고 함 (0) | 2023.05.28 |