spring reference 1.2.2 - [한글PDF]

Posted 2005. 9. 9. 10:27 by alice201405
흠.. 어렵다..ㅠㅠ

다운로드

WebLogic 8.1 설치 및 개발 문서

Posted 2005. 9. 7. 14:07 by alice201405
웹로직 8.1 릴리즈 노트
다운로드

웹로직 8.1 설치가이드
unix / windows

웹로직 8.1 개발 Tutorial 01 - Domain 및 Server 생성
다운로드

웹로직 8.1 개발 Tutorial 02 - DB(Point_Base) Start
다운로드

웹로직 8.1 개발 Tutorial 03 - 리소스 설정(JDBC,JMS등)
다운로드

웹로직 8.1 개발 Tutorial 04 - Development Mode로 사용하기
다운로드

웹로직 8.1 개발 Tutorial 05 - MedRec 프로젝트 디렉토리 생성
다운로드

웹로직 8.1 개발 Tutorial 06 - WebLogic Source 디렉토리 구조
다운로드

웹로직 8.1 개발 Tutorial 07 - Split Development Directory를 사용한 App 컴파일
다운로드

웹로직 8.1 개발 Tutorial 08 - Web Application의 DD
다운로드

웹로직 8.1 개발 Tutorial 09 - 개발환경에서 MedRec 디플로이
다운로드

웹로직 8.1 개발 Tutorial 10 - Web Services에 Stateless Session EJB 사용
다운로드

웹로직 8.1 개발 Tutorial 11 - Client에서 Web Services호출
다운로드

웹로직 8.1 개발 Tutorial 12 - MedRec 프로젝트의 컴파일
다운로드

웹로직 8.1 개발 Tutorial 13 - 분산 환경을 위한 MedRec의 패키징
다운로드

웹로직 8.1 개발 Tutorial 14 - Production환경으로 MedRec 패키지 Deploy
다운로드

웹로직 8.1 개발 Tutorial 15 - 어드민 콘솔을 이용한 애플리케이션관련 보안처리
다운로드

웹로직 8.1 개발 Tutorial 16 - 어드민 콘솔을 이용한 EJB 보안처리
다운로드

웹로직 8.1 개발 Tutorial 17 - 보안 처리를 위한 Copying과 Reinitializing
다운로드

웹로직 8.1 개발 Tutorial 18 - MedRec애플리케이션의 Re-Deploy
다운로드

웹로직 8.1 개발 Tutorial 19 - MedRec 애플리케이션의 클러스터링
다운로드

웹로직 8.1 JDBC 설정
다운로드

웹로직 8.1 DB Refresh(Oracle)
다운로드

웹로직 8.1 WebApplication 디플로이
다운로드

웹로직 8.1 JDBC Connection Pool의 monitoring
다운로드

한번에 싹~ 다받기
다운로드

startWebLogic.cmd 의 웹로직 설정

Posted 2005. 9. 7. 11:21 by alice201405
startWebLogic.cmd 파일은 웹로직 서버를 실행하기 위한 배치파일로서 실행할때 반영되는 중요한 환경 변수 값이 있다. 여러 환경 변수중 PRODUCTION_MODE 값을 false 로 설정해야지만 서블릿이나 jsp가 수정되었을때 자동으로 수정된 값을 적용할 수 있게 된다.

PRODUCTION_MODE 값을 지정하지 않게 되면 서블릿이나 jsp가 변경되었을 경우 웹로직 서버를 재시작 할 경우에만 변경된 내용이 적용된다



개발시에는 이 값을 false 로 하고, 개발 완료시에는 이 값을 true로 지정...!!





@ECHO OFF

@REM WARNING: This file is created by the Configuration Wizard.
@REM Any changes to this script may be lost when adding extensions to this configuration.

SETLOCAL

