Spring(22)
-
[Project] Spring Security를 활용한 회원기능
개인 프로젝트를 진행하면서 처음으로 Spring에서 지원하는 Spring Security를 활용하여 회원기능을 구현해보았다.나도 아직 Spring boot를 배우면서 프로젝트를 진행하는 중이라 기능들을 구현하는 데에 시간이 좀 오래걸렸다.잘 모르는 부분들은 Chat gpt를 활용하면서 하나씩 해결해 나갔다. 오늘은 그럼 Spring Security가 무엇인지, 그리고 이를 어떤식으로 프로젝트에 적용 시켰는지 기록 해볼것이다.Spring Security란?먼저 왜 Spring Security를 사용하여 회원 기능을 구현해야 하는지에 대해서 말하자면, 웹사이트에서 로그인, 로그아웃 등의 기능을 구현하면 이에 대한 권한 부여 / 관리 등이 필요하다. 이를 Spring에서 쉽고 효율적으로 구현할 수 있게 개발된..
-
[Spring] Thymeleaf
저번 포스트에서 미리 예고 했듯이, Thymeleaf에 대해서 알아 볼 것이다.일단 Thymeleaf가 무엇일까?Thymeleaf란?Thymeleaf(타임리프)는 템플릿 엔진의 일종으로 흔히 View Template(뷰 템플릿) 이라고 부른다.기존에 사용했던 JSP 같은 템플릿 엔진의 한 종류라고 할 수 있다. JSP와 Thymeleaf 차이점그럼 이때까지 사용했던 JSP와 어떤 차이점이 있을까?먼저, 기존에 사용했던 JSP는 Servlet으로 변환되어 실행된다.Servlet은 Java 소스이기 때문에 HTML 코드에 Java 코드를 합하여 동적으로 웹 페이지를 구성한다.(때문에 JSP 파일 내부에 자바 코드를 작성하는 것도 가능하지만 웬만하면 그렇게 하지 않는 것을 추천한다.) 반면, Thymeleaf..
-
[Spring] Spring Boot 시작하기
STS에서 Spring Framework로만 프로젝트를 하다가, 이번에 아예 Spring Boot를 시작해보려고 한다.Spring Boot는 기존의 Spring보다 의존성 관리, 초기 설정 등에 대해서 훨씬 간단하고 편리한 서비스를 제공한다고 생각하면 된다. Spring Boot는 대부분 IntelliJ를 많이 사용한다고 하여, 나도 이번 기회에 넘어가보기로 했다. https://www.jetbrains.com/ko-kr/idea/ IntelliJ IDEA – Java 및 Kotlin을 위한 최고의 IDE www.jetbrains.com위 링크에서 다운을 받으면 되는데, 인텔리제이는 유료 버전이 있기 때문에 무료로 사용하려면 "community" 버전을설치 해주어야 한다. Spring Boot는 http..
-
[Spring] DispatcherServlet
Spring MVC에서는 DispatcherServlet을 도입하여 모든 과정을 중앙에서 처리한다.이전에는 요청된 URL과 매핑된 각각의 Servlet class를 찾아갔다면, Spring MVC는모든 요청을 DispatcherServlet에서 받는다는 말이다.그리고 DispatcherServlet은 이 요청을 분석하여 그 요청에 맞는 컨트롤러를 불러온다.[이전(모델1)에는 servlet과 controller가 분리되지 않았지만, Spring MVC(모델2)는 분리되었다.) 그럼 이 DispatcherServlet은 어떻게 구현해야 되는지 알아보자.사실 직접적으로 구현할 필요는 없고, DispatcherServlet 라이브러리를 설치해주기만 하면 된다.Spring Web MVC 라이브러리https://m..
-
[Spring] QueryString
오늘은 QueryString을 파라미터로 받아오는 방법에 대해 알아보자. 만약, URL요청이 localhost:8080/info?name="yubin"이렇게 들어왔을 때, info 뒤의 name이 QueryString이다.요청을 받아서 처리하는 컨트롤러에서 이 쿼리스트링을 사용해야 한다면 그냥 바로 파라미터로 받아올 수 있다.@RequestMapping("/info")public void info(String name) { System.out.println(name);}원래라면 request에서 이 쿼리스트링을 받아와야 하지만,스프링은 아주 편하게 자동으로 연결해준다.하지만 주의해야할 점은 스프링이 파라미터의 이름과 쿼리스트링의 이름이 일치해야만 연결을 해준다는 것이다. 만약 파라미터의 이름을 name이..
-
[Spring] ViewResolver
오늘은 ViewResolever에 대해서 한 번 알아보자.public class IndexController implements Controller{ @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("/WEB-INF/view/index.jsp"); mav.addObject("text", "Spring MVC"); return mav; }} 원래 view로 이동하기 위해서 controller에서는 경로를 적어줘야한다.하지만 위와 같이 복잡한 경로를 모든 ..