spring 19

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 03. 메시지, 국제화

1. 메시지메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다.예를 들어서 messages.properties라는 메시지 관리용 파일을 만들고각 HTML들은 다음과 같이 해당 데이터를 key값으로 불러서 사용하는 것이다.item=상품item.id=상품 IDitem.itemName=상품명item.price=가격item.quantity=수량 2. 국제화메시지에서 설명한 메시지 파일(message.properties)을 각 나라별로 별도로 관리하면 서비스를 국제화 할 수 있다.//messages_en.propertiesitem=Itemitem.id=Item IDitem.itemName=Item Nameitem.price=priceitem.quantity=quantity//messages_ko.pr..

Spring 2025.03.04

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 02. 타임리프 스프링 통합과 폼

1. 타임리프 스프링 통합스프링 통합으로 추가되는 기능들- 스프링의 SpringEL 문법 통합- ${@myBean.dosomething()}처럼 스프링 빈 호출 지원- 편리한 폼 관리를 위한 추가 속성 (th:object, th:field, th:errors, th:errorclass)- 폼 컴포넌트 기능 (checkbox, radio button, List 등을 편리하게 사용할 수 있는 기능)- 스프링의 메시지, 국제화 기능의 편리한 통합- 스프링의 검증, 오류 처리 통합- 스프링의 변환 서비스 통합(ConversionService) 2. 입력 폼 처리 @GetMapping("/add") public String addForm(Model model) { model.addAttri..

Spring 2025.03.03

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 01. 타임리프 기본기능

1. 타임리프 특징① 서버 사이드 HTML 렌더링 (SSR)- 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다. ② 네츄럴 템플릿- 타임리프는 순수 HTML을 최대한 유지하는 특징이 있다.- 타임리프로 작성한 파일은 HTML을 유지하기 때문에 웹 브라우저에서 파일을 직접 열어도 내용을 확인할 수 있고, 서버를 통해 뷰 템플릿을 거치면 동적으로 변경된 결과를 확인할 수 있다. ③ 스프링 통합 지원- 타임리프는 스프링과 자연스럽게 통합되고, 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원한다. 2. 텍스트 - text, utext @GetMapping("/text-basic") public String textBasic(Model model) { mod..

Spring 2025.03.01

[스프링 MVC - 백엔드 웹 개발 핵심 기술] 07. 웹 페이지 만들기

1. 상품 도메인 개발@Getter@Setter //@Data보단 필요한 애노테이션만 쓰는 것이 안전함public class Item { private Long id; private String itemName; private Integer price; private Integer quantity; public Item() { } public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; }}@Repositorypublic class ItemR..

Spring 2025.02.19

[스프링 MVC - 백엔드 웹 개발 핵심 기술] 06. 스프링 MVC 기본 기능

1. 로깅운영 시스템에서는 System.out.println()같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다.로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다.쉽게 이야기해서 SLF4J는 인터페이스이고, 그 구현체로 Logback 같은 로그 라이브러리를 선택하면 된다.실무에서는 스프링 부트가 기본으로 제공하는 Logback을 대부분 사용한다.@Slf4j@RestControllerpublic class LogTestController { //@Slf4j과 동치 //private final Logger log = Logg..

Spring 2025.02.17

[스프링 MVC - 백엔드 웹 개발 핵심 기술] 05. 스프링 MVC 구조 이해

1. 스프링 MVC 전체 구조- 스프링 MVC의 프론트 컨트롤러는 디스패처 서블릿(DispatcherServlet)이다.- DispatcherServlet은 부모 클래스에서 HttpServlet을 상속 받아서 사용하고, 서블릿으로 동작한다.- 스프링 부트는 DispatcherServlet을 서블릿으로 자동으로 등록하면서 모든 경로(urlPatterns="/")에 대해서 매핑한다.- 스프링 MVC의 큰 강점은 DispatcherServlet코드의 변경 없이, 원하는 기능을 변경하거나 확장할 수 있다는 점이다. 동작순서핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다.핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다.핸들러 어댑터 실행: 핸들러 어댑터를..

Spring 2025.02.13

[스프링 MVC - 백엔드 웹 개발 핵심 기술] 04. MVC 프레임워크 만들기

1. FrontController 패턴- 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음- 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출- 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨@WebServlet(name = "frontControllerServletV2", urlPatterns = "/front-controller/v2/*")public class FrontControllerServletV2 extends HttpServlet { private Map controllerMap = new HashMap(); public FrontControllerServletV2() { controllerMap.put("/front-controlle..

Spring 2025.02.09

[스프링 MVC - 백엔드 웹 개발 핵심 기술] 03. 서블릿, JSP, MVC 패턴

1. 서블릿으로 회원 관리 웹 애플리케이션 만들기//회원 모델@Getter@Setterpublic class Member { private Long id; private String username; private int age; public Member() {} public Member(String username, int age) { this.username = username; this.age = age; }}//회원 저장소public class MemberRepository { private Map store = new HashMap(); private static long sequence = 0L; private stati..

Spring 2025.02.07

[스프링 MVC - 백엔드 웹 개발 핵심 기술] 02. 서블릿

1. 서블릿 세팅@ServletComponentScan //서블릿 자동 등록@SpringBootApplicationpublic class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); }}- 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan을 지원한다.@WebServlet(name = "helloServlet", urlPatterns = "/hello")public class HelloServlet extends HttpServlet { @Override protected void ser..

Spring 2025.02.06

[스프링 MVC - 백엔드 웹 개발 핵심 기술] 01. 웹 애플리케이션 이해

1. 웹 서버, 웹 애플리케이션 서버웹 서버- 정적 리소스 제공, 기타 부가기능- 정적(파일) HTML, CSS, JS, 이미지, 영상- ex) NGINX, APACHE 웹 애플리케이션 서버 (WAS - Web Application Server)- 웹 서버 기능 포함- 프로그램 코드를 실행해서 애플리케이션 로직 수행- 동적 HTML, HTTP API(JSON), 서블릿, JSP, 스프링 MVC...- ex) 톰캣(Tomcat) Jetty, Undertow 웹 시스템 구성- 정적 리소스는 웹 서버가 처리- 웹 서버는 애플리케이션 로직같은 동적인 처리가 필요하면 WAS에 요청을 위임- WAS는 중요한 애플리케이션 로직 처리 전담- 정적 리소스가 많이 사용되면 Web 서버 증설, 애플리케이션 리소스가 많이 사..

Spring 2025.02.05