반응형

1. @Controller 

가장 기본적인 Annotation이다. 

우리의 비즈니스 모델을 보면

Controller -> Service(Impl) -> DAO -> Mybatis -> SQL 뭐 이런식으로 흘러간다.

여기서 사용자가 주소창에 http://www.test.com/kr/test.do 

이런 걸 치고 들어왔다고 쳐보자. 그러면, 이 호출이 Java 단에서 잘 찾아줘야하는데,

그 역할을 하는 것이 Controller라고 보면 된다.

Controller는 간단하다. 그냥 클래스 위에 @Controller만 추가해주면 된다.

예시는 다음과 같다.

구조는 위와 같고,

소스코드는 다음과 같다.

@Controller
public class BoardController {
	private static final Logger logger = LoggerFactory.getLogger(BoardController.class);
	@Resource(name="boardService")
	private BoardService boardService;

	@RequestMapping(value = "/board/BoardList.do")
	public String home(Locale locale, Model model) throws Exception {
		ModelAndView mv = new ModelAndView("/co/coe/BoardList");
		
		List<BoardVO> list = boardService.selectBoardList();
		model.addAttribute("list", list);
		
		System.out.println(list.get(0).getContents());
		System.out.println(list.get(0).getId());
		
		return "/co/coe/BoardList";
	}
}

이런 소스가 있다. 이렇게 컨트롤러를 설정해주는 어노테이션이다~ 이말이야~

Anyway

(@Resource와, @RequestMapping도 보이는 데, 뒤에서 다룰 예정이다.)

 

2. 그 다음에 바로 보이는 RequestMapping

소스코드는 위와 동일하고 보면 

	@RequestMapping(value = "/board/BoardList.do")

뭐 이런식으로 써져있다.

이건 무슨의미냐 -> http://localhost:9128/kr/board/BoardList.do 을 주소창에 입력했을 때 

여기로 들어와라 라는 것을 의미한다. (본인은 port Number : 9128로 지정, Default : 8080

그리고 초반에 패키지 설정하는 걸 com.kitao.kr 로 설정 했다.)

그러면 여기를 들어오게되고 Java 로직이 실행 되는 것이다.

 

RequestMapping을 사용하는 방법은 2가지가 있다.

1. Class에 선언

2. 메소드에 선언

둘의 차이점을 살펴보자.

 

1.  Class 에 RequestMapping 설정

@Controller
@RequestMapping(value = "/board/*")
public class BoardController {
	private static final Logger logger = LoggerFactory.getLogger(BoardController.class);
	@Resource(name="boardService")
	private BoardService boardService;

	@RequestMapping	
	public ModelAndView home1(Model model) throws Exception {
		ModelAndView mv = new ModelAndView("/co/coe/BoardList");
		
		List<BoardVO> list = boardService.selectBoardList();
		model.addAttribute("list", list);
		
		System.out.println(list.get(0).getContents());
		System.out.println(list.get(0).getId());
		
		return mv;
	}

	@RequestMapping(value="/BoardList.do")
	public String home2(Locale locale, Model model) throws Exception {
		ModelAndView mv = new ModelAndView("/co/coe/BoardList");
		
		List<BoardVO> list = boardService.selectBoardList();
		model.addAttribute("list", list);
		
		System.out.println(list.get(0).getContents());
		System.out.println(list.get(0).getId());
		
		return "/co/coe/BoardList";
	}
}