@REM *************************************************************************
@REM This script is used to start WebLogic Server for the domain in the
@REM current working directory. This script simply sets the SERVER_NAME
@REM variable and starts server.
@REM
@REM To create your own start script for your domain, all you need to set is
@REM SERVER_NAME, then starts the server.
@REM
@REM Other variables that startWLS takes are:
@REM
@REM WLS_USER - cleartext user for server startup
@REM WLS_PW - cleartext password for server startup
@REM PRODUCTION_MODE - true for production mode servers, false for
@REM development mode
@REM JAVA_OPTIONS - Java command-line options for running the server. (These
@REM will be tagged on to the end of the JAVA_VM and MEM_ARGS)
@REM JAVA_VM - The java arg specifying the VM to run. (i.e. -server,
@REM -hotspot, etc.)
@REM MEM_ARGS - The variable to override the standard memory arguments
@REM passed to java
@REM
@REM For additional information, refer to the WebLogic Server Administration
@REM Console Online Help(http:\\e-docs.bea.com\wls\docs81\ConsoleHelp\startstop.html)
@REM *************************************************************************

@REM Initialize the common environment.

set WL_HOME=C:\bea\weblogic81
for %%i in ("%WL_HOME%") do set WL_HOME=%%~fsi





set PRODUCTION_MODE=false






set JAVA_VENDOR=Sun

set JAVA_HOME=C:\bea\jdk141_05
for %%i in ("%JAVA_HOME%") do set JAVA_HOME=%%~fsi

@REM Call commEnv here AFTER setting the java_vendor to get common environmental settings.

call "%WL_HOME%\common\bin\commEnv.cmd"

@REM Set SERVER_NAME to the name of the server you wish to start up.

set SERVER_NAME=myserver

set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar;%CLASSPATH%

@REM Call WebLogic Server

echo .
echo CLASSPATH=%CLASSPATH%
echo .
echo PATH=%PATH%
echo .
echo ***************************************************
echo * To start WebLogic Server, use a username and *
echo * password assigned to an admin-level user. For *
echo * server administration, use the WebLogic Server *
echo * console at http:\\[hostname]:[port]\console *
echo ***************************************************

%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server



ENDLOCAL

[패턴 정보] Singleton 패턴

Posted 2005. 9. 7. 09:49 by alice201405
Singleton 패턴 - 한빛네트워크 에서 발췌합니다.
저자 : 김대곤


디자인 패턴은 매력적인 주제이다. 그리고 어려운 주제이다. 누구나 패턴을 공부하다보면,

반드시 만나게 되는 책이 있다. 이 책의 두 가지 문제점은 영어로 된 원서라는 것과 자바

예제를 제공하고 있지 않다는 점이다. 하지만 디자인 패턴을 설명한 책 중에서 아직도 가

장 널리 사용되어지고, 사랑받고 있다. 많은 사람들이 예상하듯이 이 책은 Gang of Four(

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)가 쓴 "Design Patterns:

Elements of Reusable Object-Oriented Software(1995), Addison-Wesley"이다.

내가 이 책을 처음 본 것이 몇 년 전이고, 그 이후에도 한 번 이상은 본 것 같은데.

아직도 이해하지 못하는 부분들이 많다. 특히 실제로 사용하지 않았던 패턴들의 설명은

보고 돌아서면 도무지 생각이 나지 않는다.


하지만, 지금은 몇몇 패턴들은 거의 외우고 있고, 문제에 부딪혔을 때 사용할 수 있을 정

도는 되었다. 아니 멋드러지게 변형해서 사용하기도 하고, 주로 몇 개의 패턴을 연결해서

사용한다. 나머지 패턴에 대해서 이해하려고 안달하지도 않고, 적어도 나에겐 쓸모없는

패턴이라고 생각하고 볼 생각도 하지 않는다. 아주 가끔 각 장의 처음 몇 줄을 읽어보긴

하지만. 이러한 현상은 패턴의 정의에서 보면 당연해 보인다. 정의에 따르면, 패턴은 "특

정한 컨텍스트에서 자주 발생하는 문제에 대한 해결책"이다. 특정한 컨텍스트을 만나지

않으면, 그 컨텍스트에 정의된 패턴은 알아야 될 필요가 없다. 그리고만나는 컨텍스트는

자주 만나기 때문에 항상 몇몇 패턴들만 사용한다. 내년에는 Visitor 패턴을 공부해야 할

것이다. 내년에는 컴파일러를 만들어 볼 생각하고 있다. Visitor 패턴은컴파일러를 만들

때 유용한 패턴이다.


짧은 경험과 패턴을 어려운 하는 주위 사람들을 볼 때 패턴이 어려운 주요 이유는 해결책

