[Java/Spring]초보 백엔드 개발자 게시판 프로젝트 - 명세서 만들어보기
·
[ 기타 ]/개인 프로젝트
BoardService Github https://github.com/HSRyuuu/my_first_board 1. 개요 프로젝트 명 : Board Service 개발 인원 : 1명 개발기간 : 2023.04.11 ~ 2023.05.15 주요 기능 : 기본적인 게시판의 기능 (아래에서 추가로 설명) 사용 기술 : Java, SpringBoot, gradle, thymeleaf, MyBatis (아래에서 추가로 설명) 데이터베이스 : H2 Database 2. skills🔨 Java 11 SpringBoot 2.7.10 gradle Thymeleaf MyBatis H2 Database HTML5, CSS3, BootStrap 기타 사용 기술 필터(Spring Interceptor) 세션 쿠키를 이용하여 로..
[Java / Spring] Lombok 롬복
·
Spring
Lombok이란? Lombok이란 반복되는 메서드를 Annotation을 사용해서 자동으로 작성해 주는 Java의 라이브러리이다. 보통 Model, Entity의 경우 여러 속성이 존재하고, 이들의 속성들에 대해 Getter Setter 등의 메서드를 반복해서 작성해줘야 하는 경우가 많다. Lombok은 이 부분을 Annotation으로 대체하여 코드를 생성해 준다. Lombok을 이용해서 작성한 코드는 컴파일 과정에서 IDE가 Annotation을 이용해서 코드를 생성하고, 그 코드가. class에 담기게 되는 것이다. 귀찮은 반복 작업을 줄여준다는 점에서 매우 편리하고, 많이 사용하지만 남용해서는 안된다. 다른 라이브러리와의 충돌이 발생할 수도 있고, 내가 원하는 대로 동작하지 않을 수도 있기 때문이..
[Spring] 세션, 쿠키, @SessionAttribute 로그인 확인
·
Spring
쿠키 로그인 기능이 있는 서비스를 개발하다 보면, 로그인 시 이용할 수 있는 페이지와 그렇지 않은 페이지가 있다. 같은 화면도 로그인 이용자에게 보여줄 화면과 비로그인 이용자에게 보여줄 화면을 다르게 설정해야 할 때도 있다. 이때, 쿠키를 사용해서 로그인 정보를 관리할 수 있다. 서버에서 클라이언트로 loginId가 담긴 쿠키를 전달하고, 클라이언트에서는 그 쿠키를 저장해 뒀다가 HTTP 요청 시 서버로 전달한다. //Cookie 생성자 Cookie idCookie = new Cookie( String name, String value ) //HTTP 응답에 쿠키 담기 response.addCookie( idCookie ); //쿠키 삭제하는 법 idCookie.setMaxAge(0); //..
[Spring Boot] @PathVariable과 @RequestParam - 파라미터 받기
·
Spring
@PathVariable 경로변수 PathVariable을 사용하면 리소스 경로에 식별자를 넣어서 동적으로 URL에 정보를 담을 수 있다. URL 경로의 중괄호 { } 안쪽에 변수를 담고, 그 변수를 @PathVariable(" ")로 받아서 사용할 수 있다. 1. 기본 URL의{postId}와 매개변수 long orderId와 이름을 맞춰준다. @GetMapping ("/order/{orderId}") public String getOrder(@PathVariable String orderId){ log.info("orderId : {}", orderId); return "orderId:"+ orderId; } 요청 : http://localhost:8080/order/123 응답 : orderId:1..
[Spring Boot] 스프링 인터셉터 (Spring Interceptor)
·
Spring
Spring Interceptor 스프링 인터셉터는 스프링 MVC가 제공하는 웹과 관련된 공통 관심사항을 효과적으로 해결할 수 있는 기술이다. 예를 들어 로그인되지 않은 사용자가 로그인해야지만 접근할 수 있는 페이지에 접근하려 할 때, 세션을 확인하여 세션에 로그인된 사용자의 유무에 따라 접근 허용 여부를 설정해 줄 수 있다. 1) 스프링 인터셉터 흐름 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러 서블릿 필터는 서블릿이 호출되기 이전에 호출된다. 스프링 인터셉터는 컨트롤러 호출 직전에 호출된다. URL패턴을 서블릿 필터에 비해 정밀하게 설정할 수 있다. 2) 스프링 인터셉터 제한 1. 접근 허용 시 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인..
[Spring] 메시지, 국제화
·
Spring
메시지 만약 어떤 쇼핑몰 서비스에서 화면에 보이는 모든 "상품명"이라는 단어들을 "제품명"으로 바꿔달라고 하면 어떻게 해야 할까? 서비스에서 쓰이는 모든 html을 뒤져서 "상품명"을 찾아서 제품명으로 일일히 바꿔야 될 수도 있다. 이럴 때 자주 사용되는 메시지들을 한 곳에 모아서 관리하도록 하는 기능을 메시지 기능 이라고 한다. 또는, 우리 서비스가 해외로 진출하게 되어서 중국어, 영어, 독일어 등등 여러 언어를 지원해야 하는 상황이다. 이때 메시지 기능이 없다면, 모든 html을 복사해서 각국의 언어로 텍스트를 변경해야 할것이다. 메시지 기능을 이용하여, 접속자의 언어에 따라 메시지를 변경해주도록 할 수 있다. 이를 국제화 라고 한다. 타임리프와 스프링 메시지 기능을 이용하면 웹페이지 화면에서 반복적..