처음 스프링 프로젝트가 생성되면 아래와 그림과 같은 구조를 확인 하실 수 있습니다.

간단하게 구성을 설명 하겠습니다.


src/main/java 는 프로젝트에서 개발되는 모든 Java코의 경로가 됩니다.

개발자나 프로젝트의 기호에 따라 sql mapper, tiles 등 xml 의 경로가 포함되기도 합니다.


src/main/recoursec 는 서버가 작동될때 사용되는 파일들의 경로입니다.

DB 연동을 위한 sql mapper의 xml 파일, titles의 template.xml 파일, 다국어 지원을 위한 properties.xml 등이 포함됩니다.


src/test/java 와 src/test/resources 는 말 그대로 테스트용 경로입니다. 위 두 경로와 목적만 다릅니다.


JRE System Library 세팅된 자바 버전을 나타냅니다.


Maven Dependencies 는 pom.xml 에 등록된 라이브러리들이 표시 되어 있습니다.


src->webapp->resources 는 이미지, 자바스크립트 등 페이지를 구성하는 resources들의 경로입니다.

src->webapp->WEN-INF->spring  스프링을 구성하는 설정 파일들의 경로입니다.

src->webapp->WEB-INF->views 실제 페이지를 구성하는 jsp, html 등의 파일들의 경로입니다.





 아래부터 home.jsp 의 작동 원리를 설명 하겠습니다.





기존 Dynamic Web 프로젝트는 jsp 등 웹 파일에서 서버를 실행 하면 바로 해당 페이지에 접근을 할 수 있었습니다.

하지만 스프링에서는 보안을 위해 웹 파일들을 WEB-INF 안에 저장 하고 있습니다.

이유는 WEB-INF 는 직접 접근을 할 수 없기 때문입니다. 이러한 이유로 home.jsp 를 바로 실행 시키면 

아래처럼 404 에러가 발생합니다. 그렇기 때문에 우리는 컨트롤러를 통해 페이지를 호출 해야 합니다.

그림(스프링 작동 순서) 에서 부터 순서대로 설명 하겠습니다.





- 그림(스프링 작동 순서)




1. web.xml 은 프로젝트의 환경 설정을 해주는 파일입니다. 프로젝트가 실행되면 이 파일이 가장 먼저 실행 되고, 

DispatcherServlet이 해당 프로젝트로 들어오는 요청들을 낚아채고 핸들링을 해줍니다.

이 부분은 낚아챈 요청들을 servlet-context.xml 로 보내주는 부분입니다.





	
	
		contextConfigLocation
		/WEB-INF/spring/root-context.xml
	
	
	
	
		org.springframework.web.context.ContextLoaderListener
	

	
	
		appServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			/WEB-INF/spring/appServlet/servlet-context.xml
		
		1
	
		
	
		appServlet
		/
	







2. servlet-context 는 낚아챈 요청을 받아 <annotation-drive/> 란 태그를 사용하여 컨트롤러에서 어노테이션을 사용할 수 있게 해줍니다.

<context:component-scan base="com.프로젝트.패키지명"/> 태그는 어노테이션을 사용할 영역(패키지)를 설정 할 수 있게 해줍니다.

낚아챈 요청은 com.포르젝트.패키지명에  요청된 url에 맞게 맵핑이 됩니다.

  




	
	
	
	

	
	

	
	
		
		
	
	
	
	
	
	


  



3. @RequestMapping(value = "/", method=RequestMethod.GET) 에 있는 value 값을 참조하여 요청된 url과 맵핑을 합니다.

return 되는 값은 "home" 이지만, 과정 4에서 페이지 경로를 prefix(/WEB-INF/views/) , suffix(.jsp) 가 자동으로 완성해주기 때문에,

최종적으로 /WEB-INF/view/return값.jsp 가 호출이 됩니다.








localhost:8080 을 실행 해보시면 아래와 같은 결과가 나오게 됩니다.

@RequestMapping 에서 value값을 "Index" 라고 설정을 하게 되면, localhost:8080/Index 라는 url로 접근 하면 됩니다.




지난 2018년 1월에 국비지원 교육을 이수하며 까먹지 말자란 결심으로 스프링 프로젝트 생성 관련 포스팅을 했습니다.

1년이 지난 지금, 적어도 그때보다 더 많은 공부를 하고난 후, 지금 보니까 너무 형편 없는 포스트 였습니다...

그래서 지금의 지식으로 다시 한 번 스프링 프로젝트 생성 및 초기 설정을 진행 하려고 합니다.


 틀린 부분이 있으면 언제 지적 해주셨으면 좋겠습니다 






저는 이클립스 기반의 STS를 이용 해서 프로젝트를 생성 하겠습니다.