Class에 value값이 /board/* 로 설정되어 있고 그 하위에는 설정안되있는 것이 한개, 

/BoardList.do로 설정되어 있는게 한개 총 2개가 있다.

 

이게 뭐를 의미하는지 솔직히 주구장창 설명보다 예시가 낫다고 생각한다.

http://localhost:9128/kr/board/BoardList.do

-> @RequestMapping(value="/BoardList.do") 로직 수행

http://localhost:9128/kr/board/

-> @RequestMapping 로직 수행

http://localhost:9128/kr/board/test.do

-> @RequestMapping 로직 수행

 

자 이제 감이 오는가? 일단 http://localhost:9128/kr/board/~~~ 의 형태인 애들은 

저 Class로 접근을 1차적으로 하고 하위에서 다시 갈리는 것이다.

예시를 보고 설명을 들으니 더 쉬운 Magic !

 

3. @PathVariable 과 @requestParam

간단하게 설명하자면, 

@PathVariable은 주소에 값을 가져와서 넣기 위해 사용되는 이노테이션,

@requestParam은 파라미터의 형태로 넘어온 애들을 넣어주는 변수.

아니 뭐 이것도 예시가 빠르다.

	@RequestMapping(value="/test//test.do", method = RequestMethod.GET)
	public ModelAndView home3(Locale locale, Model model, 
			@PathVariable("userId") int user,
			@RequestParam(value = "date", required = false) String date) throws Exception {
		System.out.println(user);
		System.out.println(date);
		
		return new ModelAndView("co/coe/BoardList");
	}

이런 소스가 있을때, 

대충 느낌보면, http://localhost:9128/kr/test/1234/test.do 이런 애들이 오겠구나 생각이 들어야한다. 여기서 더 해서 파라미터까지 설정 http://localhost:9128/kr/test/1234/test.do?date=2012 이런식으로 들어오겠구나 생각이 들 수 있다.

 

http://localhost:9128/kr/test/1234/test.do?date=2012  이러한 애가 들어왔다고 가정하면

int user <- 이 안에는 1234

String date <- 이 안에는 2012로 들어온다.

 

참고로 Get, Post 방식으로 모른다면 관련 문서를 참고하고 오는걸 추천한다.

http://localhost:9128/kr/test/1234/test.do?date=2012  에서 1234가 @PathVariable로 인하여 user에 설정되었고, @requestParam으로 인하여 물음표 뒤에 달려있는 파라미터(Get 방식)이 date에 설정되었다.

참고로 @requestParam은 html의 form 태그로 넘길때도 설정 가능하다.

 

오늘은 여기까지 배워보고 다음에는 자바스프링에서의 의존성 역전 원리와

그것을 설정해주는 @Inject @AutoWired @Resource를 살펴보고

@Service Annotation에 대해서도 살펴볼 것이다.

 

 

 

그럼 20000

 

 

반응형
반응형

 

안녕하세요 똥대입니다.

 

오늘은 ,, 다름이아니라 Mybatis, Java Spring - Oracle 연동을 해볼껀데요..

이번엔.. 살짝 어려워요.. ^^..

 

하지만 차근차근 하다보면 할 수 있습니다!

1. 가장 먼저!

요기 맨아래있는 pom.xml 에 들어가서 아래 dependency를 넣는 겁니다.

각각의 의미는 spring jdbc는 어떤 버전을 쓰며~ junit는 몇버전을 쓰며~

mybatis는 몇버전이며~ 이런 설정사항이 있는 값입니다.

(여기서 junit설정과, repository 설정을 안해서 조금 시간이 걸렸는데 저 두설정이 없으면 아마 중간에 에러가 뜰 거라서 처음부터 넣는거 추천 !)

		<!-- spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>$</version>
        </dependency>
     
        <!-- Test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency> 
     
        <!-- spring-test -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>4.2.9.RELEASE</version>
		</dependency>
     
        <!-- log4jdbc-log4j2-jdbc4 -->
        <dependency>
            <groupId>org.bgee.log4jdbc-log4j2</groupId>
            <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
            <version>1.16</version>
        </dependency>
  
  		<!-- org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>
      
        <!-- mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>   
        
        <!-- @Resource Import시 에러 해결 -->   
        <dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>javax.annotation-api</artifactId>
			<version>1.3.1</version>
		</dependency>

 

2. 그 다음, 우리 오라클 설치했던곳있죠?

여기서, 저의 경우는, D:\oracle\pruduct\11.2.0\dbhome_1\jdbc\lib 안에 있는데,

저기서 ojbc6.jar 파일을 복사하고!

 

저기 보이는 Referenced Libraries에 넣는 거에요!

 

3. 그다음

자르파일 우클릭 -> Build Path -> Add to Build Path 클릭하면

Referenced Libraries 에 들어가기 됩니다.

 

4. 그 후에,,

다시 pom.xml 에서 springframework-version 을  4.3.8 RELEASE로 변경한다!

 

5.

그 다음 src/main/resources 부분 우클릭 -> new -> file(안보이면 Others에서 찾는다)

그렇게 추가하고.

안에 내용을 넣어준다.

그러면 이런 형태가 나온다.

 

6.  그 다음 root-context를 바꾸어야 한다.

가장 먼저, root-context를 더블클릭하면 조~기 보이는 Namespaces가 있다. 저기를 클릭하고

다음과 같이 체크를 해주어야한다.

 

그 다음 다시 Source로 돌아가

	<!-- 오라클 접속 -->
    <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
        <property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
        <property name="url" value="jdbc:log4jdbc:oracle:thin:@localhost:1521/xe"/>
        <property name="username" value="SYSTEM"/>
        <property name="password" value="admin123"/>
    </bean>
   
    <!-- Mybatis 연동 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
         <property name="dataSource" ref="dataSource"></property>
         <property name="configLocation" value="classpath:/mybatis-config.xml"></property>
         <property name="mapperLocations" value="classpath:mappers/**/**/*sql.xml"/>
    </bean>
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
    </bean>

beans안에 3개의 bean을 넣어준다.

각각 오라클 접속에 필요한 ID/PW, Mybatis 연동하기 위한 설정값, sqlSession을 위한 세션값이다.

 

datasource는 오라클연동을 위해 필요한 설정 값이고.

두번째에 나오는 Mybatis는 잘 보면 mappers값과 configLocation 위치가 들어가있는 것을 볼 수 있다. 본인이 mapperLocations 의 값이 classPath:mappers/**/**/*.sql.xml 로 설정이 되어있는 이유는 단계적으로 쿼리를 나눴기 때문이다.

이런식으로 되어있다는 의미이다. mappers/co/coa/ds.COEBoardList_sql.xml

감이 오쥬?  또한 sql문을 사용하는 xml의 경우 src/main/resources에 넣어야한다. 딴곳에 넣으면 안될 가능성큽니다!

 

7. 그 다음 src/main/resources 우클릭 -> New -> XML File 클릭하고 mybatis-config.xml

파일 생성해준다.

생성후 안에 값을 다음과 같이 넣는다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  
</configuration>

여기서 <configuration> </configuration> 을 빼먹으면 안된다. 꼭 넣어주어야한다.

안에 값이 없더라도..

 

8. 호호 설정은 끝났다.

테스트해보자

프로젝트 우클릭 -> properties

 

누르면 다음과 같이나온다. 밑에 보이는 것처럼 Java Build Path - Order and Export에서

Libraries를 들어간다.

만약 JUnit4가 보이지 않는다면 Add Library 누르면

이런 화면이 나온다.

Next 하고 JUnit4를 선택하고 Finish 누른다! 그 다음 적용!

 

9. 이제 스프링 단위테스트로 사용되는 JUnit을 사용할 수 있게 된다.

이제 src/test.java 하위에 com.kitao.kr에 DatabaseTestFile.java를 생성한다.

안에 소스는 다음과  같다.

package com.kitao.kr;

import java.sql.Connection;

import javax.inject.Inject;
import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations ={"file:src/main/webapp/WEB-INF/spring/**/root-context.xml"})
public class DatabaseTestFile {