을 이해하지 못해서가 아니라 컨텍스트와 문제를이해하지 못해서 이다. 왜 패턴을 써야하

는지, 언제 패턴을 써야 하는지 모르는 것이다. 책을봐도 여전히 이해가 되지 않는 것은

패턴을 설명하고 있는 대부분의 자료들이 패턴을 모두디자인 단계에서 다루고 있기 때문

이다. 디자인 패턴이 디자인 단계에서 쓰이는 것은 분명하다. 문제는 패턴이 정의된 컨텍

스트와 해결하고자 하는 문제는 코드 단계에서 발생하는 것이고, 그것을 코드 단계 전에

해결하려고 하는 것이 디자인 패턴이기 때문이다. 결국 문제와컨텍스트는 디자인 단계에

서 보면 대단히 모호해 보이고, 문제 같아 보이지도 않는다는 것이다. 실제로 패턴을 적

용하면 디자인 클래스 다이어그램은 더욱 복잡해진다.


필자는 일련의 패턴에 관한 기사들을 쓸 생각이다. 코드 단계에서 패턴을 살펴보고, 패턴

을 쓰면 좋은 점은 무엇이고, 패턴을 언제 써야하는지를 보여주는 것을 목표로 해서, 필요

하다면 디자인 단계에서 해결책들이 어떻게 보이지는 살펴보자.

Singleton 패턴은 가장 간단하면서도, 가장 많이, GUI를 사용한다면 반드시 사용해야 하는


패턴이다. 다른 패턴에서도 자주 Singleton 패턴을 이용하기도 한다. 이 패턴이 왜 필요

한지, 언제 써야하는지 이해하기 어렵다면, Object에 대한 오해에서 비롯된 것이라 믿는다.


Object에 대한 오해

Object는 귀신과 같은 존재이다. "귀신 같다"는 것은 한 번 나타났다 사라지면, 언제 다시

볼 지 알 수 없는, 통제할 수 없는 미지의 세계 속으로 빠져버린다는 말이다. 그러나 많은

사람들은 자신이 원할 때 언제나 꺼내서 쓸 수 있는 지갑 속의 화폐처럼 생각하는 경향이

있다. 다음 예제는 Object를 생성하는 Frame(CreateObject)과 Object를 사용할 Frame(Obje

ctUser)를 나눈 것이다. 목표는 CreateObject에서 생성한 SimpleObject를 ObjectUser에서

보는(찾는) 것이다. 데이타베이스, Object Serialization 등 어떠한 방법을 써도 무방하다.



Object가 같다는 것은 Object가 가진 데이터, attributes가 같다는 뜻이 아니라, Hashcode가

같아야 한다. 아래의 화면에서 보이는 객체는 동일한 클래스의 객체이며, attribute에 같은

값을 가지고 있으나, CreateObject가 생성한 객체는 아니다. 만약 동일한 객체라면

hashcode 가 같을 것이다. 소스의 나머지 부분들은 GUI를 위한 것이고, 각 Frame이 가지고

있는 actionPerformed() 메소드만 보면 된다. 아래는 CreateObject.java의 actionPerformed()

메소드에 있는 소스코드이다. 직접 해결해 보기 바란다. 그러면 나머지는 그냥 이해되리라

믿는다.


String name = inputName.getText();
String value = inputValue.getText();
SimpleObject simple = new SimpleObject(name, value);
tablePanel.update(simple);




[Download Source - 1] : 소스는 패키지를 사용하였음.


Global access 와 Only one instance of a class

Singleton 패턴을 쓰는 목적은 Global access와 하나의 객체만을 생성되도록 강제하는데 있다.

사실 이것은 동전의 양면과 같다. 정확한 표현은 아니지만, 하나의 객체만 있기 때문에

Global access가 가능하기 때문이다. 위의 문제에 대해 심각하게 고민해 봤다면, 이 문제를

해결하기 위해서 소스가 얼마나 더러워(복잡해)지는 알 수 있을 것이다. Singleton 패턴은 귀신

같은 Object를 지갑 속의 화폐로 만들어 준다. 주의할 점은 객체를 새로운 객체를 생성해서 찾을

