본문 바로가기

백엔드/스프링

스프링 부트 배너 멋있게 바꾸기 면접 준비 하다가 알아낸 스프링 부트 배너 바꾸기! 부트 배너는 스프링 애플리케이션 실행시 가장 처음 로그에 출력되는 위의 문자열을 말한다. banner 파일의 위치는 src/main/resources/banner.txt를 생성해주면 된다. 아무것도 없으면 위의 배너가 default 로 나온다. 한번 설정해보자! 로그 좀 이쁘게 설정하는거 없나 하고 좀 찾아보다가 재밌는 사이트를 발견했다. https://devops.datenkollektiv.de/banner.txt/index.html Spring Boot banner.txt generator devops.datenkollektiv.de 단어를 입력하면 이렇게 까리하게 만들어준다. 엄청 많은 종류가 있는데 impossible이나 isometric 시리즈.. 더보기
타임리프의 템플릿, 레이아웃 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 강의를 수강하며 공부한 것을 정리한 글입니다. 템플릿과 레이아웃 웹 페이지 상의 공통되는 영역들을 일일이 복붙으로 개발하는 것은 비효율적이다. 중복이 발생하기도 하고 변경사항이 생기면 하나하나 찾아다니며 수정해야하기 때문이다. 타임리프에서는 이를 해결하기 위해 템플릿, 레이아.. 더보기
타임리프 정리2 보호되어 있는 글입니다. 더보기
타임리프 사용법 정리 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 타임리프 기초 사용법 text 이스케이프 컨트롤러로부터 넘어온 데이터의 값에 같은 문자를 다른 문자로 치환해준다. 이를 escape라고 한다. text는 이스케이프 처리를 해주지만 utext는 이스.. 더보기
스프링 No serializer found for class 에러 해결 문제는 아래와 같은 코드에서 발생했다. @RestController public class ItemController { @GetMapping("/items") public List items(){ List itemList = new ArrayList(); itemList.add(new Item("ldsa", 25)); return itemList; } static class Item { private String name; private int age; public Item(String name, int age) { this.name = name; this.age = age; } } } 발생한 이유는 간단하다. 리턴 타입이 객체이므로 메시지 컨버터에서 Json으로 변환해줘야 하는데 private 필드들.. 더보기
PRG (Post Redirect Get) 상황 사용자가 상품을 구매한 상황. 이 때 사용자의 마지막 요청은 POST로 상품 구매 요청이다. 이 상태에서 그대로 사용자가 새로고침 버튼을 누르게 되면 이전의 요청이 그대로 나가서 물건을 한번 더 구매하는 상황이 발생하게 된다. 이를 방지하기 위한 것이 PRG 이다. PRG (1) 구매자가 상품을 구매하는 화면에서 주문 버튼을 클릭한다. POST메소드를 사용한 요청이 전송된다. (2) 서버는(1)의 요청에서 받은 상품 구매 처리를 DB에 반영한다. (3) 서버는 응답값으로 리다이렉트를 하도록 해서 상품 구매 완료 화면을 표시한다. (4) 리다이렉트에 의해 브라우저가 상품 구매 완료 화면을 표시하도록 서버에 요청을 보낸다. 이때 요청는 GET메소드를 사용한다. (5) 서버가 상품 구매 완료 화면을 보내.. 더보기
스프링 MVC - 응답데이터와 메시지 컨버터 응답 데이터 생성 스프링 응답 데이터타입 3가지 👉 정적 리소스, 뷰 템플릿, http 메시지 바디 1. 정적 리소스 스프링 부트에서 제공하는 정적 리소스의 디렉토리 /static /public /resources /META-INF/resources static이 아닌 public 이라는 이름의 폴더를 만들어서 열어보면 잘 열린다..!! 2. 뷰템플릿 동적인 html 제공시 뷰 템플릿 사용한다. 뷰 템플릿을 거쳐서 html이 만들어지고 뷰가 응답을 만들어서 전달한다. 스프링 부트에서 뷰 템플릿 기본 경로 : src/main/resources/templates @RequestMapping("/response-view-v1") public ModelAndView resView1() { ModelAndView.. 더보기
스프링 MVC - 요청 데이터 요청 데이터의 형식 복습! http request 메시지의 데이터 형식은 3가지이다. 1. GET - 쿼리파라미터 2. POST (html form) 3. http message body GET, POST Get 방식과 html form의 Post는 둘 다 형식이 같으므로 구분 없이 조회 가능하다. 이것을 요청 파라미터 조회라고 한다. 이전에 알아봤던 방법은 HttpServletRequest 객체를 통해 조회하는 방법이다. @RequestMapping("/request-param") public void reqV1(HttpServletRequest request, HttpServletResponse response) { String username = request.getParameter("usernam.. 더보기
스프링MVC 요청 매핑 요청 매핑 기본 Controller : 반환값이 String 이면 뷰 이름으로 인식됨 RestController : 반환값으로 뷰를 찾지 않고 Http 메시지 바디에 바로 입력한다. @RequestMapping({"/hi", "/hello"}) public String myController() {} RequestMapping은 배열을 통해 여러 url 처리가 가능하게 설정할 수도 있다. http 메서드 지정은 @GetMapping 등으로 쉽게 할 수 있다. Path Variable Path Variable은 리소스에 식별자를 넣는 경우, 경로를 변수로 받아올 때 사용한다. @GetMapping("/path-variable/{user}") public String path(@PathVariable("us.. 더보기
스프링MVC의 Handler, View Resolver https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원 www.inflearn.com 위 강의를 들으며 정리한 글입니다. https://mvmvm.tistory.com/98 프론트 컨트롤러 패턴 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹.. 더보기