    @Inject
    private DataSource ds;
       
    @Inject
    private SqlSessionFactory sqlFactory;
 
    @org.junit.Test
    public void test() throws Exception{
		
		 try(Connection conn = ds.getConnection()){ System.out.println(conn); }
		 catch(Exception e){ e.printStackTrace(); }
		 
    }
   
  
    @org.junit.Test
    public void factoryTest() {
        System.out.println(sqlFactory);
      
    }
  
    @org.junit.Test
    public void sessionTest() throws Exception{
		
		 try(SqlSession session = sqlFactory.openSession()) {
		 System.out.println(session); }catch(Exception e) { e.printStackTrace(); }
		 
    }
}

 

이렇게 넣어주고. DatabaseTestFile.java 우클릭 -> Run As -> JUnit Test 실행

 

10. 두둥.. 드디어 끝

만약 잘 됐다면.. 다음과 같이 초록초록 할 것이다.

만약 빨간색이 떳다면 오류이고, 오류 로그를 봐야한다. 오류로그는 Console에서 볼 수 있다.

 

 

이건 오류가 없는 깔끔한 로그이다. 만약 오류가 나면 여기도 빨강빨강 할 것이다!

 

 

아마 여기까지하면 웬만하면 잘 될것이에여 ㅜ 혹시 빼먹은 건 없는진 모르겠지만 잘 될 거라 생각합니다. 사실 개발의 절반은 환경설정 잡는거니까 꼭 포기하지마시고..

 

혹시 모르는거 있으시면 댓글에 남겨주시면 한번 솔루션(?) 을 드리도록 해볼께요!!

(사실 구독자없음 ㅋ)

 

아무튼! 다음 포스팅은 이 연동한 오라클을 어떻게 Mybatis쓰는지! 살펴보겠습니다.

맛보기로 Controller - Service - ServiceImpl -> DAO(DAO, DAOImpl) -> sql.xml 로 

