목록Bank-End/Spring Boot (27)
관심쟁이 영호

오늘은 로그인에서 쿠키 및 세션을 적용해볼 것이다! 목차 쿠키란? 쿠키구현 쿠키의 한계 세션이란? 세션구현 스프링에서의 세션 세션의 한계 쿠키란? 쿠키는 서버측에서 사용자가 누구인지 알기위한 식별값이다. TCP/IP 위의 HTTP 통신이 지속성이 없기 때문에(한번 요청 - 한번 응답 끝) 사용자가 요청했을 때, 서버측에서는 그 사용자가 누구인지 모른다. 서버는 사용자가 요청을하면 쿠키를 생성하여 응답에 포함하여 전달한다. 그림으로 살펴보자. 1) 최초의 Request - Response 사용자가 서버측에 Post요청을 한다. 서버는 회원 저장소에서 로그인 id에 맞는 정보가 있는지 확인한다. 없어서 쿠키를 설정하고(Set-Cookie: id=abc) 응답한다. 회원은 웹브라우저에 있는 쿠키 저장소에 쿠키..

이번 기록은 Spring Boot와 JPA를 이용하여 로그인을 구현해볼 것이다. 목차 로그인 프론트 생성 로그인 컨트롤러 매핑 로그인 Service 구현 기타 로그인 프론트 생성 가장 먼저 로그인을 받을 프론트를 생성하자! 프론트는 아주 간단하게 만들어 볼 것이다. 코드는 다음과 같다. 로그인입니다. ID : PASSWORD : 제출 화면은 다음과 같다. 코드 설명: form 형태로 id와 password를 post 방식으로 요청한다. 로그인 컨트롤러 매핑 매핑은 Get, Post 이렇게 2가지 방식으로 진행할 것이다. Get 매핑 : "login" 템플릿을 response 한다. Post 매핑: 로그인 정보를 DB에서 조회하여 로직을 거친 다음, 성공 실패 여부를 정한다. 성공 시 HOME화면으로 이동..
오늘은 Bean Validation에 대해서 기록을 해보자! 목차 Bean Validation 이란? Bean Validation Error 발생시키기 Bean Validation 실행 내용 이해하기 Bean Validation Object Error Bean Validation 이란? 웹 서버를 운영하면서, 사용자에게 여러 가지 입력을 받는다. 모든 사용자가 올바른 양식의 입력을 해주면 좋겠지만, 사용자도 사람인지라 올바르지 못한 입력을 할 가능성이 있다. 가령, 회원가입을 진행하면서 id를 공백으로 입력하는 경우를 말할 수 있다. 물론, Controller에서 if문을 이용하여 입력값을 검증할 수 있다. (고대 개발자들은 이렇게 했겠지..) 이렇게 할 경우에는 Controller가 너무 길어지고, 코..

오늘은 Ajax에 대해서 공부를 할 예정이다. Ajax란? Ajax(Asynchronous JavaScript and XML, 에이잭스)는 비동기적인 웹 애플리케이션의 제작을 위해 아래와 같은 조합을 이용하는 웹 개발 기법이다. 표현 정보를 위한 HTML (또는 XHTML) 과 CSS 동적인 화면 출력 및 표시 정보와의 상호작용을 위한 DOM, 자바스크립트 웹 서버와 비동기적으로 데이터를 교환하고 조작하기 위한 XML, XSLT, XMLHttpRequest (Ajax 애플리케이션은 XML/XSLT 대신 미리 정의된 HTML이나 일반 텍스트, JSON, JSON-RPC를 이용할 수 있다) DHTML이나 LAMP와 같이 Ajax는 자체가 하나의 특정한 기술을 말하는 것이 아니며, 함께 사용하는 기술의 묶음을..

오늘은 Dummy Data를 넣어서 테스트를 해볼 예정이다. "com.cos.blog.test" pakage를 새로 만든다. 그리고 DummyControllerTest 클래스를 새로 만들어주자. 그리고 다음 코드를 살펴보자. // UserRepository.class //@Repository 생략가능 public interface UserRepository extends JpaRepository{ //User를 다루는 것, Primary key는 integer야 } JpaRepository을 상속받는다. 이렇게 상속받게되면, 필요한 메서드들을 상속받을 수 있다. 예를 들어, findOne, findAll 등등 User 테이블에 접근하여 가지고오는 모든 행위를 상속받을 수 있다. 이제 DummyContro..

스프링 공부를 해본 적이 있다면, 누구나 연관관계에 대해서 고민을 해본 적이 있을 것이다. 오늘은 그 연관관계가 어떤 것인지 살펴볼 예정이다. 아래의 그림을 보자. 어떠한 게시판의 게시글의 예시이다. 작성자: 홍길동은 User Table에서 데이터를 가지고 있다. 내용은 Board Table에서 데이터를 가지고 있다. 댓글은 Reply Table에서 데이터를 가지고 있다. 우리가 JPA를 사용하지 않을 때는, DB에서 JOIN을 이용하여 조회를 한다음 해당하는 데이터를 게시판에 뿌려주는 방식을 사용했을 것이다. 여기서 훨씬 편리하게 JPA기술을 사용할 수가 있다. JPA를 사용하면 우리가 Board에만 조회쿼리를 날려도 다 나온다. 흐름을 보면 SELECT * FROM Board Where Id = 1;..