![[Spring/Security] JWT 생성, 검증 JwtTokenizer 만들기 (JWT Spring에서 사용하기 1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcNaSUS%2FbtsIiOwBZku%2FAAAAAAAAAAAAAAAAAAAAALBz35TlfJeL1clchGo__EdFnC9hJZnuOx7ZBbY6xGjV%2Fimg.gif%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3Dnev%252BlJWX9fkjnrT0HS%252FmAGzdtIo%253D)
JWT를 Spring에서 어떻게 사용하는지 알아보자일단 JwtTokenizer클래스를 만들고 @Component를 사용해서 빈으로 등록하자메소드를 중심으로 설명해 보겠다.https://naturecancoding.tistory.com/109 [Security/JWT] JWT 기초JWT 정의JSON Web Token 정보를 안전하게 전송하기 위한 표준 방법 중 하나.Json객체를 사용해서 정보를 저장하고, 디지털 서명을 통해서 검증한다.JWT 구성 요소1. HeaderJWT의 타입과 해싱 알고리즘 정보naturecancoding.tistory.comJWT가 뭔지 궁금한 분들은 기초를 보고오자1. 맴버 변수private final byte[] accessSecret; //JWT 서명을 위한 비밀 키 엑세스 ..
![[Spring/기초] RestController 완벽 정리 (return type, 파라미터, 추가 개념 및 기능)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FZ3M7j%2FbtsIakHQSub%2FAAAAAAAAAAAAAAAAAAAAAPJkHm2YQbrZh4ykNcZ4b-sAFhWyLf79-xT-DgWAHG_M%2Fimg.gif%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3Dz4e0BCfPVxex%252FinWqgHLy2%252FaBwM%253D)
내가 정리해두고 두고두고 볼라고 만든RestController 완벽 정리정리할 것, 예시코드 예시코드를 사용한 상세 설명 순으로 구성했다.Title - Excode - Description(3쌍)Return Type 정리1.기본 객체 및 컬렉션단일 객체@GetMapping("/user/{id}")public User getUser(@PathVariable Long id) { return userService.findById(id);}//예시 Json 응답{ "id": 1, "name": "John Doe", "email": "john.doe@example.com"} 객체를 반환 json으로 변환 해줌 리스트 or 맵 같은 컬렉션@GetMapping("/users")public Lis..
![[Spring/기초] 환경 변수 파일 사용하기 (env.properties)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fc0HluH%2FbtsHFNRYT07%2FAAAAAAAAAAAAAAAAAAAAAK60hirXgOBNQyfI0j3sspm3uaigmsyWRxxUcDlzkQWD%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3D7tANFszhcTJ7KJxKm5K0JOqfwWA%253D)
Spring Boot에서 환경변수 파일로 민감한 정보 따로 보관하기환경변수를 Spring boot 프로젝트 전역에서 사용하려면 따로 설정을 해줘야 한다.그럼 한번 방법을 알아보자1. 변수 파일 생성recources/properties 폴더 생성 후 env.properties파일 생성2. env 파일에 환경변수 적기DB_HOST=localhostDB_PORT=5432DB_NAME=exampleDBDB_USERNAME=postgresDB_PASSWORD=1234요런식으로 자신이 원하는 변수들 적기꼭 .gitignore에 적어서 변수가 git에 안올라가도록 하자3. env 파일을 사용할 수 있도록 Spring boot에 연결config폴더에 PropertyConfig.java 생성package com.exam..
![[Spring/기초] Service](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbSReMb%2FbtsEyedN6ez%2FAAAAAAAAAAAAAAAAAAAAAN6NDMgRf1cHYuV4l5I9O3vY9GdAvTi2Zojm7VGa2Fcs%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DYsSVC%252FNG6ZBdTKthqAiOBPQiihg%253D)
Spring의 MVC중 하나인 Service에 대해서 알아보자 Service를 결론부터 설명하자면 애플리케이션의 비지니스 로직을 포함하며 프레젠테이션 계층과 데이터 접근 계층 사이에서 중간 역할을 수행한다. 즉 데이터가공하는 애플리케이션의 핵심 기능, 규칙을 구현한다. 데이터베이스에 직접 데이터를 가공하다간 원본 데이터가 손실, 손상될수 있음으로 계층을 둔다. 서비스 계층의 주요 기능과 특징 1. 비지니스 로직의 캡슐화: 서비스 곛층은 비지니스 로직이나 비지니스 규칙을 구현하고, 이를 프레젠테이션 계층과 분리해서 애플리케이션의 유지 보수성과 확장성을 향상시킨다. 2. 재사용성 : 비지니스 로직을 서비스 계층에 구현함으로써, 동일한 로직을 애플리케이션의 다른 부분에서 재사용 할 수 있다. 3. 트랜잭션 관..
![[Spring/기초] Repository](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb0j9gU%2FbtsDKbiSojW%2FAAAAAAAAAAAAAAAAAAAAAHK-7oc-JYAxoiO6ng50hgB0t29zWmJ__tvCJAxR0mA_%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DXNfEHUyZt5%252FScvevDz5BqZwQdwY%253D)
스프링 프레임 워크에서 데이터 베이스와 상호작용을 위해서 사용하는 것이 리파지토리이다. 리파지토리는 데이터를 영속적으로 저장하고 검색하는데 사용되며 객체 지향적으로 데이터를 다룰 수 있도록 도와준다. 1. Spring Data Repository Repository를 사용하면 데이터베이스 액세스 코드를 직접 작성하지 않아도 간편하게 데이터베이스와 상호 작용할 수 있다. import org.springframework.data.repository.Repository; public interface UserRepository extends Repository { User findByUsername(String username); void save(User user); void delete(User user)..
![[Spring/기초] TDD](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FOqEzc%2FbtsDJ0tSNnG%2FAAAAAAAAAAAAAAAAAAAAABuN4MeHsRqiHiy6osqvui97UWWP-SYhIYhLWNHaW3yy%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DuDM7FoiLN4nXHayTyJ%252FYvCPkKek%253D)
Spring boot를 생성하면 이놈이 생성되어 있다 뭐하는 디렉토리일까? 테스트 코드 작성의 중요성과 이유 테스트 코드를 먼저 작성하고 해당 테스트를 통과할 수 있도록 코드를 작성하는 방식을 TDD라고 부른다. 테스트 코드의 중요성을 알아보자 1. 테스트 코드의 중요성 버그 발견 및 예방 테스트 코드를 미리 작성해 둠으로써 코드의 기능이 예상대로 동작하지 않을 때 이를 빠르게 발견하고 수정할 수 있다. 테스트 코드는 버그를 사전에 예방하는 역할을 한다. 리팩토링 지원 코드를 리팩토링할 때, 테스트 코드가 있다면 개발자는 리팩토링 전과 후에도 기능이 올바르게 작동하는지를 검증할 수 있다. 이는 코드의 가독성과 유지보수성을 향상시키는 데 도움을 준다. 문서화 테스트 코드는 코드의 사용 예시를 제공하며, 프..