이어지는 전형적인 Spring 구조를 살펴보겠습니다!

 

감사합니다. 꾸벅

 

 

반응형
반응형

 

안녕하세요. 똥대 입니다.

 

오늘은 오라클 설치를 해볼껀데요

어렵지않습니다.

 

가장먼저 오라클에 접속하여 설치하여 줍니다.

위에 사이트 들어가서 해주시면 되고 저희는 11g 버전을 사용합니다!

 

웹사이트 접속하면 이런 화면이 나오는데. 19가아니라 밑으로 쭉쭉 내리면.

 

이런 화면이 나옵니다. 여기서 맞는 버전 선택! 저는 64bit라서 2번째꺼 깔아줌

오라클은 설치할때 로그인이 항상필요했나? 그래서 로그인 해주고 깔면됨!

(나는 럭키가이인지 로그인안해도 되던뎅)

 

다 설치하고, 깔면 이런폴더가 나오고 setup 클릭!

 

 

설치하고 Next 누르고 설치 폴더 정의해준다음에!(저는 D드라이브에 Oracle이라는 곳에 설치)

Next

비밀번호 설정하고~ NextNext 누르다보면 완료.

 

CMD 창에서 

이런식으로 sys as sysdba ,패스워드는 오라클설치할때 넣은 패스워드 입력하면

잘깔렸는지 확인할 수 있다.

 

그 다음 SQL Developer 버전을 받아주어야한다!.

요기 들어가서.

 

설치하고 sqldeveloper.ex실행하면...

 

환경설정 임포트 확인이라는 창이 뜨는데 그냥 아니오 누르고,

 

이런식으로 비밀번호는 Oracle 설정 패스워드 입력하고 확인하면 접속이 가능하다.

 

다음에는 오라클 연동을 포스팅하겠습니다~!

반응형
반응형

 

실제로 개발하다보면, 하드코딩 지양해야할 부분이 많이 있다.

실제로 패스워드나, IP 주소 등등 하드코딩을 하게되면 보안이나 이슈가 있을 수 있다.

또한, 자주쓰이는 곳에 하드코딩을 했는데, 이후에 버전이 업그레이드 되거나 그런 것들에 의해 소스를 변경해야하는 상황이 온다면, 하나하나 다 변경할 것인가?..

 

그래서 환경 구축엥서 글로벌 프로퍼티 설정도 넣어봤다!(회사에선 그냥 썼는데 구축하려니까 빡셌다..)

 

사실 자료가 있긴있는데 다들 자세하게 말안해줘서 정말 찾기 애먹었다.

이 글을 보면 바로 적용이 가능할 정도로 자세하게 남길 예정이다.

Let me started ~

 

일단.. 실행할 때, 프로퍼티를 가져오던가 해야할 것이다.

그 설정해주는걸 바로..

root-contexxt.xml에서 해주면된다. 해당 소스를 보면!

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation=
	"
	http://www.springframework.org/schema/beans
	https://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/util 
	http://www.springframework.org/schema/util/spring-util-4.0.xsd
	">
	<util:properties id="properties" location="classpath:properties-local/config.local.properties"/>
	
	<!-- Root Context: defines shared resources visible to all other web components -->
</beans>

이런식으로 되어있다. 저기서 util~ 로 시작하는 부분을 설정하면된다. 

ID는 추후에 내가 사용할 id를 설정해주면되고 location에는 프로퍼티의 경로와 파일 명을 넣어주면된다. 그 다음에는 어디에 프로퍼티를 넣어야하는지 보겠다.

저기 보면 resources 안에 properties-local 안에 config.local.properties를 설정해 주었다.

resouce는 원래 있는 파일이며 내가 생성해준 폴더는 properties-local, 생성해준 파일은 config.local.properties 이다.

안에 내용 보면 이것 밖에 없다.

실제로 생성하는건 properties-local 우클릭 -> new -> file 로 생성해주면 된다.

 

이제 JAVA단에서 이 값을 가져올 것이다.

일단 @Value 어노테이션을 사용할 것이고 정답 먼저 보면 다음과 같다.

	@Value("#")
	private String ACTION;
	

아까 properties는 id이고 ACTION_NAME은 안에 내용이였다.

그 내용 값을 ACTION에 저장한다는 의미이다.

 

전체 코드는 이렇다.

실제로 log를 통해서 ACTION을 찍어보았다.

package com.kitao.kr.co.coa;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * Handles requests for the application home page.
 */