수는 없다는 것이다. 예를 들면, java.util.Vector에 들어있는 객체를 찾을 때, 모든 attribute가

동일한 값을 가지는 새로운 객체(object)를 만들어서 Vector.contains(object)를 쓸 수 없다는

뜻이다. 새로운 객체를 만드는 순간 그 객체를 전 시스템에서 유일한 객체이고, java.util.Vector에

들어 있는 객체들 중에 하나는 아닌 것이다.

Solutions

Singleton 패턴이

적용된 클래스의 구조는 다음과 같다.



Singleton이 적용된 클래스는 세가지 구조를 갖는다. 첫번째는 자기 자신의 클래스 타입으로 선언된

static 변수를 가진다. 이것은 UML에서 자기 자신과 Association를 갖는 것으로 나타난다. 두 번째는

외부에서 Singleton 클래스의 객체를 생성하지 못하도록 생성자를 private으로 선언한다. 마지막으로

자기 자신의 객체를 반환하는 static method(getInstance())를 제공한다. 꼭 getInstance일 필요도

없고, instance일 필요도 없다. 단지 자기 자신의 객체(static 변수에 저장된 객체)를 반환하는

static method이면 된다. 나머지 구조들은 필요에 따라 만들기도 하고, 없어지기도 한다.


Design Pattern 원서에는 Singleton 패턴을 사용하는 세 가지 방법이 나온다. 위에 설명한 것이 가장

일반적인 방식이다. 두 번째는 static method 대신 instance-side method를 사용하는 것이다. 하지만,

instance-side method는 자바에서 지원하지 않는 것 같고, 다른 프로그램 언어인 Smalltalk에서

지원되는 것으로 알고 있다. 이런 방식을 사용하는 이유는 static를 사용하는 경우, 상속에 제약을

주기 때문이다. 세 번째 방식은 Registry를 사용하는 것으로 가장 유연한 방법이다.

그러나 Registry 역할을 하는 것이 있던가 만들어야 한다.




소스를 보면 알게 되겠지만, Singleton 클래스는 여섯 개 이상의 SimpleObject 객체는 저장하지

못하도록 구현되었다. 그래서 ObjectUser에서는 일곱 번째 이후에 생성된 클래스는 불러서 쓸

수가 없다. 여기서 SimpleObject 객체의 생성을 GUI에서 할 수 없도록 고치면 똑 같은 방식으로

사용자가 일곱 개 이상의 객체를 만드는 것을 제약 수 있다. 만약 이 때 SimpleObject 객체를

하나만 가질 수 있도록 하면, 실제로 SimpleObject가 Singleton이 적용되지 않은 클래스라

하더라도 Singleton처럼 사용할 수 있다. 이런 메카니즘에 Registry를 이용하는 세 번째 방식이다.

하여튼 Singleton 패턴이 시스템이 가질 수 있는 객체 수를 제한할 때, 하나가 아니라 하더라도

언제든지 사용할 수 있다.

[Download Source - 2]


왜 항상 사용되어지지 않는가?

그러면 이런 의문에 부딪히게 된다. "이렇게 중요하고 반드시 필요한 패턴이라면,

내가 아직도 모르고 있었나?" 필자 생각에는 두 가지 이유 때문이다. 하나는 마치 Singleton처럼

행동하는 것을 사용하고 있기 때문이고, 객체를 일종의 함수처럼 사용하기 때문이다.

Singleton처럼 행동하는 것은 데이터베이스를 의미한다. 데이터베이스는 거대한 Singleton이다.

같은 객체를 사용할 수 있도록 해 주진 않지만, 자기자신은 하나이고, 실제 객체는 다르지만,

마치 같은 객체를 사용하고 있는 듯 각 attribute의 값을 동일하게 유지할 수 있도록 한다.

한 객체가 생성되어, 그 값들을 데이터베이스에 저장하면, 필요할 때는 값들을 가지고 다시

객체를 만든다. 그러면 정보의 입장에서 보면 그 객체가 부활한 것이다.

객체를 함수처럼 사용하다는 의미를 살펴보자. 게시판의 리스트를 조회하는 객체를 보면,

그 객체가 하는 일은 데이터베이스 또는 파일에서 정보를 읽어서 화면에 보여주는 역할만

