매일 공부하는 것들 정리합니다. 개발 환경 데이터베이스를 도커 컴포즈로 관리 개발 환경에서 사용할 database 를 docker-compose.yml 로 관리할 수 있다. version: '3.8' # docker-compose 의 3.8 버전을 사용한다는 믜미services: db: image: mysql:8.0 # mysql 이미지 8.0 버전을 사용한다는 의미다. container_name: local-mysql # 컨테이너 이름 restart: always # environment: MYSQL_DATABASE: localdb MYSQL_USER: ${LOCAL_USERNAME} MYSQL_PASSWORD: ${LOCAL_PASSWORD} ports: - "3306:3306" volumes: .. 2024.11.25 spotless 적용하기 build.gradle 의 최상단에 존재하는 plugins 에 코드를 추가합니다. plugins { id 'java' id 'org.springframework.boot' version '3.3.5' id 'io.spring.dependency-management' version '1.1.6' id 'com.diffplug.spotless' version '6.21.0'}공식문서의 Java 코드 부분을 build.gradle 에 추가합니다. spotless {java { // Use the default importOrder configuration importOrder() // optional: you can specify import groups directly // note: you can use.. 2024.11.24 JWT란? 1. JWT 이란유저를 인증하고 식별하기 위한 토큰기반 인증입니다. 토큰 자체에 사용자의 권한정보나 서비스를 사용하기 위한 정보가 포함됩니다. stateless 인 환경에서 사용자의 데이터를 주고 받을 수 있습니다. session 을 사용할 경우 쿠키 등을 통해서 사용자를 식별하고 서버에 세션을 저장했지만, 토큰을 클라이언트에 저장하고 요청시 HTTP 헤더에 토큰을 첨부하는 것만으로도 데이터를 요청하고 응답받을 수 있습니다. 2. JWT 구조 JWT 는 3 부분으로 구성되며, 각 부분은 점으로 구분하여 표현됩니다. 1) 헤더서명 시 사용하는 키, 사용할 타입, 서명암호화 알고리즘 의 정보가 담겨있습니다. kid : 서명 시 사용하는 키(Public/Private Key)를 식별하는 값typ : 토큰 유.. 2024.08.21 H2 데이터베이스 종류 In-Memory 모드 H2 실행 파일 다운로드가 필요 없다.build.gradle 및 application.properties 설정을 통해 실행 가능하다.스프링 부트 실행할 때 함께 H2를 띄운다.H2 DB 데이터를 로컬에 저장하지 않고 메모리에만 가지고 있다.H2_DATASOURCE_URL=jdbc:h2:mem:dbH2_USERNAME=saH2_PASSWORD= Server 모드 H2 실행 파일을 다운로드해야 한다.외부에서 터미널을 통해 H2 서버를 실행해야 한다.서버를 실행하면 스프링에서 application.properties에 서버 주소를 입력해 접속한다.H2 DB 데이터를 로컬에 직접 저장하고 사용한다.H2_DATASOURCE_URL=jdbc:h2:tcp://localhost/~/heroes.. 2024.08.16 [Spring] @ConfigurationProperties 사용하기 팀원이 kakao 관련 value 들을 주입할 때 사용해서 알게 되었다. oauth: kakao: client: id: "idValue" secret: "secretValue" redirectUri: "redirectUriValue" grantType: "grantTypeValue" admin: "adminValue" 위의 application.yml 은 아래와 같이 변경될 수 있다. configuration properties 를 POJO를 통해 분리하는 것을 권장한다.@ConfigurationProperties 는 동일한 prefix 를 갖는 hierarchical properties 를 다루는데 편하다. @ConfigurationProperti.. 2024.08.13