@Controller
public class HomeController {
	@Value("#")
	private String ACTION;
	
	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
	
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Locale locale, Model model) {
		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
		
		String formattedDate = dateFormat.format(date);
		
		model.addAttribute("serverTime", formattedDate );
		
		return "co/coa/home";
	}
}

뭐 결과는 이렇게 나온다!

 

그래서.. 오늘 공부한걸 잘 기억해서 글로벌변수로 빼놀껀 빼놓자!

보안에 취약하지 않고, 대용량 작업에 유리하기 때문이다.

 

반응형
반응형

쓸데 없는 소리지만, 현재 업무로 Java Spring을 하긴하지만, 유지보수이고, 간단간단한 기능개발정도이니,, 담당자지만 개인적으로 깊이가 없다는 생각이 들어서.. 처음부터 끝까지 어떻게 동작하는지, 프로세스관점으로 공부해야겠다 싶어서 프로젝트 아닌 프로젝트를 혼자서 진행해보게 되었다.

 

꼭 이 글을 보며 도움이 된 다는 사람이 많았으면 좋겟네요 ㅠㅠ(어렵게했어요)

 

일단 가장 먼저 젤 중요한 환경설정구축을 하게따

 

가장 먼저, Project Explorer 에서 우클릭 후 New -> Other 클릭해준다.

 

그 후에, Spring Legacy Project를 누르고 Next

 

그 다음 프로젝트 이름 넣고, Spring MVC Project 선택 후 Next

 

그 다음 이런 화면이 나오는데 뭐 대충 회사-부서-프로젝트 느낌으로 적으면된다.

(본인은 com-kitaoproject-web 이런식으로 한 것 같다.)

 

그러면 이런 화면이 나오게 된다! 그러면 프로젝트는 잘 생성 된 것이다.

 

	<properties>
		<java-version>1.8</java-version>
		<org.springframework-version>4.3.3.RELEASE</org.springframework-version>
		<org.aspectj-version>1.6.10</org.aspectj-version>
		<org.slf4j-version>1.6.6</org.slf4j-version>
	</properties>

그 다음 우리가 설정해야할것은 자바, 스프링 버전!

저~ 밑에 pom.xml 들어가보자

저기 들어가서

자바 버전이랑, 스프링 버전을 본인 취향에 맞게 설정해주면된다.

 

끝이 아니쥬?

이제 서버를 연동해주어야 한다.

저 서버 창에서 우클릭 -> New -> Server

 

취향에 맞게 버전 선택해주고!

 

본인 프로젝트를 넣고 Finish 넣어주면 끝!

(만약 Tomcat이 아직 없다면,... 깔고 와야함 ㅎ)

자자.. 거의 다왔어

 

이제 실제로 켜볼수 있는 상태야!

지금 구조를 보면 이런상태이고, HomeController.java 의 내부를 보면,

package com.kitao.kr.co.coa;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * Handles requests for the application home page.
 */
@Controller
public class HomeController {
	@Value("#")
	private String ACTION;
	
	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
	
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Locale locale, Model model) {
		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
		
		String formattedDate = dateFormat.format(date);
		
		model.addAttribute("serverTime", formattedDate );
		
		return "co/coa/home";
	}
}

 

이런 구조인데, 저기 주석에 보이는 것처럼 첫 화면 진입시.. 라는게 있는데,

그 말은 뭐냐면, localhost:8080/kr_krw (뒤에 kr_krw는 뭔지 다음에 설명할것임!)

를 입력하면 저쪽 리퀘스프매핑을 타면서 아래

코드가 실행되는것임. 그래서 쭉쭉쭉 내려오고 return "co/coa/home" 을만나

co에 coa 안에 home이라는 jsp에 진입하게된다.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
	<title>Home</title>
</head>
<body>
<h1>
	This is test
</h1>
</body>
</html>

이건 home.jsp 파일이고 그냥 기본적인 HTML이 들어가 있다.

그래서 결과물을 확인해보면..

짠 이런식으로 되는 것입니다! 아직까진 쉽죠?

이건 프론트엔드에 불과할뿐,, 이제 백엔드 DB 연동까지 들어가면 머리가 터지진 않고

약간 어렵긴한데 할수 있겠ㅆ...죠? 환경설정은 또 첨인데,, ㅎ

 

그럼 다음에 Context-root가 뭔지! 글로벌프로퍼티 설정은 어떻게 하는지!

알아보겠습니당. 

 

꾸벅

 

 

반응형

+ Recent posts