할 뿐이다. 그 객체가 정보를 저장하고 있지 않기 때문에 함수와 같은 역할을 한다는 것이다.

데이터베이스이든 파일이든 Persistence를 제공하는 매카니즘을 사용하지 않고 작은 시스템을

개발해 보면 Singleton 패턴을 이해하는데 도움이 될 것이다.


다른 용도

그렇다고 Singleton 패턴이 전혀 사용되어지지 않는 것은 아니다. 먼저, 성능 향상에 사용된다.

데이터베이스에서 정보를 읽어오는 일은 무거운 작업이다. 한 번 읽어서 계속 사용되는 정보는

데이터베이스에서 읽어서 Singleton 객체가 가지고 있으면 언제든지 누구든지 사용할 수 있다.

두 번째는 데이터베이스에 저장시 Key값을 가져오기 위해 사용된다. 처음에 Max값을 가지고

와서, Key값이 요청될 때마다 값을 증가시키면, Singleton은 오직 하나의 객체가 존재함으로

Key의 유일성이 보장된다.


결어

마치 Singleton패턴이 사양길에 접어든 것처럼 보일지 모르지만, 여전히 유효하고,

간단하면서도 강력한 패턴인 것은 분명하다.

카트리나의 상처...

Posted 2005. 9. 6. 19:19 by alice201405
자연은 역시 인간이 감당하기 힘든거 같아요 ㅠㅠ








빨리 악몽에서 벗어나길 빌어요..



1. 자신의 문제를 모른다.
여자에게 인기가 없는 까닭을 모른다. 이거 중증이다. 먼저 문제를 파악하고, 해결해야 한다.
문제는 재미가 없고 말수가 적으며 시선을 피하고 눈빛 처리가 안되는 경우가 많다.

2. 소심한게 문제.
갑자기 나타나 나랑 사귀어줘요 하는 여자는 없다. 여자는 더 소심하다.
용기있는자가 과연 미녀를 얻을지는 미지수지만, 소심한 자에게는 여자따위는 결코 없다.

3. 말을 못한다.
말 못하는 남자는 외모가 장동건과 원빈을 때려눕히고 춤과 노래가 비를 밟아버릴 정도가 된다면
모르되 그렇지 않으면 절대 선택받을 수 없다. 언변을 익히라.
방법론은 여러가지, 젤 쉬운건 말발이 좋은 친구(여자들에게 인기 좋은 친구다. 욕 잘하고
여자들에게 욕먹는 친구에게 배우지 마라.)를 선택해 자주 다니며 어떤 식으로 말하는지 배우는
거다. 중요한건 흥미유발, 재미난 대화를 이끌어 가는 것이다. 절대 욕은 하지 마라. 건전한 여자
들은 욕하는 남자 경멸한다.

4. 눈을 봐라.
시선을 피하는 남자는 관심이 없어 그런거라 생각한다. 눈을 봐라. 여자의 눈을 보고 표정을 읽
어라. 여자의 마음을 알지 못하면 얻는 것도 없다. 상대의 눈을 보고 그 속에서 상대의 마음을
읽어라. 가슴좀 그만 쳐다봐라. 가슴만 쳐다보면 여자 당황한다.

5. 여자친구 생기면 잘해주겠다.
잘해줄 필요 없다. 그냥 남들만큼만 해라. 여자친구만 생겨봐라 라고 벼르고 있는 인간은 잘
모르겠지만 눈에서 살기가 뿜어져 나온다. 여자들 무서워서 도망간다. 잡히면 큰일날거 같다는
위기의식을 갖게 한다.

6. 여자라는 마음을 비워라.
초보들은 여기서 결정적으로 서투르다. 말을 잘하고 눈을 보고 자신감 가지는 건 좋은데
음흉한 마음을 품는게 눈으로 드러난다. 마치 양을 노리는 늑대의 눈빛같은 그런 강렬한 눈빛이
살기로 뻗어나온다. 여자다 라는 마음을 비우고 여유롭게 상대방과 교감하라.
그러면 서로의 거리가 가까와진다.

