BackEnd263 [Spring] 로그인 처리1 - 쿠키, 세션 - 3 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 7. 로그인 처리하기 - 직접 만든 세션 적용 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 지난 시간까지 직접 구현한 SessioManager를 활용하여 로그인, 로그아웃을 구현해보자! ● LoginController - loginV2() @Slf4j @Controller @RequiredArgsConstructor public class LoginController { private final LoginService loginService; private final SessionManager sessionManager; // 세션 메니저 추가 @Get.. BackEnd/Spring MVC 2022. 3. 9. [Spring] 로그인 처리1 - 쿠키, 세션 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 3. 로그인 처리하기 - 쿠키 사용 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번시간에는 로그인 상태를 유지하기 위해서 쿠키를 사용해 보자. 서버에서 로그인에 성공하면 HTTP 응답에 쿠키를 담아서 브라우저에 전달하자. 그러면 브라우저는 앞으로 서버로 요청을 보낼때 마다 이전에 받은 쿠키를 지속해서 서버로 보내준다. ● 쿠키의 종류 2가지 영속 쿠키: 만료 날짜를 입력하면 해당 날짜까지 유지 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료시 까지만 유지 우선 로그인에 성공항 회원들에게 response에 cookie를 담아서 보내주자! ● LoginC.. BackEnd/Spring MVC 2022. 3. 9. [Spring] 로그인 처리1 - 쿠키, 세션 - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 회원 가입 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 데이터를 저장할 Member entity부터 만들어야 한다. ● Member @Data public class Member { private Long id; @NotEmpty private String loginId; // 로그인 ID @NotEmpty private String name; @NotEmpty private String password; } ● MemberRepository MemberRepository는 Member를 저장해두는 저장소 역할을 한게된다. @Slf4j @Re.. BackEnd/Spring MVC 2022. 3. 9. [Spring] Transaction 동작 원리 (@Transactional 원리) 이 글의 최종 목적은 @Transactional 이 어떻게 돌아가는지를 알아보는 것 입니다. 하지만 우선적으로 JDBC에서 트랜잭션을 어떠한 방식으로 적용시키는지를 이해할 필요가 있습니다. 1. JDBC Transaction 이해하기 우선 대략적인 JDBC의 트랜잭션을 다루는 코드는 다음과 같습니다. import java.sql.Connection; Connection connection = dataSource.getConnection(); // (1) try (connection) { connection.setAutoCommit(false); // (2) // execute some SQL statements... connection.commit(); // (3) } catch (SQLException.. BackEnd/Spring 2022. 3. 9. [Spring] 검증2 - Bean Validation - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 5. Bean Validation - 오브젝트 오류 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 Bean Validation 에서 특정 FieldError가 아닌, 오브젝트 관련 에러 또한 처리가 가능하다. (다만 권장하지 않는 방식이다) 바로 @ScriptAssert()를 사용하면 된다. @Data @ScriptAssert(lang = "javascript", script = "_this.price * _this.quantity >= 10000", message = "총 합이 10000원을 넘어야 합니다") public class Item { priv.. BackEnd/Spring MVC 2022. 3. 7. [Spring] 검증2 - Bean Validation - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. Bean Validation - 소개 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 기존에 직접 구현하였던 검증과정은 상당하게 번거롭다. 특정 필드에 대하여 하나 하나 전부 검증과정을 거처야 하니 노가다에 가까웠다. 이를 해결하기 위해 등장한것이 Bean Validation 이다. 우선 다음 코드를 살펴보자. public class Item { private Long id; @NotBlank private String itemName; @NotNull @Range(min = 1000, max = 1000000) private Integer price.. BackEnd/Spring MVC 2022. 3. 7. [Spring] @SpringBootTest SpringBoot에서 테스트 시작하기 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 Spring Boot는 애플리케이션을 테스트하기 위한 많은 기능을 제공해 줍니다! Spring boot에서 테스트 모듈은 spring-boot-test와 spring-boot-test-autoconfigure가 존재하는데, 대부분의 경우는 spring-boot-starter-test만으로도 충분하며, spring-boot-starter-test는 spring boot의 테스트에 사용되는 Starter 패키지입니다. spring-boot-starter-test는 JUnit는 물론이고, AssertJ, Hamcrest를 포함한 여러 유용한 라이브러리를 포함하고 있습니다. spring-boo.. BackEnd/Spring 2022. 3. 7. [Spring] 검증1 - Validation - 4 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 10. 오류 코드와 메시지 처리 5 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ● 핵심은 구체적인 것 을 먼저 사용하고, 덜 구체적일수록 나중에 사용한다. MessageCodesResolver 는 required.item.itemName 처럼 구체적인 것을 먼저 만들어주고, required 처럼 덜 구체적인 것을 가장 나중에 만든다. 그럼 왜 이런식으로 오류코드를 만들까? 모든 오류코드에 대하여 메시지를 전부 다 만들기는 힘들다. 일반적이면서 중요하지 않은 메시지는 범용적인 오류 코드인 required 와 같이 사용하고, 정말 중요한 내용은 필요할때 .. BackEnd/Spring MVC 2022. 3. 6. [JDBC] PrepareStatement에서 TimeStamp, LocalDateTime 사용하기 글의 작성 이유 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 글 에서는 JDBC를 사용하여 DB에 날짜를 저장하는 삽질에 대한 글을 작성하는 것 입니다. 우선 DB상에서 날짜를 Date, Timestamp 자료형으로 저장한 경우에 대하여 알아보자. 1. java.sql.Date 사용하기 만약 나의 Table에서 Date column을 사용중 이라면 사용할수가 있다. java.lang.String ps.setDate(2, java.sql.Date.valueOf("2013-09-04")); java.sql.Date.valueOf(java.lang.String) 메서드는 날짜에 대한 String을 다음과 같은 포멧으로 받을 수 있다. yyyy-MM-dd java.uti.. BackEnd/JDBC 2022. 3. 6. [Spring] 검증1 - Validation - 3 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 6. 오류 코드와 메시지 처리 1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 위에서는 오류 메시지를 직접 추가해줬었는데, 이렇게 직접 추가하다보면 통일성이 없어 진다. 같은 내용의 오류메시지 이지만, 구문이 조금씩 달라질수도 있다. 이를 좀더 효율적으로 오류 메시지를 다루어 보자. properties에 한번에 저장해두고, 메시지처럼 사용할수가 있다. 이러한 활용법을 알아보기 전에 우선 FieldError 생성자를 다시한번 살펴보자. ● FieldError 생성자 public FieldError(String objectName, String field,.. BackEnd/Spring MVC 2022. 3. 6. [Spring] 검증1 - Validation - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 3. BindingResult 1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링이 제공하는 BindingResult를 통해 검증 오류 처리 방법을 알아보자. ● addItemV1 우선 이전 글에서 하나하나 검증하던 코드가 어떻게 변경되었는지 확인해 보자. @PostMapping("/add") public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { // 검증 로직 if.. BackEnd/Spring MVC 2022. 3. 6. [Spring] 검증1 - Validation - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 검증 직접 처리 - 소개 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 컨트롤러의 중요한 역할중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 그리고 정상 로직보다 이런 검증 로직을 잘 개발하는 것이 어쩌면 더 어려울 수 있다. 우선 상품 저장이 검증 실패되는 경우를 그림으로 살펴봅시다. 고객이 폼에 입력한 값이 지정된 범위를 넘어가거나, 또는 너무 작은경우 서버에서 검증 로직이 실패해야 한다. 이렇게 검증에 실패한 경우 고객이 보냈던 실패한 데이터를 Model에 저장하여 다시 반환함으로써 어떤 값을 잘못 입력했는지를 알려줘야 한다 만약 검증이 .. BackEnd/Spring MVC 2022. 3. 5. 이전 1 ··· 11 12 13 14 15 16 17 ··· 22 다음