본문 바로가기

분류 전체보기

(80)
[Thymeleaf] 텍스트, spring EL, 객체, URL 링크, 리터럴 text, utext th:text는 태그 안의 텍스트를 전달 받은 값으로 표현하고자 할 때 사용한다. th:utext는 unescape text로 태그 안의 텍스트 값에 html 태그 값이 있다면 이를 반영하고자 할 때 사용한다. 첫 번째 라인은 각 문자열들과 ${}이라는 변수 표현식을 더하여 문장을 출력한다. 두 번째 라인은 각각 더하는 부분을 편리하게 하기 위해 ||이라는 Literal 표현식을 사용하여 문장을 출력한다. 세 번째 라인과 네 번째 라인은 utext를 활용하여 태그를 활용하여 문장을 출력한다. ​ Spring EL TestData Person testObject = new Person("GilSSang", 25, "컴공", "백앤드"); List testList = new ArrayL..
@RequestBody, @ResponseBody 시작하기에 앞서, @RequestParam은 요청 파라미터에 있는 값을 수신하여 저장했고, @ModelAttribute는 폼에 있는 작성된 파라미터 값을 수신하여 저장했다. 그렇다면 실제 HTTP 통신이 이루어질 때, 메세지 바디에 담긴 메세지를 수신하고 송신하려면 어떻게 해야할까? 이를 위해 존재하는 것이 HttpEntity, Request(Response)Entity, @Requestbody, @ResponseBody이다. 근데 이것들은 이전에 배운 @RequestParam, @ModelAttribute와는 다르게 메세지 컨버터(Message Converter)를 사용한다. 메세지 컨버터는 메세지를 자바의 심플 타입 혹은 복합 타입에 매핑될 수 있도록 컨터빙해주는 역할을 한다. 이 과정이 실제로 언제..
@ModelAttribute @ModelAttribute 사용 @ModelAttribute는 사용자가 전달하는 값을 오브젝트 형태(객체 형태)로 매핑해주는 어노테이션이다. 보통 폼을 통해 값을 전달할 때 자주 사용한다. ​ 설명하기에 앞서, 오브젝트 형태(객체 형태)로 매핑해주어야 하기 때문에 임의의 객체인 Person을 다음과 같이 구성하였다. @Getter @Setter @RequiredArgsConstructor public class Person { private String name; private Integer age; } ​ (1) @ModelAttribute 애노테이션 사용 @Slf4j @Controller public class request_mapping { @RequestMapping("/request_mappi..
@RequestParam @RequestParam 사용 @RequestParam은 사용자가 전달하는 값을 1:1로 매핑해주는 어노테이션이다. 보통 파라미터를 통해 값을 전달할 때 자주 사용한다. ​ (1) 파라미터 이름을 지정하고 받기 @Slf4j @Controller public class request_mapping { @RequestMapping("/request_mapping") public String visit(@RequestParam(name = "name") String name, @RequestParam(name = "age") Integer age, Model model) { model.addAttribute("name", name); model.addAttribute("age", age); return "ho..
RequestMapping RequestMapping RequestMapping에 대해 자세히 알아보자. 이전에 설명했던 것처럼 사용자는 웹페이지를 통해 어떤 요청을 해올 것이다. 그렇다면 우리는 그에 대해 어떻게 반응했는가하면, DispatcherServlet에서 핸들러가 있는지 조회하고 있다면 해당 핸들러를 다룰 핸들러어댑터를 찾아 진행했다. 우리는 흔히 RequestMappingHandlerMapping과 RequestMappingHandlerAdapter를 활용하여 @RequestMapping을 찾고 이를 처리한다고 했었다. 우리는 실제로 @RequestMapping을 사용하기 위해 @Controller 안에 @RequestMapping 애노테이션을 요청 URL과 함께 정의하고 해당 URL에 대해 어떤 동작을 실행할지에 대..
JVM, JRE, JDK JDK, JRE, JVM JDK, JRE, JVM의 구조 JDK JDK는 자바 개발도구(Java Development Kit)의 약자이다. 우리가 일반적으로 자바로 개발하기 위해 설치하는게 바로 JDK이다. JDK는 JRE, JVM을 포함하고 있기에 JDK를 설치하면 자동으로 JRE, JVM이 설치되어 이를 사용할 수 있다. JDK에는 우리가 작성한 자바 문법을 컴퓨터가 이해할 수 있게 바꿔주는 자바 컴파일러(javac, java compiler)등을 포함하고 있다. jar, war와 같은 형태로 배포하여 JRE에서 이를 실행한다. ​ JRE JRE는 자바 실행환경(Java Runtime Environment)의 약자이다. 자바 언어로 작성된 프로그램을 실행하는 사용자들이 설치하는게 바로 JRE이다. J..
MVC, Spring MVC MVC MVC는 디자인 패턴 중 하나이다. MVC는 Model, View, Controller의 약자로 하나의 애플리케이션의 구성요소를 세 가지의 역할로 구분한 패턴이다. 그림으로 살펴보면 다음과 같다. ​ (1) Model Model은 애플리케이션이 무엇을 할 것인지를 정의한다. Model은 DB의 역할과 같이 사용자가 필요한 데이터를 가지고 있다. View나 Controller에 대한 정보는 알 수 없다. (2) View View는 사용자에게 무엇을 보여주기 위한 역할을 수행한다. 컨트롤러 하위에 종속되어 모델이나 컨트롤러가 보여주려고 하는 모든 필요한 것들을 보여준다. (3) Controller Controller는 모델을 어떻게 처리하고 로직을 어떻게 처리할지를 정해 로직을 수행한다. 사용자에게 ..
SOLID 원칙 시작하기에 앞서, ​ SOLID원칙이란, 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙이다. 단일 책임 원칙 (S - Single Responsibility Principle) 개방폐쇄 원칙 (O - Open Closed Principle) 리스코프 치환 원칙 (L - Liskov Substitution Principle) 인터페이스 분리 원칙 (I - Interface Segregation Principle) 의존 역전 원칙 (D - Dependency Inversion Principle) ​ 이 원칙에 대해서 하나씩 자세히 알아보자. 1. 단일 책임 원칙 (Single Responsibility Principle) 한 클래스는 하나의 책임만 가져야 한다..