7. 이것이 핵심 키 포인트이다.
남자가 되라. 아무리 여자랑 친해져도 친구로서의 벽을 넘지 못하는 인간들이 있다. 그런 이들은
다른 이유가 아닌 남자로서가 아닌 중성적 존재로서의 노력을 했기 때문이다. 어느 순간인가는
자신의 남성적 섹스어필을 아낌없이 뿜어내라. 이것이 남자다! 라는 것에는 여러가지 의견이
있지만, 적절한 상황에서의 결단력, 리드나 스킨십도 그 중 하나일 수 있다. 중요한 것은
타이밍이다. 타이밍에 따라 당락을 결정하는 핵심이 되기 때문이다. 타이밍을 알려면 일단
경험, 둘째로 상대에 대한 파악이다. (치한이 되지는 마라. 상대가 원할때 필요로 할때가
중요하다.)

8. 필요이상으로 친절하지 마라.
친절해야 할 사람은 하나뿐이다. 아무에게나 친절을 베풀면 잠시의 호감도는 높아질 지언정,
정작 호감을 갖고 있는 사람의 마음은 잃을 수도 있다. 연애는 1:1 승부다. (문어발이더라도)
이사람 저사람 다 집적거리고 다니는 사람은 애인 만들기 정말 어렵다.

9. 너무 진지하지 마라.
처음 사귀려는 사람은 너무 진지해서 탈이다. 가볍게 만나고 가볍게 다가서고, 상대가 물러나면
기다려 주고 다가오면 조금 다가서고 해 주는 것이 중요하다. 도망가는데 쫒아가면 스토커 된다.
어깨에 힘을 빼고 적당히 가볍게 만나라. 어느 순간이 되면 진지해져야 할 순간이 온다.
그 때가 될때까지는 진지함을 아껴라.

10. 남자와 여자의 차이를 인지하라.
첫 만남을 소중히 하고 싶다면, 많이 공부하라. 사랑이란 무엇인지, 남녀사이의 갈등은 어떤지.
화성, 금성... 에서 보이는 남녀간의 입장차이는 어떤지..
보통은 그 책은 헤어진 뒤에 읽고 공감을 하는 경향이 있지만, 알아둬서 나쁠 건 없다.
남자 대하듯 여자를 대하면 상호간에 곤란을 겪을 수 있다.

11. 이따위 말들에 얽매이지 마라.
여자친구를 갖고 싶으면 연애를 경험해 보는 것이 제일이다. 솔직히 이런 말 아무리 해줘도
자신이 경험해 보지 못한 사람에게는 단지 공염불이다. 사람과 사람사이에 감정이 오고 가고
눈빛을 읽고 하는 것은 스스로 체득하지 못하면 할 수 없다. 자전거를 타는 것과 마찬가지다.
해 보면 알 수 있지만, 한번도 못해보면 알 수 없다.
자전거를 어떻게 해야 타는가라는 말보다 한번 타보는 것이 100배는 더 효과적이다.

그럼 여자가 많은 곳에 가서 재미난 이야기 많이 하고 연애도 많이 해보기 바란다.
당연하지만, 여자가 없는 곳에선 연애하기 힘들다.



이힛...

PSP - 따뜻하게 손내미는 검은손 ㅡ_ㅡ;;

Posted 2005. 9. 6. 11:29 by alice201405
문서보기

서민들한테는 상당히 따뜻한 천사의 손길이겠지만

손히한테는 피눈물 나게 하는 손길이겠죠...

그래도 손히 돈도 많음서 이정도는 감수해야지 ㅡ_ㅡ^

올해 보고 싶은 영화 다봤다고 생각했는데...

Posted 2005. 9. 6. 09:12 by alice201405
우리 금자씨랑, 동막골 광년이 보믄서 올해 보고픈 영화 다봤다

생각했는데 컥... 나와 버린 이영화...

HIBERNATE - 개성있는 자바를 위한 관계 영속

Posted 2005. 9. 2. 13:39 by alice201405
개성있는 자바라...

문서보기

HIBERNATE 관련 문서

Posted 2005. 9. 2. 13:18 by alice201405
원서로 읽는거 보다 훨씬 이해가 빠른건 역시 내가 영어가 안되기 때문이겠지..ㅡ_ㅡ;;


PDF 문서 다운로드

« PREV : 1 : ··· : 9 : 10 : 11 : 12 : 13 : NEXT »