본문 바로가기

전체 글311

Spring Security 로그인 구현 (part 1) - form login Spring Security 로그인 구현 (part 1) - form login 많은 서비스에서는 특정 사용자별로 할 수 있는 일이 다릅니다. 예를 들어, 네이버 밴드의 멤버탭을 들어가면 Admin, Co-Admin 권한을 특정 사람에게 부여할 수 있습니다. 이 들을 밴드 안의 글을 관리하고, 멤버를 초대하는 등의 역할을 할 수 있습니다. 이 글에서는 권한을 구현하기 위한 가장 기초, 회원가입과 로그인을 구현해보겠습니다. 회원가입 페이지 구성 build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-s.. 2021. 4. 24.
블로그 운영 2019년부터 블로그를 시작해서 어느덧 2021년이 되었다. 딥러닝위주의 글로 많이 시작을 하게 되었다. 그러다가 백엔드에 관심이 많아지면서 어느덧 이쪽 영역의 세계 들어오게 되었다. 나중엔 다시 저쪽도 가야지라고 생각을 하며 실제로 이 블로그이 상위 글을 보면, 1등은 Git 에 관한 팁을 정리한 내용, 그리고 2등~10등 까지 대부분 딥러닝 관련 글이 많다. 그중 6번은 댓글이 많이 날린 글 중 하나인 티스토리 코드블럭에 관한 팁, 8번은 vscode 단축키. 이렇게 보면 Tip 종류의 글도 사람들이 많이 블로그에서 검색하는 종류라고 보였다. 또한 지식 블로그의 특성상 주말에는 항상 사람이 없었다. 1/3 정도로 줄어들었는데 그건 이유는 다들 아실거라고 생각한다 🙆‍♂️ 쉴 땐 쉬어야지 지금까지의 글.. 2021. 4. 5.
Spring Web MVC - @ResponseBody, ResponseEntity Spring Web MVC - 핸들러 메소드 4 @RequestBody @RequestBody 는 핸들러의 아규먼트로 받아 올 수 있다. 요청 본문(body)에 들어있는 데이터를 HttpMessageConverter를 통해 변환한 객체로 받아올 수 있다. HttpMessageConverter : 스프링 MVC 설정 (WebMvcConfigurer) 에서 설정할 수 있다. 이 때 configureMessageConverters 를 오버라이딩하면 기본 메시지 컨버터를 대체하게 되어, 기본설정이 바뀔 수 있으므로 조심한다. 대신 extendMessageConverters 를 이용하면 원하는 메시지 컨버터를 추가할 수 있다. (객체를 XML으로 바꾼다든지) 기본 컨버터는 WebMvcConfigurationSup.. 2021. 2. 21.
Spring Web MVC - 파일업로드, 파일다운로드 Spring Web MVC - 파일업로드, 다운로드 파일 업로드 - MultipartFile MultipartFile 은 파일 업로드시 사용하는 메소드 아규먼트이다. MultipartResolver 라는 빈이 설정 되어 있어야 사용이 가능하다. 단, 스프링부트는 자동 설정이 되어있다. 이를 사용하면 POST 요청의 multipart/form-data 정보에 들어있는 파일을 참조할 수 있다. 간단한 파일업로드를 구현해보자. @Controller public class FileController { @GetMapping("/files") public String fileUploadForm(Model model) { return "files/index"; } @PostMapping("/files") publi.. 2021. 2. 21.
Spring Web MVC - Attributes, 멀티 폼 서브밋 Spring Web MVC 009 - 핸들러 메소드 3 SessionAttributes 모델 정보를 HTTP 세션에 저장해주는 어노테이션이다. 먼저 HttpSession 을 보자. 핸들러 메소드의 아규먼트로 받아와서 세션을 관리할 수 있게 도와주는 객체이다. 상대적으로 low 레벨 단위의 코딩을 할 수 있다. @GetMapping("/news/form") public String newsForm(Model model, HttpSession httpSession) { News news = new News(); news.setLimit(10); model.addAttribute("news", news); // 세션안에 news 라는 이름으로 객체를 넣어준다. httpSession.setAttribute("n.. 2021. 2. 21.
Spring Web MVC - ModelAttribute, 폼 서브밋 Spring Web MVC - 핸들러 메소드 2 @ModelAttribute @Controller public class NewsController { @PostMapping("/news") @ResponseBody public News news(@ModelAttribute News news) { return news; } } @Test public void postNews() throws Exception { mockMvc.perform(post("/news") .param("title", "blue") .param("limit", "10")) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("title").value("blue")) ;.. 2021. 2. 21.
Spring Web MVC - Handler 아규먼트 다루기 Spring Web MVC - 핸들러 메소드 핸들러 메소드에서 다양한 아규먼트를 사용할 수 있다. 핸들러 메소드 아규먼트 설명 WebRequest NativeWebRequest ServletRequest/Reponse HttpServletRequest/Reponse 요청 또는 응답 객체에 접근 가능한 API InputStream Reader OutputStream Writer 요청 본문을 읽어 오거나, 응답 본문을 쓸 때 사용할 수 있는 API PushBuilder Spring 5에 추가됨. HTTP/2에서 사용할 수 있다. 리소스 푸쉬에 사용된다. 일반적으로 일어나는 HTTP 요청 : 1 클라이언트가 뷰 요청 2 서버 응답 (이 때 뷰에 다른 리소스 자원이 있어서 불러오고 싶음) 3 클라이언트가 이미지.. 2021. 2. 17.
Spring Web MVC - RequestMapping Spring Web MVC - 요청 매핑 HTTP Method HTTP 메소드에는 GET, POST, PUT, PATCH, DELETE 등이 있다. 예제를 하나 만들어보자. 컨트롤러 @Controller public class BookController { @RequestMapping(value = "/bookstore") @ResponseBody public String bookStore() { return "Welcome book store"; } } 테스트 코드 @WebMvcTest class BookControllerTest { @Autowired MockMvc mockMvc; @Test public void bookStoreTest() throws Exception { mockMvc.perfor.. 2021. 2. 15.
Spring Web MVC - HTTP Message Converter Spring Web MVC - Message Converter HTTP 메시지 컨버터 요청 본문에서 메시지를 읽어들이거나 (@RequestBody), 응답 본문에 메시지를 작성할 때(@ResponseBody) 사용한다. 기본 HTTP 메시지 컨버터 바이트 배열 컨버터, 문자열 컨버터, Resource 컨버터 Form 컨버터(폼 데이터 to/from MultiValueMap) JAXB2 컨버터 (xml) Jackson2, Jackson, Gson 컨버터 (json) Atom 컨버터 - 아톰 피드 RSS 컨버터 - RSS 채널 테스트. String 타입으로 본문을 전달한 후, String 타입으로 본문 반환. @Test public void stringMessage() throws Exception { th.. 2021. 2. 13.
Spring Web MVC - 여러가지 설정 1 Spring Web MVC - 여러가지 설정 1 JSP 제약 사항 jar 프로젝트로는 만들 수 없다. war 로 만들어야 한다. java -jar 명령어로 실행은 할 수 있지만, 실행가능한 jar 파일은 지원하지 않는다. undertow 는 jboss에서 만든 서블릿 컨테이너인데, 여기서는 jsp 를 지원하지 않는다. whitelabel 에러 파이지를 error.jsp 로 오버라이딩 할 수 없다. JSP 실행 방법 1) java -jar $ java -jar /target/*.war 위 명령어로 war 파일을 실행시킬 수 있다. 2) SpringApplication.run 사용 IDE 에서 run 을 클릭해서 실행한다. 3) 서블릿 컨테이너(톰캣)에 WAR 배포하여 실행하기 WAR : Web Applic.. 2021. 2. 13.
728x90