<aside> 💡 중요한 부분 위주로 진행하겠습니다.

</aside>

Yaml 파일

# 로컬용 profile
# 로컬에서 서버를 구동시키고 postman으로 테스트하고 싶을 떄

spring:
  main:
    allow-circular-references: true
  datasource:
    url: "jdbc:mysql://localhost:3306/rg"
    username: dev
    password: dev
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    show-sql: true
    generate-ddl: false
    database: mysql
    open-in-view: false
    hibernate:
      ddl-auto: none
    properties:
      hibernate:
        format_sql: true
        use_sql_comments: true
  security:
    oauth2:
      client:
        registration:
          kakao:
            client-name: kakao
            client-id: 8f248aa7874df072e8d15b2d0b284108 # REST API용
            client-secret: tbGLY0lEfvxkrgFWfssEaXpWTS73nPJa # 보안
            scope: profile_nickname, profile_image # 필수로 처리한 항목들
            redirect-uri: "<http://localhost:8080/login/oauth2/code/{registrationId}>" # redirectURI , 마지막은 스프링 시큐리티에서 알아서 처리해서 넣어줌
            authorization-grant-type: authorization_code #
            client-authentication-method: POST
        provider:
          kakao:
            authorization-uri: <https://kauth.kakao.com/oauth/authorize> # 1회성 인증을 받기위함
            token-uri: <https://kauth.kakao.com/oauth/token> # 1회성 인증 코드를 이용해 accesscode를 발급받기 위함
            user-info-uri: <https://kapi.kakao.com/v2/user/me> # kakao에서 사용자 정보를 가져오기 위한 api
            user-name-attribute: id # 카카오에서 사용자 정보를 가지고 왔을 때 사용자의 고유 식별키 추출을 위한 필드명, 사용자 정보 가져오기의 회원 번호
jwt:
  header: token
  issuer: prgrms
  client-secret: EENY5W0eegTf1naQB2eDeyCLl5kRS2b8xa5c4qLdS0hmVjtbvo8t0yhPMcAmtPuQ
  expiry-seconds: 60

위에서 부터 차례대로 설명하겠습니다.

main:
    allow-circular-references: true

먼저 이 부분은 문제 해결한 곳에서 설명했듯이 Spring boot 2.6버전 이후로 순환참조를 사용할때 붙여줘야 하는 설정입니다. 해당 강의에서는 순환참조가 발생하기 때문에 붙였습니다. 현재 순환참조를 해결하는 방법을 모르기 때문에 설정을 붙여줌으로써 에러를 해결하였습니다.

  jpa:
    show-sql: true
    generate-ddl: false
    database: mysql
    open-in-view: false
    hibernate:
      ddl-auto: none
    properties:
      hibernate:
        format_sql: true
        use_sql_comments: true

jpa는 ddl-auto를 none으로 하고 진행하였는데 data.sql와 schema.sql을 설정할 것이 있어 이렇게 진행하였습니다. 실제 개발 코드에서는 최대한 쓰지 않는 방향으로 수정해보겠습니다.

jwt:
  header: token
  issuer: prgrms
  client-secret: EENY5W0eegTf1naQB2eDeyCLl5kRS2b8xa5c4qLdS0hmVjtbvo8t0yhPMcAmtPuQ
  expiry-seconds: 60

security를 하기전에 먼저 설명해야 할 것 같아서 앞으로 빼서 설명하겠습니다.

  security:
    oauth2:
      client:
        registration:
          kakao:
            client-name: kakao
            client-id: 8f248aa7874df072e8d15b2d0b284108 # REST API용
            client-secret: tbGLY0lEfvxkrgFWfssEaXpWTS73nPJa # 보안
            scope: profile_nickname, profile_image # 필수로 처리한 항목들
            redirect-uri: "<http://localhost:8080/login/oauth2/code/{registrationId}>" # redirectURI , 마지막은 스프링 시큐리티에서 알아서 처리해서 넣어줌
            authorization-grant-type: authorization_code 
            client-authentication-method: POST
        provider:
          kakao:
            authorization-uri: <https://kauth.kakao.com/oauth/authorize> # 1회성 인증을 받기위함
            token-uri: <https://kauth.kakao.com/oauth/token> # 1회성 인증 코드를 이용해 accesscode를 발급받기 위함
            user-info-uri: <https://kapi.kakao.com/v2/user/me> # kakao에서 사용자 정보를 가져오기 위한 api
            user-name-attribute: id # 카카오에서 사용자 정보를 가지고 왔을 때 사용자의 고유 식별키 추출을 위한 필드명, 사용자 정보 가져오기의 회원 번호

먼저 위에서부터 주석으로 일단 기본적인 내용은 썼습니다.