STS설치, JDK&Maven 설치 및 설정은 제가 작성한 포스트를 따라 해주시면 됩니다.




1-1. STS 설치는 아래 링크에서 필요한 버전을 다운 받아주세요, 저는 3.9.6 버전을 사용 설치 하였습니다.

https://spring.io/tools3/sts/legacy


1-2. JDK 다운 및 환경 변수 설정

https://gabrielyj.tistory.com/162?category=629044


1-3. Maven 다운 및 환경 변수 설정

https://gabrielyj.tistory.com/161?category=735500






모든 준비가 완료되었습니다. 바로 스프링 프로젝트 생성을 진행 하겠습니다. 

2-1. 이클립스 좌측 상단 File -> New -> spring 검색 후 Spring Legacy Project를 선택 해주세요.







2-2. 프로젝트 이름을 입력 한뒤, Templates 에서는 'Spring MVC Project'를 선택 하신다음, Configure tmeplates 에 들어가주세요.

저는 프로젝트를 2개 진행 할 수 있는 상황을 고려하여 Maven Repository 설치 경로를 local 로 잡겠습니다.






2-3. 설치된 Maven 폴더에 있는 setting.xml 파일을 열고, 그 안에 있는 <localRepository> 경로를 수정 합니다.

사용자가 원하는 경로를 설정 하실 수 있고, 그냥 default를 사용 하고 싶으시면 그대로 놔두고 바로 2.6 을 진행 해주세요.








2-4. Maven -> Installations -> Add 를 선택해서, 그림(2-4-2) 처럼 메이븐 설치 경로를 지정 해줍니다.



(그림 : 2-4-1)


(그림 : 2-4-2)







2-5. Maven -> User Settings -> Browse 를 선택해서, 2-3에서 수정한 setting.xml 을 선택 합니다.

그러면 자동으로 아래  Local Repository 가 세팅됩니다.

그리고 Apply and Close 를 하시고 Next를 합니다.


(그림 : 2-5-1)






2-6. 마지막으로 패키지 이름을 정해줍니다.

저는 보통 com.프로젝트.모듈.패키지 이런식으로 네이밍을 합니다.







2.7 생성된 프로젝트에서 맨 아래에 있는 pom.xml 파일을 열어서 스프링, 자바, 메이븐 버전 설정을 해야 합니다.





<Properties> 

<java-version> 은 현재 등록된 jdk 버전을 입력 해주시면 됩니다.

<org.springframework-version> 은 사용하고 싶은 스프링 버전을 입력 해주시면 됩니다.

하지만 스프링 버전별로 최소 요구 자바 버전이 다르고 잘 못된 버전을 입력 하시면 에러가 발생하니 주의 해주세요!


<plugin>

<version> 설치된 메이븐의 버전

<source> <target> 설치된 자바의 버전을 입력 해주시면 됩니다.






이번 포스트에서는 pom.xml 까지만 설정 하고 

그 다음 포스트에서 web.xml 과 servlet-context.xml 등 다른 내용을 진행 하겠습니다.


처음 스프링 프로젝트를 생성한 다음 pom.xml 에 있는 Maven 버전을 수정 해야 합니다.

cmd 창에서 mvn -v 명령어를 입력 하시면 아래와 설치된 해당 maven의 정보가 출력 됩니다.










pom.xml 파일에 입력된 내용 중 <version>에 설치된 maven 의 버젼을 입력 해주시고,

그 아래 <source> 와 <target>에는 설치된 자바 버젼을 입력 해주시면 됩니다.







기존에는 일반 적인 자바SE 를 설치하고 자바 환경 변수를 설정 하였습니다.

하지만 앞으로 유료화 이슈로 인해서 저는 openjdk 를 이용해서 포스팅 해보려고 합니다.


https://github.com/ojdkbuild/ojdkbuild


아래 파일 중 msi 파일을 다운 하신 뒤 인스톨 하거나,

zip파일을 다운 하신 뒤 이용 하실 드라이브에 붙여넣어 주세요.












아래 부터는 인스톨창 입니다.

특별한 설정 사항이 없으면 next 및 install을 눌러 주세요,









openjdk는 설치 후 따로 환경 변수를 설정하지 않아도 자동으로 등록 되었습니다.

근데 그냥 쓰기에는 너무 불안하고, 혹시 기존에 사용하던 jdk 와 충돌이 날 수도 있으니

자바 환경 변수를 설정 하였습니다.





내 컴퓨터 -> 우클릭 >좌측 '고급 시스템 설정' -> 고급 '환경 변수'

그 다음 아래처럼 설정 해주시면 됩니다.

JAVA_HOME의 변수 값은 openjdk 의 다운로드 경로를 입력 하시면 되고,

환경 변수 편집에는 '%JAVA_HOME%\bin' 을 추가 하시면 됩니다.


