전체 글

- 2000.08.01 - KU CSE 20
타임리프특징서버 사이드 HTML 렌더링(SSR)백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용Natural Template순수 HTML을 최대한 유지하는 특징웹 브라우저에서 파일을 직접 열어도 내용 확인이 가능서버를 통해 뷰 템플릿을 거치면 동적ㅇ로 변경된 결과를 확인 가능순수 HTML을 그대로 유지하면서 뷰 템플릿도 사용할 수 있는 특징을 Natural Templates라고 함스프링 통합 지원스프링의 다양한 기능을 편리하게 사용 가능타임리프 기본 기능타임리프 사용 선언 기본 표현식• 간단한 표현: ◦ 변수 표현식: ${...} ◦ 선택 변수 표현식: *{...} ◦ 메시지 표현식: #{...} ◦ 링크 URL 표현식: @{...} ..
드디어 웹 사이트(매우매우매우 간단한..)에서의 동작과 함께 서비스를 만들어보자.매우 간단하게 상품을 등록하고, 상세화면을 보고, 목록을 조회할 수 있는 사이트이다. 서비스의 흐름은 아래와 같다. 프로젝트가 작은 규모의 경우웹 퍼블리셔가 디자이너에게 받은 디자인을 기반으로 HTML, CSS를 만들어 백엔드 개발자에게 제공한다.백엔드 개발자는 웹 퍼블리셔를 통해 화면이 나오기 전까지 시스템을 설계하고, 비즈니스 모델을 개발이후 HTML이 나오면 이 HTML을 뷰 템플릿으로 변환해서 동적으로 화면을 그리고, 또 웹 화면의 흐름을 제어한다. 참고React, Vue.js 같은 웹 클라이언트 기술을 사용하고, 웹 프론트엔드 개발자가 별도로 있으면, 웹 프론트엔드 개발자가 웹 퍼블러셔 역할까지 포함해서 하는 경우..
· PS
오랜만에 개념 공부(복기)...그 전까지는 문제풀이를 했었다DFSPseudo CodeDFS(u, adj) u.visited = true for each v ∈ adj[u] if v.visited == false DFS(v, adj) 구현 방법1: 돌다리를 두들겨 보다.void DFS(int here) { visited[here] = 1; for(int there : adj[here]) { if(visited[there]) continue; DFS(there); }} 구현 방법2: 못 먹어도 GOvoid DFS(int h..
프로젝트 생성Packaging → War / JarJSP를 사용하지 않기 때문에 Jar를 사용하는 것이 좋음.앞으로 스프링 부트 사용 시 이 방식으 ㄹ주로 사용JARJava Archive용도: 독립 실행 가능한 애플리케이션 패키징내장 서버: Tomcat, Jetty 등의 내장 서버 포함구조: 표준 Java 클래스 파일들과 리소스, 의존성 라이브러리 포함배포: 별도의 웹 서버/WAS 없이 단독 실행 가능Spring Boot: 기본적으로 JAR 패키징 권장WARWeb Application Archive용도: 웹 애플리케이션을 외부 서버에 배포하기 위한 패키징외부 서버: Tomcat, JBoss, WebLogic 등 외부 WAS에 배포실행 방식: WAS의 webapps 디렉토리에 배포 후 서버 시작구조: WE..
지난 번 MVC 프레임워크 구조를 직접 설계했다. 직접 만든 MVC 프레임워크 구조 실제로 사용되는 SpringMVC의 구조는 어떨까? 사실 구조상의 이름만 다를 뿐 크게 구조에서 차이점을 보이지 않는다.직접 만든 프레임워크스프링 MVCFrontControllerDispatcherServlethandlerMappingMapHandlerMappingMyHandlerAdapterHandlerAdapterModelViewModelAndViewviewResolverViewResolverMyViewViewDispatcherServlet 구조org.springframework.web.servlet.DispatcherServlet스프링 MVC도 프론트 컨트롤러 패턴으로 구현.스프링 MVC의 프론트 컨트롤러 → D..
지난 시간 MVC에 대한 개요를 봤었다.다만, 반복되는 작업이 많았고 이를 사용하기 편리하게 하기 위함으로 프론트 컨트롤러 패턴이라는 것을 소개했었다. 즉, MVC에서 Controller가 역할을 수행하기 전 공통 기능을 처리하기 위한 장치(수문장)를 마련하자! 라는 것을 소개했었는데, 이번시간 그것을 구현해보는 과정을 가진다.프론트 컨트롤러 패턴이전에는 클라이언트가 ControllerA, B, C를 각각 사용하기 위해선 Controller에서 각각에 맞는 공통 처리를 다 해줬어야 했다. 이제 공통 기능 처리를 위한 프론트 컨트롤러를 도입하게 된다면 이와 같이 공통 부분을 미리 Front Controller에서 처리해준 뒤, 각각의 요청에 맞는 컨트롤러를 찾아서 호출해주게 된다. 즉, 프론트 컨트..
ParkSeongGeun
Foden's Blog