본문 바로가기

전체 글

(285)
231110_TIL 오늘한일 회원가입 기능 개발에 데이터 검증 적용 시키기 유효성 검사 유효성 검사란, 요청한 데이터가 어떤 조건에 충족하는지 확인하는 작업입니다 Validation이란? Java는 null 값에 대한 접근에 대해 NullPointerException 오류가 발행하기 때문에 이러한 부분을 예방하기 위해 Validation 즉, 검증 과정이 필요합니다. Spring에서는 null 확인 뿐 아니라 문자의 길이 측정과 같은 다른 검증 과정도 쉽게 처리할 수 있도록 Bean Validation 제공하고 있습니다. Bean Validation 간편하게 사용할 수 있는 여러 애너테이션을 제공 해줍니다. build.gradle : validation implementation 'org.springframework.boo..
231109_TIL 오늘한일 - Spring Security 공부 Spring Security 적용 Spring Security' 프레임워크 추가 // Security implementation 'org.springframework.boot:spring-boot-starter-security' 'Spring Security' 활성화 Spring Security 제외 해제 @SpringBootApplication public class SpringAuthApplication { public static void main(String[] args) { SpringApplication.run(SpringAuthApplication.class, args); } } 'Spring Security' 설정 WebSecurityConfi..
메모장 - Update, Delete 구현하기 Update 구현 @PutMapping("/memos/{id}") public Long updateMemo(@PathVariable Long id, @RequestBody MemoRequestDto requestDto) { // 해당 메모가 DB에 존재하는지 확인 if(memoList.containsKey(id)) { // 해당 메모 가져오기 Memo memo = memoList.get(id); // memo 수정 memo.update(requestDto); return memo.getId(); } else { throw new IllegalArgumentException("선택한 메모는 존재하지 않습니다."); } } Memo 클래스에 수정하는 기능의 메서드 update 생성 public void up..
메모장- Create,Read 구현하기 Create 구현 1. 메모 데이터를 저장할 Memo 클래스 생성 package com.sparta.memo.entity; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @Getter @Setter @NoArgsConstructor public class Memo { private Long id; private String username; private String contents; } 2. 메모 생성하기 API를 받을 수 있는 Controller와 메서드 생성 @RestController @RequestMapping("/api") public class MemoController { @PostMapping("/..
메모장 프로젝트 설계 메모장 기능 설계 접속 하자마자 메모 전체 목록 조회하기 GET API 사용해서 메모 목록 불러오기 메모 생성하기 POST API 사용해서 메모 신규 생성하기 생성된 메모 반환 메모 변경하기 PUT API 사용해서 메모 내용 변경하기 사용자가 클릭한 메모가 DB에 존재하는지 확인하기 해당 메모 내용 변경 메모 삭제하기 DELETE API 사용해서 메모 삭제하기 사용자가 삭제하려는 메모가 DB에 존재하는지 확인하기 DB에서 해당 메모 삭제 API 테이블
231108_TIL 오늘한일 spring공부 JWT란 JWT란 JWT(Json Web Token)란 JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token 입니다. 즉, 토큰의 한 종류라고 생각하시면 됩니다. 일반적으로 쿠키 저장소를 사용하여 JWT를 저장합니다. JWT 장/단점 장점 동시 접속자가 많을 때 서버 측 부하 낮춤 Client, Sever 가 다른 도메인을 사용할 때 예) 카카오 OAuth2 로그인 시 JWT Token 사용 단점 구현의 복잡도 증가 JWT 에 담는 내용이 커질 수록 네트워크 비용 증가 (클라이언트 → 서버) 기 생성된 JWT 를 일부만 만료시킬 방법이 없음 Secret key 유출 시 JWT 조작 가능 JWT 생성 // 토큰 생성 public String c..
Jackson이란? Jackson은 JSON 데이터 구조를 처리해주는 라이브러리 입니다. Object를 JSON 타입의 String으로 변환해줄 수 있습니다. JSON 타입의 String을 Object로 변환해줄 수 있습니다. Spring은 3.0버전 이후로 Jacskon과 관련된 API를 제공함으로써, 우리가 직접 소스 코드를 작성하여 JSON 데이터를 처리하지 않아도 자동으로 처리해주고 있습니다. 따라서 SpringBoot의 starter-web에서는 default로 Jackson 관련 라이브러리들을 제공하고 있습니다. 직접 JSON 데이터를 처리해야할 때는 Jackson 라이브러리의 ObjectMapper를 사용할 수 있습니다.
Controller Controller Code Spring MVC는 효율적인 API 처리를 위해 Front Controller 패턴을 만들어냈습니다. API 마다 파일을 만들 필요 없습니다. 보통 하나의 Contoller 에 모든 API를 넣지는 않습니다. 유사한 성격의 API 를 하나의 Controller 로 관리합니다. 메서드 이름도 내 마음대로 설정 가능합니다. (단, 클래스 내의 중복메서드명 불가) @Controller @RequestMapping("/user") public class UserController { @GetMapping("/login") public String login() { // ... } @GetMapping("/logout") public String logout() { // ... } ..