▼ Backend/스프링 (Spring)
-
Spring Boot | CSRF 설정 (Spring Security)▼ Backend/스프링 (Spring) 2021. 8. 6. 15:44
▶ CSRF(Cross site request forgery) 크로스 사이트 요청 위조, XSRF라고도 말한다. 웹 사이트의 취약점을 이용하여 이용자가 의도하지 하지 않은 요청을 통한 공격을 의미한다. 실제 서버에서 받아온 페이지가 아닌 위조된 페이지에서 요청을 보내는 행위이며, 이 행위를 방지하기 위해 서버에 들어온 요청이 실제 서버에서 허용한 요청이 맞는지 확인하기 위해서 토큰을 생성하여 검증한다. 자세한 내용은 https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%9A%94%EC%B2%AD_%EC%9C%84%EC%A1%B0 Maven version의 경우 https://mvnrepository.com/에서 찾아서 사용해도 된..
-
Spring Boot | 인터셉터(Interceptor) 적용하기▼ Backend/스프링 (Spring) 2021. 8. 4. 14:55
▶ 인터셉터(Interceptor) 컨트롤러(Controller)의 핸들러(Handler)를 호출하기 전 또는 후에 요청(HttpServletRequest)과 응답(HttpServletResponse)을 가로채는 역할 사용자 인증이 되어 있어야 사용 가능한 페이지에 주로 사용된다. 예) 웹 사이트를 사용하다가 마이페이지나 개인적인 메뉴에 접근할 경우 요청을 가로채 로그인이 되어 있지 않으면 로그인 페이지로 이동 시키는데 많이 사용된다. LoginInterceptor HandlerInterceptor를 상속받아 interface 메서드를 구현한다. import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRespon..
-
Spring Boot | return jsonView 사용, JSON 데이터로 응답▼ Backend/스프링 (Spring) 2021. 8. 4. 12:15
org.thymeleaf.exceptions.TemplateInputException: Error resolving template [jsonView] template might not exist or might not be accessible by any of the configured Template Resolvers 클라이언트에서 요청한 데이터를 JSON(JavaScript Object Notation) 형식으로 리턴할 때 Model 또는 ModelAndView에 데이터를 담아 jsonView로 설정했지만 에러 발생 Case1, Case2와 같이 데이터를 jsonView로 리턴 중일 때 발생 //Case1 @PostMapping("/login/action.ajax") public String log..
-
Spring Boot | Thymeleaf Layout 공통 Header, Footer 설정하기▼ Backend/스프링 (Spring) 2021. 7. 22. 12:23
▶ Thymeleaf Layout Header, Footer와 같이 공통적으로 사용되는 코드를 화면마다 작성하지 않고 레이아웃 처리를 통해 공통 내용은 고정적으로 설정됨으로써, 본래의 콘텐츠 내용에 집중할 수 있게 도와준다. 1. thymeleaf-layout-dialect 의존성 주입 Maven nz.net.ultraq.thymeleaf thymeleaf-layout-dialect 2.5.0 Gradle implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' 2. 공통 화면 작성 Head, Header, Footer 우선 공통으로 사용될 화면들을 목적에 맞게 각 HTML에 작성한다. fragment의 이름을 정한다. 파일 경로 : /temp..
-
Spring Boot | lombok 사용 시 Getter, Setter Undefined▼ Backend/스프링 (Spring) 2021. 7. 21. 11:59
▶ 이클립스 lombok 사용 시 Getter, Setter 못 찾는 문제 Maven 혹은 Gradle에 lombok 의존성 추가 후 @Data, @Getter, @Setter, @Builder 등 어노테이션을 사용하여 Value Object를 생성 후 사용하려는데 못 찾는 문제가 발생한다. 해결방안은 이클립스에도 lombok를 설치해야 정상적으로 사용 가능하다. https://projectlombok.org/download에서 lombok.jar를 다운로드 받은 후 실행한다. Specify location...를 통해 이클립스가 설치된 경로를 설정한다. install / Update를 통해 설치하고, 설치가 완료되면 Quit installer한다. 이클립스 설치 경로에 lombok이 추가된걸 확인할 수..
-
Spring Boot | JPA + lombok 사용하기▼ Backend/스프링 (Spring) 2021. 7. 19. 21:50
▶ JPA, 자바 지속성 API (Java Persistence API) 자바 플랫폼 SE와 자바 플랫폼 EE를 사용하는 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 Java API이다. ▶ lombok(https://projectlombok.org/) getter, setter 등의 반복 메서드를 자동으로 연결하고 도구를 빌드하여 Java를 향상시키는 Java 라이브러리이다. 테이블 생성 member with mariaDB CREATE TABLE member ( MBR_SEQ BIGINT(20) NOT NULL AUTO_INCREMENT, ID VARCHAR(200) NULL DEFAULT NULL, PWD VARCHAR(200) NULL DEFAULT NULL, NAME VARCHAR(200..
-
Spring Boot | YAML, YML 적용하기▼ Backend/스프링 (Spring) 2021. 7. 19. 15:18
▶ YAML (YAML Ain't Markup Language) YAML은 모든 데이터를 리스트, 해쉬, 스칼라 데이터의 조합으로 만들어졌다. 문법은 상대적으로 이해하기 쉽고, 가독성이 좋도록 디자인되었으며 고급 컴퓨터 언어에 적합하다. 또한 들여 쓰기 및 XML의 특수기호를 사용하기 때문에 XML과 거의 비슷하며 YAML과 YML은 HTML HTM과 같은 느낌이라고 보면 된다. yaml, yml 장점 계층구조로 표현되어 있어 가독성이 좋고, 따라서 불필요한 소스의 중복도 제거된다. 들여 쓰기, 띄어쓰기로 구분하여 보기 편하고 깔끔하다. ▶ properties vs yaml, yml 차이 application.properties spring.datasource.driverClassName=org.mari..
-
Spring Boot | 프로젝트 Import, Export▼ Backend/스프링 (Spring) 2021. 7. 19. 12:38
Project import Project export