* ์ ์ ํ์ผ ๋งคํ
์ค์ต์ ์ํด www.newlecture.com html ํ์ผ์ ๋ค์ด๋ฐ์์ webapp ํด๋ ์์ ๋ฃ๋๋ค. index.jsp ํ์ผ์ ํผ๋ธ๋ฆฌ์ฑ ๋ index.html์ ๋ด์ฉ๋ฌผ๋ก ๋ฐ๊พผ ๋ค ์คํํ๋ฉด ์ด๋ฏธ์ง ํ์ผ์ด ๋์ค์ง ์๋๋ค.
ํด๋น ๊ฒฝ๋ก(webapp/images/logo.png)์ ํ์ผ์ด ์์์๋ ์ด๋ฏธ์ง๊ฐ ๋์ค์ง ์๋ ์ด์ ๋, ์คํ๋ง์ด ์ ์ ์ธ ํ์ผ(html, ์ด๋ฏธ์ง ๋ฑ)์ ์ ๊ณตํ์ง ์๋๋ก ๋ง์๋์๊ธฐ ๋๋ฌธ์ด๋ค. jsp ํ์ผ์ ์ ๊ทผ ๊ฐ๋ฅํ์ง๋ง ์ด๋ฏธ์ง ๋ฑ์ url์ผ๋ก ์์ฒญํ์ ๋ 404๊ฐ ๋ฌ๋ค. (localhost:8080/images/logo.png)
์์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ ์ ํ์ผ ์๋น์ค๊ฐ ๊ฐ๋ฅํ๋ค. ์ฌ์ฉ์๊ฐ '/images/**'์ผ๋ก ์์ฒญํ์ ๋ '/images/' ๊ฒฝ๋ก์์ ์ฐพ์๋ณด๊ฒ ํ๋ค๋ ์๋ฏธ์ด๋ค. ๊ฐํธํ๊ฒ๋ resource๋ผ๋ ํด๋๋ฅผ ๋ง๋ค์ด images, js, css๋ฅผ ๋ค ๋ชฐ์๋ฃ์ผ๋ฉด ๋๋ค.
dispatcher-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- mvc๋ผ๋ ์คํค๋ง ํ์ผ ์ถ๊ฐํ๋ฉด mvc ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. -->
<!--
http://www.springframework.org/schema/mvc : ์คํค๋ง ์ด๋ฆ
https://www.springframework.org/schema/mvc/spring-mvc.xsd : ์คํค๋ง ํ์ผ
** xmlns:mvc="http://www.springframework.org/schema/mvc"์ ์๋ฏธ
mvc๋ผ๋ ์ด๋ฆ์ผ๋ก http://www.springframework.org/schema/mvc ์คํค๋ง๋ฅผ ์ด์ฉํ ๊ฒ์ด๊ณ ,
์คํค๋ง ํ์ผ์ xsi:schemaLocation์ ๋ช
์๋
https://www.springframework.org/schema/mvc/spring-mvc.xsd"
-->
<bean id="/index" class="com.newlecture.web.controller.IndexController" />
<!-- View Resolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<mvc:resources location="/resource/" mapping="/resource/**"></mvc:resources>
<!-- /resource/**๋ผ๋ ์์ฒญ์ด ์์ ๋(mapping) /resource/ ํด๋์์ ์ฐพ์๋ณด๊ฒ ํจ(location) -->
</beans>
mvc ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด beans xml namespace์ mvc ๊ด๋ จ ์คํค๋ง๋ฅผ ์ถ๊ฐํ๋ค.
์ง์ ์จ๋ ๋๊ณ ํน์ dispatcher-servlet.xml ํ์ผ ์ฐํด๋ฆญ > Open With > Spring Config Editor๋ฅผ ๋๋ฅด๋ฉด namespace ํญ์ ์ ๊ทผํ ์ ์๋ค. (์ด์ ์ namespace ํญ์ด ์ ๋ณด์ฌ์ ์ดํด๋ฆฝ์ค ๋ค์ ๊น๊ณ ๋ณ ๋ป์ง์ ๋คํ๋๋ฐ ๋๊ธ์์ ๊ฟํ์ ์ป์๋ค......)
์ ์ฝ๋์ฒ๋ผ '/resource/**' ์ผ๋ก ๋งคํํ๋ฉด ๋ชจ๋ ์ ์ ํ์ผ์ ๊ทธ ์ฃผ์๋ก ๋งคํํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊ธฐ ๋๋ฌธ์ ํ์ผ๋ค์ ์์น๋ฅผ ๋ฐ๊พธ๊ณ ์ฝ๋๋ ์๋์ ๊ฐ์ด ์์ ํ๋ค. (์ด์ ์๋ webapp(๋ฃจํธํด๋) ์ resource ํด๋์ css, images, js ๋ฑ ์์์)
dispatcher-servlet.xml
<mvc:resources location="/static/" mapping="/**"></mvc:resources>
์์ฆ์ static ํด๋ ์์ ์ ์ ํ์ผ์ ๋ชฐ์๋ฃ๋ ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉํ๋ฏ๋ก ํด๋ ์ด๋ฆ์ static์ผ๋ก ์์ ํ๋ค.
โป "/*"๊ณผ "/**"์ ์ฐจ์ด
/* : /*์ ์๋ url๊ณผ ์ผ์นํ๋ ๋๋ ํ ๋ฆฌ
/** : ํ์ ๋๋ ํ ๋ฆฌ๊น์ง ํฌํจ
์๋ฅผ ๋ค๋ฉด
/* ํจํด์ /, /aaa, /bbb ๋ฑ๋ฑ์ ๋งตํ์ด ๋์ง๋ง /aaa/bbb๋ /*์ ๋งตํ์ด ์๋๊ณ , /**์๋ ๋งตํ์ด ๋๋ค.
* ํ์ด์ง ๊ณตํต๋ถ๋ชจ ์ง์คํ๋ฅผ ์ํ ํ์ด์ง ๋ชจ๋ ๋ถ๋ฆฌํ๊ธฐ
header, footer ๋ฑ ๋ชจ๋ ํ์ด์ง์ ์ผ๊ด์ ์ผ๋ก ์กด์ฌํ๋ ๋ถ๋ถ์ด ์๋ค. <jsp:include>๋ฅผ ์ฌ์ฉํด์ ๊ณตํต๋ถ๋ถ์ ํ๋์ ํ์ผ๋ก ๊ตฌ์ฑํด์ ๋ผ์ด๋๊ณ ๋ค๋ฅธ ํ์ด์ง๋ค์ด ๊ทธ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ๊ฒ ํ๋ฉด ๊ณตํต๋ถ๋ถ์ ์ง์คํ ํ ์ ์๋ค. ํ์ง๋ง ์ด๊ฒ๋ง์ ๋ ๋ชจ๋ ํ์ด์ง์ include ๊ตฌ๋ฌธ์ ์จ์ผํ๋ ๋จ์ ์ด ์๊ธฐ์ tiles๋ฅผ ์ฌ์ฉํ๋๋ก ํ๋ค.
์๋จ ๋ถ๋ถ์ header.jsp, ํ๋จ ๋ถ๋ถ์ footer.jsp, ๊ณ ๊ฐ์ผํฐ ๋ฉ๋ด์์ ํค๋ ๋ฐ ๋ถ๋ถ(customer)์ visual.jsp, ์ข์ธก ๋ฉ๋ด๋ aside.jsp๋ก ํ์ผ์ ๋ง๋ค์ด ๋ผ์ด๋์๋ค. layout.jsp๋ ๊ตฌ์ฑ ๋ ์ด์์ ํ์ผ์ด๋ค.
* Tiles ์ง์์ ์์ฑํ๊ธฐ
tiles.apache.org ์ ์
tiles๋ ์ด์ ์ํดํ๋ค๊ณ ํ๋ค.. ์์ฆ์ ๋ฐฑ์๋ ๋ฟ๋ง ์๋๋ผ ํ๋ก ํธ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง๋ฅผ ๋ง๋ ๋ค. ํนํ ์๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ๋ ์์ ํ ํ๋ก ํธ ๋ง์ผ๋ก ํ์ด์ง ์์ ์ ํ๊ธฐ๋ ํ๋ค. tiles๋ ๋ฐฑ์๋์์ ํ์ด์ง๋ฅผ ํฉ์น๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ๋ฐ ์์ฆ์ ํ๋ก ํธ๋ฅผ ์ฌ์ฉํ๋ ์ถ์ธ์ด๋ค ๋ณด๋ ๋ฐ์ ์ ์ ์ ์ค์ด๊ณ ์๋ค.
Documentation > Tiles 3.0.x > Tutorial > Creating tiles Pages > Create a definition์ ๋ด์ฉ์ ๋ณต์ฌํ์ฌ WEB-INF ์์ tiles.xml ํ์ผ์ ์์ฑํ๊ณ ๋ถ์ฌ๋ฃ๊ธฐํ๋ค.
ListController.java
public class ListController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mv = new ModelAndView("notice.list");
return mv;
}
}
์ปจํธ๋กค๋ฌ์์์ ๋ทฐ ๋ค์์ 'notice.list'์ผ๋ก ์ค์ ํ๊ณ ๋ฆฌํด,
tiles.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<definition name="notice.list" template="/WEB-INF/view/customer/inc/layout.jsp">
<!-- name : ์ปจํธ๋กค๋ฌ์์ ๋ฐํํ ์ด๋ฆ -->
<put-attribute name="title" value="๊ณต์ง์ฌํญ" />
<put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
<put-attribute name="visual" value="/WEB-INF/view/customer/inc/visual.jsp" />
<put-attribute name="aside" value="/WEB-INF/view/customer/inc/aside.jsp" />
<put-attribute name="body" value="/WEB-INF/view/customer/notice/list.jsp" />
<put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
</definition>
<definition name="notice.detail" template="/WEB-INF/view/customer/inc/layout.jsp">
<put-attribute name="title" value="Tiles tutorial homepage" />
<put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
<put-attribute name="visual" value="/WEB-INF/view/customer/inc/visual.jsp" />
<put-attribute name="aside" value="/WEB-INF/view/customer/inc/aside.jsp" />
<put-attribute name="body" value="/WEB-INF/view/customer/notice/detail.jsp" />
<put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
</definition>
</tiles-definitions>
tiles.xml ์ง์์์์ definition name์ผ๋ก ๋ฐ๋๋ค. 'notice.list'๋ผ๋ ์์ฒญ์ด ์์ ๋ tiles.xml์์ ํด๋น name์ผ๋ก definition์ ์ฐพ์ template, ์ฆ layout.jsp๋ฅผ ๊ธฐ๋ฐ์ผ๋ก header, footer ๋ฑ์ ์ค์ ํ ๊ฒ์ด๋ค.
* ๋ ์ด์์ ํ์ด์ง ๋ง๋ค๊ธฐ์ Tiles ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์ ํ๊ธฐ
Tiles๋ฅผ ์ฌ์ฉํ์ง ์์ ์ฝ๋์์๋ 'notice/list' ๋ผ๋ ์์ฒญ์ด ์์ ๋ ๋ทฐ ๋ฆฌ์กธ๋ฒ์ prefix, suffix๋ฅผ ํตํด 'WEB-INF/view/notice/list.jsp'๋ผ๋ ๋ทฐ ํ์ด์ง๋ฅผ ์ฐพ์์ ๋ฆฌํดํ๋ค. Tiles๋ฅผ ์ฌ์ฉํ๋ฉด 'notice.list'๋ผ๋ ์์ฒญ์ด ์์ ๋ Tiles์ definition name์ด 'notice.list'์ธ ๊ฒ์ ์ฐพ์ ์ธํ ํ๊ฒ ๋๋ค. ์ด์ ์ด ์์์ visual, aside, body ๋ฑ์ ์์น๋ฅผ ์ค์ ํด์ผ ํ๋ค.
maven repository์์ tiles-jsp๋ฅผ ๊ฒ์ํ๋ค. Tiles JSP Support 3.0.8์ ๋ณต์ฌํด์ pom.xml์ ๋ถ์ด๊ณ , ํ ํ๋ฆฟ์ด ๋๋ layout.jsp์ ์๋จ์ tiles ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํด ์ค๋ค.
layout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><tiles:getAsString name="title"></tiles:getAsString></title>
<link href="/css/customer/layout.css" type="text/css" rel="stylesheet" />
<style>
#visual .content-container {
height: inherit;
display: flex;
align-items: center;
background: url("../../images/customer/visual.png") no-repeat center;
}
</style>
</head>
<body>
<!-- header ๋ถ๋ถ -->
<tiles:insertAttribute name="header"></tiles:insertAttribute>
<!-- --------------------------- <visual> --------------------------------------- -->
<!-- visual ๋ถ๋ถ -->
<tiles:insertAttribute name="visual"></tiles:insertAttribute>
<!-- --------------------------- <body> --------------------------------------- -->
<div id="body">
<div class="content-container clearfix">
<!-- --------------------------- aside --------------------------------------- -->
<tiles:insertAttribute name="aside"></tiles:insertAttribute>
<!-- aside ๋ถ๋ถ -->
<!-- --------------------------- main --------------------------------------- -->
<tiles:insertAttribute name="body"></tiles:insertAttribute>
</div>
</div>
<!-- ------------------- <footer> --------------------------------------- -->
<tiles:insertAttribute name="footer"></tiles:insertAttribute>
</body>
</html>
* Tiles ViewResolver ์ค์ ํ๊ธฐ
dispatcher-servlet.xml
<!-- Tiles ViewResolver -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
<property name="order" value="1" />
</bean>
<bean class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions" value="/WEB-INF/tiles.xml" />
</bean>
<!-- View Resolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"></property>
<property name="suffix" value=".jsp"></property>
<property name="order" value="2" />
</bean>
์๋๋ ์ด์ ์ ์ค์ ํด ๋์๋ ๋ทฐ ๋ฆฌ์กธ๋ฒ์ด๊ณ ์์ ๋ bean ํ๊ทธ๋ Tiles์์ ์ค์ ํ ๋ทฐ ๋ฆฌ์กธ๋ฒ์ด๋ค. ๊ฐ์ ์์ฒญ์ด ์์ ๋์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๊ธฐ ์ํด <property name="order".../>๋ฅผ ์ถ๊ฐํ์๋ค.
pom.xml
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
* Tiles ์ค์ ์ Wildcard ์ด์ฉํ๊ธฐ
tiles.xml์์ ํ์ด์ง๋ง๋ค definidefinition ์ค์ ์ ํด์ฃผ์๋๋ฐ, ๋ชจ๋ ์์ฒญ๊ณผ ํ์ด์ง์ ๋ํด ์ ๋ถ ์ค์ ํด์ผ ํ๋ฉด ์ฝ๋๊ฐ ๊ธธ์ด์ง๊ฒ ๋๋ค. ์ด๋ด ๋๋ ์์ผ๋์นด๋ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
tiles.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<definition name="notice.*" template="/WEB-INF/view/customer/inc/layout.jsp">
<!-- name : ์ปจํธ๋กค๋ฌ์์ ๋ฐํํ ์ด๋ฆ -->
<put-attribute name="title" value="๊ณต์ง์ฌํญ" />
<put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
<put-attribute name="visual" value="/WEB-INF/view/customer/inc/visual.jsp" />
<put-attribute name="aside" value="/WEB-INF/view/customer/inc/aside.jsp" />
<put-attribute name="body" value="/WEB-INF/view/customer/notice/{1}.jsp" />
<!-- ์ฒซ๋ฒ์งธ ์์ผ๋์นด๋์ ์ฐ์ธ ๋ฌธ์์ด์ {1}์ผ๋ก. ์์ผ๋์นด๋๋ ์ฌ๋ฌ๊ฐ์ผ ์ ์๋ค. -->
<put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
</definition>
</tiles-definitions>
definition name์์ * ์ฌ์ฉ, body์์ {1}์ ์ฒซ ๋ฒ์งธ ์์ผ๋์นด๋๋ฅผ ์๋ฏธํ๋ค.
* Root ํ์ด์ง๋ค์ ์ํ layout ํ์ด์ง ๋ง๋ค๊ธฐ
๊ณ ๊ฐ์ผํฐ ํ์ด์ง๋ค์ ์ํ layout ์ค์ ์ด ๋๋ฌ๋ค. ๋ฃจํธ ํ์ด์ง๋ฅผ ์ํ layout ํ์ด์ง๋ฅผ ์ถ๊ฐํด ์ค๋ค.
layout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<!DOCTYPE html>
<html>
<head>
<title>์ฝ๋ฉ ์ ๋ฌธ๊ฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์จ๋ผ์ธ ๊ฐ์ ์์คํ
</title>
<meta charset="UTF-8">
<title>๊ณต์ง์ฌํญ๋ชฉ๋ก</title>
<link href="/css/layout.css" type="text/css" rel="stylesheet" />
<link href="/css/index.css" type="text/css" rel="stylesheet" />
<script>
</script>
</head>
<body>
<!-- header ๋ถ๋ถ -->
<tiles:insertAttribute name="header"></tiles:insertAttribute>
<!-- --------------------------- <body> --------------------------------------- -->
<tiles:insertAttribute name="body"></tiles:insertAttribute>
<!-- ------------------- <footer> --------------------------------------- -->
<tiles:insertAttribute name="footer"></tiles:insertAttribute>
</body>
</html>
tiles.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<definition name="root.*" template="/WEB-INF/view/inc/layout.jsp">
<put-attribute name="title" value="๊ณต์ง์ฌํญ" />
<put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
<put-attribute name="body" value="/WEB-INF/view/{1}.jsp" />
<put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
</definition>
<definition name="notice.*" template="/WEB-INF/view/customer/inc/layout.jsp">
<put-attribute name="title" value="๊ณต์ง์ฌํญ" />
<put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
<put-attribute name="visual" value="/WEB-INF/view/customer/inc/visual.jsp" />
<put-attribute name="aside" value="/WEB-INF/view/customer/inc/aside.jsp" />
<put-attribute name="body" value="/WEB-INF/view/customer/notice/{1}.jsp" />
<put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
</definition>
</tiles-definitions>
๋ฃจํธ ํ์ด์ง๋ค์ ์ํ layout์ด๋ผ์ definition name์ '*'์ผ๋ก ์ค์ ํ๊ฒ ๋๋ฉด, ๋ชจ๋ ํ์ด์ง๋ค์ ์ ๋ถ <definition name="*" ....>์ ํ๊ณ ํ ํ๋ฆฟ์ ์ธํ ํ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด <definition name="notice.*" ....>๊ณผ ๊ฐ์ ์์ฒญ๋ ๋จนํ์ง๊ฐ ์๋๋ค. ๋ฐ๋ผ์ 'root.*'์ด๋ผ๊ณ ์ค์ ํ๊ณ , IndexController์์ ๊ฒฝ๋ก๋ฅผ ์์ ํ๋ค.
IndexController.java
public class IndexController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mv = new ModelAndView("root.index");
mv.addObject("data", "Hello Spring MVC");
return mv;
}
}
ModelAndView mv = new ModelAndView("index"); ์์ index๋ฅผ root.index์ผ๋ก ์์ ํ๋ค. ๊ทธ๋ฌ๋ฉด ๋ฃจํธ๋ฅผ ํตํด ๋ค์ด์ค๋ ํ์ด์ง๋ค์ ๋ ์ด์์ ์ธํ ๋ ์๋ฃ๋๋ค.
๋ด๋ ์ฒ ์คํ๋ง ํ๋ ์์ํฌ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ๊ฒ์๊ธ์ ๋๋ค.
'๐ปStudy > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ฒด DI๋ฅผ ์ด๋ ธํ ์ด์ ์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ (0) | 2021.03.02 |
---|---|
๋ฐ์ดํฐ ์๋น์ค ํด๋์ค ์ถ๊ฐ / ์๋น์ค ๊ฒฐํฉ๋ ฅ ๋ฎ์ถ๊ธฐ / DB ์ฐ๊ฒฐ์ ๋ณด ๋ถ๋ฆฌ / Spring ์ค์ ๋ถ๋ฆฌ (0) | 2021.02.26 |
Spring MVC ๊ฐ๋ฐํ๊ฒฝ ์ธํ / Dispatcher Servlet / View Resolver (0) | 2021.02.20 |
Spring MVC (0) | 2021.02.14 |
Spring์ผ๋ก AOP ๊ตฌํ (Around Advice) (0) | 2021.02.13 |