JJWT 라이브러리 설치 에러

    반응형

    오늘은 간단한 사이드 프로젝트 진행중인 백엔드 동료가 직면했던 에러에 대해 기록해보려고 합니다

    일단 제 포지션은 프론트이고 동료가 백을 맡고 개발하고 있었고,

    로그인 구현을 JWT Token 발급 형식으로 진행하자고 결정을 내렸습니다

    백엔드 동료는 스프링 부트를 기반으로 작업 중이었고, 

    jjwt 라이브러리를 설치하려는데 import가 되지 않아 JWT Token 발급 형식을 사용을 못하게 되는건가😭.. 상황에 놓여있었습니다

    그 당시에는 검색해도 방법이 뜨질 않았고 (...)

    제시된 방법도 다 써봤지만 설치가 되지 않았고 (...)

    저희가 발견한 야매 방법을 소개하겠습니다

     

     

     


     

    1. dependency 추가

    저는 프론트라 잘 모르지만 현재 백에서는 gradle 라는걸 사용하는 것 같습니다

    그래서 build.gradle 라는 파일에 의존성을 추가하면 되는 것 같습니다

    implementation 'io.jsonwebtoken:jjwt:0.9.1'

    네, 이 한줄을 적어주면 끝이라며... 쨌든 문제없이 잘 진행되었다고 했었습니다 (동료왈)

    이제 로그인 API를 구현하기위해 자동 import로 JJWT를 불러오려고 하는데 자동완성이 안된다고 하더군요

    그래서 알아보니 쨌든... 설치가 안된 것 같다... 였습니다 😭

    그래서 그 당시 다시 빌드도 해보고 검색도 와장창 같이 했었습니다

    동료가 파일을 수동으로 다운로드하는(?) 작업도 해봤었다고 합니다 (물론 실패함)

    가장 먼저 시도해본게 이 스텍오버플로우 게시물이었습니다

    https://stackoverflow.com/questions/53809244/difficulty-importing-jwt-json-web-token-in-spring-boot-gradle-project

     

    Difficulty importing JWT (JSON Web Token) in Spring Boot Gradle project

    I have a Spring Boot gradle project and in the build.gradle dependencies, I import JSON Web Token as: compile group: 'io.jsonwebtoken', name: 'jjwt', version: '0.2' Following Spring Security and a

    stackoverflow.com

     

    gradle 버전? 호환성? 문제도 있는 것 같다는 말에 동료가 셋팅을 다르게 해보려고 했던 것도 같습니다

    https://www.inflearn.com/questions/237363

     

    JWT 관련 라이브러리 추가시 build.gradle 오류 - 인프런 | 질문 & 답변

    build.gradle에 JWT 관련 라이브러리들을 추가한 후 적용하게 되면 다음과 같은 오류가 발생합니다 ㅠㅠㅠ 어떻게 해결할 수 있을까요?? 여기서 진행을 못하고 있습니다 ㅠㅠㅠㅠ [사진] build.gradle은

    www.inflearn.com

     

    어느 사이트에서 뭘 받아오는 것도 동료가 시도 했던거 같은데 그 사이트를 다시 못 찾겠네요...

     

     

    2. 모두 실패.. 그래서 해결은?

    쨌든 거의 90% 포기한 상태에서...

    제가 어떤 상황인지 기억이 잘 안나는데, 예전에 에러가 뭔지도 모르겠고 오타도 없는데 해결되지 않아서

    비슷한 강의 소스 코드 깃헙에서 복붙해본 적이 있었거든요

    (에러인지 다운로드가 안되는거였는지 기억이 안남)

    그래서 극적으로 해결된 상황이 있었다고 jjwt 강의 같은거 없냐고

    소스코드 복붙을 하든 그 사람들 다운로드 된 디펜던시 문장(?)을 확인해보자고 강의를 찾기 시작했어요ㅋㅋㅋㅋㅋ

    보니까 인프런 강의가 있더라고요?

    https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-jwt

     

    [무료] Spring Boot JWT Tutorial - 인프런 | 강의

    Spring Boot, Spring Security, JWT를 이용한 튜토리얼을 통해 인증과 인가에 대한 기초 지식을 쉽고 빠르게 학습할 수 있습니다., [사진] 본 강의는 Spring Boot, Spring Security를 이용해서 JWT 인증과 인가를 쉽

    www.inflearn.com

    그래서 강사님의 깃헙 소스코드를 보기 시작했습니다ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

    그렇게 훑어보던 동료가... 어느 한 소스를 복붙했더니....

    되었습니다.................... 😮 !!!!!!!!!

    복붙한 코드는 이 부분입니다

    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를 배워서 로그인을 구현하나하고 고민했는데

    정말 다행입니다 😭

    흔하게 발견되는 에러는 아닌 것 같아서 블로그에 이렇게 기록해봅니다!

    반응형

    댓글