그리고 cmd 창에서 'java -version' 명령어를 입력하시면

맨 아래 사진과 같이 설치된 자바 버젼이 표시 됩니다.






###########사진이 짤렸습니다############

1. JAVA_HOME 

2. Path + ' ;%JAVA_HOME%\bin '

3. CLASSPATH = %JAVA_HOME%\lib





웹 페이지 사용자는 배터리 절약, 개인 정보 보호 등을 이유로

자바스크립트 사용을 비활성화 해 놓는 경우가 있습니다.

따로 설정하지 않았을때 default 값으로 js 사용이 비활성화 되어있는 경우도 있습니다.


그런 상황에서 자바 스크립트 활성화를 요청하기 위해 사용되는 태그가 <noscript> ~ </noscript> 입니다.


자바 스크립트를 사용하지 않는 사용자에게 메세지를 보내세요.(쪽지 메세지가 아닙니다)



1
2
3
4
5
6
7
8
<noscript>
    <div>
        <h4>Warning!</h4>
        <p>
            You need to have enabled to use this site.
        </p>
    </div>
</noscript>
cs


for문을 이용하여 1부터 100까지 합을 구했습니다.



1
2
3
4
5
6
7
8
9
10
11
12
public class Sum1to100 {
 
    public static void main(String[] args) {
        int sum = 0;
        for(int i=1; i<=100; i++) {
            System.out.println(sum + " + " + i + " = " + (sum+i));
            sum += i;
        }
        System.out.println(sum);
    }
 
}
cs





결과 : 



페이지가 로드될때 넘어 오는 매개변수로 select박스의 selected를 설정하고 싶었습니다.


eq(인덱스) 와 attr()속성을 이용하니 쉽게 설정 할 수 있었어요!


아래 설렉터에 위치한 내용은, postType이란 id를 참조 하고 그 자식인 option을 더 참조 합니다.

eq(인덱스)를 이용하여 상세 설정 하고 싶은 부분을 입력 하면 됩니다.

그리고 attr 메소드를 이용하여 선택된 option에 'sealected' , 'selected'를 추가 해줍니다.


$("#postType option:eq(0)").attr('selected', 'selected');


이 내용을 html 코드로 하면 이렇습니다.





$(document).ready(function() {
       var test = "firstType"

	if(test =="firstType") {
		$("#postType option:eq(0)").attr('selected', 'selected');
	} else if(test =="secondType") {
		$("#postType option:eq(1)").attr('selected', 'selected');
	} else if(test =="thirdType") {
		$("#postType option:eq(2)").attr('selected', 'selected');
	}
});




JDBC(Java DataBase Connectivity) 와 ODBC(Open DataBase Connectivity) 의

 차이를 단순하게 말하자면,


 JDBC 는 말 그대로, 자바로 데이타 베이스를 관리할 수 있게 해주는 인터페이스 입니다.

 얘는 해당 업체(ex. MySQL, MariaDB, pgSQL)같이 다른 업체 DB는 각각의 JDBC를

다운 받아서 사용 해야 합니다.

 ODBC 는 여러 종류의 응용 프로그램에서 데이터 베이스를 관리할 수 있게 해주는 표준 개방형 인터페이스 입니다. 상대적으로 ODBC 가 JDBC 보다 좀 더 큰 범주입니다.


※ 해당 내용은 공부 후 더 자세히 올리겠습니다!

정보처리기사 / 정보처리산업기사 실기시험 알고리즘의

Section002, 1부터 100까지 부호 교차합입니다.

변수 j는 이해하기 쉽게 sum으로 사용 하였습니다.



Section002.java

public class Section002 {

	public static void main(String[] args) {
		int i = 0;
		int sum = 0;	// 합을 저장하는 변수
		int sw = 0;		// 부호 변경을 위한 스위치

		for (i = 1; i <= 100; i++) {
			if (sw == 0) {
				sum = sum + i;
				sw = 1;		// +였으니 -로(0->1)
			} else {
				sum = sum - i;
				sw = 0;		// -였으니 +로(1->0)
			}
		}
		System.out.println("결과 값 : " + sum);
	}
}



실행화면


결과 값 : -50


정보처리기사 / 정보처리산업기사 실기시험 알고리즘의

Section001, 1부터 100까지 합입니다.

변수 j는 이해하기 쉽게 sum으로 사용 하였습니다.



Section001.java

public class Section001 {

	public static void main(String[] args) {
		int i = 0;
		int sum = 0;	// j 대신 사용
		
		for(i=1; i<=100; i++) {
			sum = sum + i;
			//System.out.println(i + "번째 합 = " + sum);
		}
		System.out.println("1부터 100까지 합 = " + sum);
	}
}



실행화면


5050


+ Recent posts