java로 개발한 application을 배포할때는 jar, war 형태롤 배포하게 된다.


이 둘은 완전히 동일한 형식이나


war는 web application을 배포하는 형식이고


jar는 library나 일반 application을 배포하는 형식이다.


java ARchive:jar 압축은 하나의 application 기능이 가능하도록 java 파일 등을 압축하고 지원해준다. path등의 경로를 유지하기 때문에 jar 파일을 사용하는 사용자들은 각 파일들에 대한 path문제에서 벗어날 수 없다.

예를 들면 ojdbc14.14, servlet-api, jar 등을 들 수있다.


Web ARchive:war 압축은 jar와 달리 웹 어플리케이션을 지원하기 위한 압축 방식이다. 웹 어플리케이션을 지원하기 위해서 war 압축방식은 jsp, servle, gif, html, jar 등을 압축하고 지원해주며, 이는 jar와 같은 맥락으로 servlet context 접근을 위해 관련된 모든 파일들을 패키지화하여 준다는 말이다.


=> servlet context 접근을 위해서는 관련된 모든 파일들을 패키지화하여야 된다.



* jar / war 파일들의 특징


1) 세 가지 모두 압축 파일이다.

2) 구조적인 차이가 없다.

3) 확장자를 바꿔도 문제가 없다.

4) 만들어진 목적이 다르다.

- jar : 자바 클래스 파일들이 주이며, EJB 파일들을 포함한다.

- war : 웹 어플리케이션에 관련된 파일들을 포함한다. (jsp, servlet 파일들)

* 포맷 문자열

 

- 자주 사용하는 것.

: int, longlong(%lld or %I64d)

  char, char*(문자열)

  double

   

cf> %d : 정수 (10진수) }

     %x : 16진수           }=> %i (세가지 혼합)

     %o : 8진수             }

 

cf> 파일의 끝(EOF)까지 입력 받기

: scanf return  이용하기.

            ---------> 성공적으로 입력받은 인자의 개수.

ex> while (scanf("%d %d", &a, &b) == 2)

https://www.acmicpc.net/problem/10951

 

* %[]

- scanf("%[123]", a); => 1,2,3 만 입력받음

- scanf("%[^123]", a); => 1,2,3 빼고 입력받음

 

응용)) scanf("%[^\n]\n", s); => 한줄 전체 입력 받기.

 

char s[111];

int main () {

while (scanf("%[^\n]\n", s)==1) {

printf("%s\n", s);

}

 

 

but, 문제점 )) 줄의 앞과 뒤에 있는 공백을 무시하고 입력을 받게 됩니다.

 

sol)) getchar()

 

char c;

while ((c = getchar()) && c != EOF) {

printf("%c", c);

}

return 0;

 

!!!주의점)) fgets로 해도 가능! (but, '\n' 이것도 입력되기 때문에, 줄바꿈 없애주는 코드를 만들어줘야함.)

 

 

* scanf("%1d", &x);

: %d 앞에 숫자를 넣으면, 그 길이 만큰 입력 받을 수 있다.

???어떻때 필요한가?) 0,1로 이뤄진 인접행렬이 주어진 경우

010101

101011

cf> 인접행렬 이란?

 

* scanf("%10s", s);

: %s의 경우도 개수를 지정해서 입력받을 수 있다.

 

 

 

 

 

 

+ Recent posts