오늘은 간단한 사이드 프로젝트 진행중인 백엔드 동료가 직면했던 에러에 대해 기록해보려고 합니다
일단 제 포지션은 프론트이고 동료가 백을 맡고 개발하고 있었고,
로그인 구현을 JWT Token 발급 형식으로 진행하자고 결정을 내렸습니다
백엔드 동료는 스프링 부트를 기반으로 작업 중이었고,
jjwt 라이브러리를 설치하려는데 import가 되지 않아 JWT Token 발급 형식을 사용을 못하게 되는건가😭.. 상황에 놓여있었습니다
그 당시에는 검색해도 방법이 뜨질 않았고 (...)
제시된 방법도 다 써봤지만 설치가 되지 않았고 (...)
저희가 발견한 야매 방법을 소개하겠습니다
1. dependency 추가
저는 프론트라 잘 모르지만 현재 백에서는 gradle 라는걸 사용하는 것 같습니다
그래서 build.gradle 라는 파일에 의존성을 추가하면 되는 것 같습니다
implementation 'io.jsonwebtoken:jjwt:0.9.1'
네, 이 한줄을 적어주면 끝이라며... 쨌든 문제없이 잘 진행되었다고 했었습니다 (동료왈)
이제 로그인 API를 구현하기위해 자동 import로 JJWT를 불러오려고 하는데 자동완성이 안된다고 하더군요
그래서 알아보니 쨌든... 설치가 안된 것 같다... 였습니다 😭
그래서 그 당시 다시 빌드도 해보고 검색도 와장창 같이 했었습니다
동료가 파일을 수동으로 다운로드하는(?) 작업도 해봤었다고 합니다 (물론 실패함)
가장 먼저 시도해본게 이 스텍오버플로우 게시물이었습니다
gradle 버전? 호환성? 문제도 있는 것 같다는 말에 동료가 셋팅을 다르게 해보려고 했던 것도 같습니다
https://www.inflearn.com/questions/237363
어느 사이트에서 뭘 받아오는 것도 동료가 시도 했던거 같은데 그 사이트를 다시 못 찾겠네요...
2. 모두 실패.. 그래서 해결은?
쨌든 거의 90% 포기한 상태에서...
제가 어떤 상황인지 기억이 잘 안나는데, 예전에 에러가 뭔지도 모르겠고 오타도 없는데 해결되지 않아서
비슷한 강의 소스 코드 깃헙에서 복붙해본 적이 있었거든요
(에러인지 다운로드가 안되는거였는지 기억이 안남)
그래서 극적으로 해결된 상황이 있었다고 jjwt 강의 같은거 없냐고
소스코드 복붙을 하든 그 사람들 다운로드 된 디펜던시 문장(?)을 확인해보자고 강의를 찾기 시작했어요ㅋㅋㅋㅋㅋ
보니까 인프런 강의가 있더라고요?
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-jwt
그래서 강사님의 깃헙 소스코드를 보기 시작했습니다ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
그렇게 훑어보던 동료가... 어느 한 소스를 복붙했더니....
되었습니다.................... 😮 !!!!!!!!!
복붙한 코드는 이 부분입니다
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.2'
이 부분을 build.gradle 파일 dependencies 부분에 복붙했더라고요
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.5.4'
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.2'
implementation group: 'org.postgresql', name: 'postgresql', version: '42.2.23'
// https://mvnrepository.com/artifact/org.projectlombok/lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
이렇게 해결했습니다만........... 이유는 뭔지 잘 모르겠어요
동료랑 시간이 조금 오래걸리더라도 이 방법은 포기하고 Spring Security를 배워서 로그인을 구현하나하고 고민했는데
정말 다행입니다 😭
흔하게 발견되는 에러는 아닌 것 같아서 블로그에 이렇게 기록해봅니다!
'Backend' 카테고리의 다른 글
Nest.js 카카오 REST API 로그인 구현하기 | access token, refresh token (5) | 2024.11.08 |
---|---|
access token, refresh token 토큰 기반 인증 방식 | JWT, HTTP header (8) | 2024.11.05 |
Nest.js 시작하기 (2) | 2024.10.15 |
❌ Assertion failed: new_time >= loop->time, file c:\ws\deps\uv\src\win\core.c, line 309 | Node.js 에러 (2) | 2020.11.05 |
Node.js 시작, 세팅하기 | Express, ES6 문법 사용, nodemon 설치 (0) | 2020.10.24 |
댓글