1. Spring의 정의 JAVA의 웹 프레임워크로 JAVA 언어를 기반으로 사용한다. JAVA의 활용도가 높아지면서, JAVA를 이용한 기술이 JSP, Mybatis, JPA 등의 기술이 생겨났다. 이러한 기술들을 더 쉽게 사용할 수 있게 도와주는 오픈소스 프레임워크라고 보면 된다. 2. 프레임워크(Frame Work) Spring이 프레임워크라는건 알겠는데, 도대체 프레임워크가 무엇일까? 프레임워크는 어떠한 목적을 달성하기 위해, 복잡하게 얽혀 이는 문제를 쉽게 해결하기 위한 약속이자 도구이며, 소프트웨어 개발에 한의 뼈대 역할을 한다. 프레임워크는 자주 쓰일 만한 기능들을 모아 놓은 유틸들의 모음이다. 기본적인 설계나 필요한 라이브러리는 알아서 할테니 개발자는 개발 역량에만 집중해라! 3. 스프링 ..
저번 포스팅에서 게시글을 작성하는 것을 포스팅 했었습니다. Spring Boot(게시글작성) 헤더바에서 글쓰기 버튼을 누르면 글을 작성할 수 있는 폼으로 이동시켜줘야한다. header.jsp을 보면 글쓰기를 클릭하면 /board/saveForm으로 이동하게 설정되어 있다. 이를 잡아줄 수 있는 컨트롤러를 mwdeveloper.tistory.com 이번시간에는 저번 포스팅에서 작성한 게시글을 메인 페이지에서 볼 수 있게 글목록을 구현하도록 하겠쑵니다. 자 생각을 해보면 우리가 메인페이지로 이동할 때 데이터를 가지고 이동을 해야겠죠~? 왜냐하면 우리가 작성한 글 제목과 내용의 데이터를 가지고 가야 메인페이지(index.jsp)에서 볼 수 있을테니까요. 그러기 위해서 BoradController에서 첫번째 작..
Spring Security login의 마지막 파트이다. loginForm 에서 /auth/loginProc 의 해당 주소로 이동하게 설정해놨다. 여기서 재밌는점은 UserApiController 에는 /auth/loginProc의 주소를 받는 컨트롤러는 존재하지 않고 /auth/joinProc의 주소만 존재한다. 이유는 뭘까? 그 이유는 바로 Security가 로그인 요청을 가로채게 만들 것이기 때문이다. 해당 설정을 위해 SecurityConfig에서 작업을 실시한다. .loginProcessingUrl() 이 로그인 요청을 가로채고 해당주소로 오는 로그인을 대신해주고 정상적으로 요청이 완료되면 .defaultSuccessUrl()의 해당 주소로 이동하게 된다. 여기서 중요한점은 우리는 loginF..
로그인을 하기에 앞서, 현재 우리의 홈페이지에서 회원가입을 진행하면 폼에 입력된 정보가 암호화 되어 데이터베이스에 저장되는 것 아니라 입력값 그대로 저장된다. 우리는 입력값 그대로를 데이터베이스에 저장하는 것이 아니라 해쉬(Hash)형태로 변환 후 DB에 저장할려고 한다. 시큐리티는 어떤 로직을 가지고 있는지 살펴보면 로그인을 요청한다. 시큐리티가 지켜보고 있다가 파라미터로 전달된 username, password를 가로챈다. 가로챈 파라미터로 로그인 진행이 완료된다. 시큐리티가 가지고 있는 전용 세션에 유저정보를 저장한다. 우리는 세션에 저장되어 있는 유저정보를(IOC)를 DI(의존성주입)을 사용하여 필요할 때 마다 사용한다. 여기서 중요한 점은 시큐리티 세션에는 우리가 만들어놓은 User 오브젝트를 ..
시큐리티 로그인을 하기 위해서는 Pom.xml 수정이 필요하다. #1 pom.xml 수정 (dependency 추가) org.springframework.security spring-security-taglibs org.springframework.boot spring-boot-starter-security dependency를 추가하고 서버를 돌리면 메인 페이지로 가려고 하는데, url에 자동으로 /login으로 매핑되어 이상한 로그인 페이지로 이동한다. 이유는 바로, Spring security가 가로채서 이 화면으로 자동으로 가게 만들어놨기 때문(username은 user Password는 콘솔창에 띄워지는 해쉬 Password를 사용하면 원하는 메인페이지로 이동이 가능하다) 이를 통해서 알 수 있..
# 1 Interface UserRepository 속에 내장되어 있는 findall() 메소드를 활용해서 List 배열에 담아 출력해보도록 하겠다. @GetMapping @GetMapping("/dummy/users/") public List list(){ return userRepository.findAll(); { # 1 - 1 (JSONView) Json 데이터를 Select 하기 전에 Json 데이터를 한눈에 보기 편하게 만들어주는 Chrome 확장 프로그램인 JSONView를 다운받으면 좋다! Chrome 웹 스토어 Chrome에 사용할 유용한 앱, 게임, 확장 프로그램 및 테마를 찾아보세요. chrome.google.com # 2 JSONView 까지 다운이 완료되면 Select 된 데이터를..
Boot를 공부하니 Database와 연결하는 것이 Spring Lagacy Project 할 때보다, 훨씬 수월했다. src/main/resources 내부에 있는 properties 파일을 yml 파일로 변경 후 yml의 설정에 맞게 Spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul username : root password : 1234 이렇게 설정해주면 MySQL과 연결은 끝 ! 이제 Boot 내에서 일정한 형식을 통해 MySQL문에 쿼리문 데이터를 보내 테이블을 생성할 수 있는데, 그것을 해보려고 한다! 일단 테이블을 ..