2010의 게시물 표시

Ant 테스크 -mkdir,copy,delete,genkey,signjar,war,tstamp

mkdir  속성  설명  타입  필수 여부  dir  생성할 디렉토리  File  예 copy  속성  설명  타입  필수 여부  file  복사할 파일  File  예  tofile  대상 파일  File  예  todir  대상 디렉토리  File  예  overwrite  대상 파일이 존재하면 덮어쓴다. 디폴트는 false  Boolean  아니오  includeEmptyDirs  빈 디렉토리도 포함해서 복사한다. 디폴트는 true  Boolean  아니오  filtering  true면 프로젝트에 정의된 필터링을 적용하여 복사한다. 기본값은 false다. 하위의 filterset 엘리먼트를 정의하면 이 속성은 무시되고 하위의 filterset 엘리먼트가 실행된다.  Boolean  아니오  <fileset>  복사할 파일들의 집합을 추가한다. todir 속성이 있어야 한다.  하위 엘리먼트  아니오  <filterset>  복사되는 파일 내부에서 필터링을 추가한다.  하위 엘리먼트  아니오  <mapper>  복사되는 파일의 이름을 변경한다.  하위 엘리먼트  아니오 delete  속성  설명  타입  필수 여부  file  삭젲할 파일 이름  File  예  dir  삭제할 디렉토리  File  예  includeEmptyDirs  빈 디렉토리도 삭제할지 여부 지정. 디폴트는 false  Boolean  아니오  <fileset>  삭제할 파일의 집합 추가  하위 엘리먼트  아니오 genkey  속성  설명  타입  필수 여부  alias  키의 별칭  String  예  storepass  키 저장소의 무결성을 위한 비밀번호. 6자리 이상이여야함  String  예  keystore  키 저장소의 위치를 지정한다.  Path  아니오  storetype  키 저장소의 타입  String  아니오  keypass  storepass와 다르다면 개인키의 비밀번호  String  아니오  dname  엔티티를

jsp 안전한 웹 애플리케이션

인증메커니즘 BASIC : 웹 브라우저는 인증창을 통해 사용자명과 비밀번호를 요구하며, 웹 서버에 데이터를 전송한다. DIGEST : 웹 브라우저는 인증창을 통해 사용자명과 비밀번호를 요구하며, 웹서버에 다이제스트 데이터를 전송한다. FROM : 웹 애플리케이션은 브라우저에게 보낸 인증 페이지와 에러 페이지를 제공한다. CLIENT-CERT : 웹 컨테이너는 사용자를 확인하기 위해 SSL을 이용한다. 사용자는 반드시 SSL 인증서를 가지고 있어야 한다.

jsp 서블릿, jsp 라이프사이클

서블릿 1단계: 웹 브라우저의 주소란에 URL을 입력하고 HTTP 요청을 한다. 2단계: 웹 서버는 호출된 서블릿의 정보를 받아서 서블릿이 메모리에 로드되었는지 여부를 확인한다. 3단계: 메모리에 로드되지 않으면, 클래스로더에 의해 서블릿을 메모리에 로드한다. 서블릿 메모리에 이미 로드되어 있으면 6단계로 넘어간다. 4단계: 서블릿 인스턴스를 생성한다. 5단계: init메소드를 호출한다. 6단계: 요청을 처리하기 위한 스레드를 생성후 service메소드를 호출한다. 7,8단계: 스레드로부터 요청에 대한 처리결과를 받아서 웹 브라우저에 HTTP응답을 한다. destroy 메소드는 서블릿 컨테이너에 의해 인스턴스가 소멸전에 호출된다. JSP 1단계: 페이지 번역 2단계: JSP 컴파일 3단계: 클래스로드 4단계: jspInit 메소드 호출 5단계: _jspService 메소드 호출 7단계: jspDestroy 메소드 호출

jsp javamail

Message class abstract String getSubject() - 메일 제목을 리턴한다. Address[] getAllRecipients() - 메일의 모든 수신자 주소를 리턴한다. Folder getFolder() - 메일이 포함된 폴더 객체를 리턴한다. abstract void setSubject(String subject) - 메일 제목을 설정한다. void setFlag(Flags.Flag flag, boolean set) - 메일의 플래그를 설정한다. abstract void setFlages(Flags flag, boolean set) - 메일의 플래그를 설정한다. MimeMessage class MimeMessage(Session session) - 디폴트 MimeMessage 객체를 생성한다. MimeMessage(Session session, InputStream is) - InputStream으로부터 데이터를 읽고, 파싱해서 MimeMessage 객체를 생성한다. void setCountent(Object data, String tyep) - type으로 기술되는 MIME타입의 데이터 Data를 메일의 내용으로 설정한다. void setText(String text) - MIME 타입이 text/plain인 메일 데이터 text를 설정한다. void setText(String text, String charset) - MIME타입이 text/plain이고 문자 세트가 charset인 메일 데이터 text를 설정한다. void setFrom(Address address) - RFC 822의 From 헤더 필드를 설정한다. void setRecipients(Message.RecipientType type, Address[] address) - 메일을 받는 사람의 주소를 설정한다. void setReplyTo(Address[] addresses) - RFC 822의 Reply-To 헤더 필드를 설정한다. void setSentData

jsp tomcat 설정파일 분석

WEB-INF 분석 /WEB-INF/web.xml - 디플로이먼트 디스크립터라고 불리는 파일이다. 이 파일은 자식이 속한 웹 응용프로그램의 구성에 관련된 정보를 가지고 있다. 이 파일은 DTD를 가지고 있으며, DTD에는 50여개의 태그들이 정의되어 있다. /WEB-INF/classes/* - 서블릿과 유틸리티 클래스들이 있는 디렉토리이다. 이 디렉토리에 있는 클래스들은 응용프로그램의 클래스 로더에 의해 메모리로 로드된다. /WEB-INF/lib/*.jar - 서블릿, 빈, 유틸리티 클래스들을 포함하는 JAR 파일들이 포함되어 있고, 이 파일들은 웹 응용프로그램 클래스 로드에 의해 로드된다. server.xml 파일 - 톰캣의 구조와 톰캣 컴포넌트의 초기 구성 정보를 제공하는 역할을 하는 메인 구성 파일이다. server.xml은 XML 파일이기 때문에 XML 파일의 포맷과 문법을 따른다. Server - server.xml 파일의 최상위의 원소로서 톰캣 서버를 정의한다. Server원소는 Logger와 ContextManager 원소를 포함할 수 있다. Logger - 이 원소는 로거 객체를 정의한다. 각 로거 객체는 이름, 로거 객체의 출력물을 저장할 로그 파일, 로그 레벨을 정의하는 verbosityLevel 속성을 가지고 있다. 현재 서블릿을 위한 로거 객체, jsp 파일을 위한 로거 객체, 톰캣 실행 환경을 위한 로거 객체가 있다. 서블릿의 ServletContext의 log() 메소드의 결과물이 저장되는 로그 파일을 기술한다. ContextManager - 구성과 ContextInterceptor, requestInterceptor, Context, Connector의 구조를 정의한다. 디버깅 레벨, webapps, conf, logs의 기본 디렉토리, working 디렉토리 이름 ContextInterceptor - 톰캣의 시작 및 종료 이벤트를 감시한다. RequestInterceptor - 톰캣이 서비스하는 동안에 다양한 사용자의 요청 단계를

java URLConnetion

void connect() - URL로 기술된 리소스에 연결을 설정한다. boolean getAllowUserInteraction() - 사용자 인터랙션이 허용되는지 알아본다. String getContentEncoding() - 헤더에 포함되어 있는 인코딩 필드의 값을 알아본다. int getContentLength() - 헤더의 content_length 필드 값을 알아보낟. String getContentType() - MIME 타입을 알아본다. long getDate() - 헤더의 data 필드 값을 알아본다. InputStream getInputStream() - 커넥션에서 데이터를 읽기 위한 입렭스트림을 얻는다. long getLastModified() - 헤더의 last-modified 필드 값을 얻어온다. OutputStream getOutputStream() - 커넥션에 데이터를 전달하기 위한 출력 스트림을 얻는다. URL getURL() - URLConnenction의 URL을 얻어온다. boolean getUseCaches() - useCaches 필드 값을 얻어온다. static String guessContenttypeFromStream(InputStream is) - 입력 스트림을 이용해서 MIME 타입을 알아본다. static void setDefaltAllowUserInteraction(boolean defaultallowuserinteraction) - 사용자 인터랙션을 허용할 것인지 여부의 디폴트 값을 설정한다. static void setDefaultRequestProperty(String key, String value) - 일반 요청 속성의 디폴트 값을 설정한다. void setDefaultUseChches(boolean defaultusecaches) - 디폴트로 캐쉬를 사용할 것인지 여부를 설정한다. void setDoInput(boolean doinput) - 원격 객체에서 데이터를 읽어올 것인지 여부를 설정한다. v

java File

File File(File parent, String child) - parent 디렉토리의 child라는 파일의 File객체를 생성한다. File(String parent, String child) - parent 디렉토리 패스와 child라는 파일의 File 객체를 생성한다. File(String pathname) - pathname에 해당되는 파일의 File 객체를 생성한다. boolean canRead() - 파일을 읽을 수 있는지 여부를 리턴한다. boolean canWrite() - 파일을 기록할 수 있는지 여부를 리턴한다. boolean createNewFile() - 주어진 파일이 없으면 자동적으로 빈 파일을 생성한다. boolean delete() - 파일이나 디렉토리를 삭제한다. void deleteOnExit() - 자바 가상 머신이 끝날 때 파일을 삭제한다. boolean exists() - 파일이 존재하는지 알아본다. File getAbsoluteFile() - 파일의 절대 패스를 알아본다. String getName() - 파일이나 디렉토리 이름을 리턴한다. String getParent() - 부모 디렉토리를 리턴하다. File getParentFile() - 부모 디렉토리를 File 형태로 리턴한다. String getPath() - 패스를 문자열 형태로 리턴한다. boolean isDirectory() - 디렉토리인지 여부를 리턴한다. boolean isFile() - 파일인지 여부를 리턴한다. boolean isHidden() - 숨겨진 파일인지 여부를 리턴한다. long length() - 파일 크기를 리턴한다. Stringp[] list() - 디렉토리인 경우 포함되어 있는 파일과 디렉토리 이름을 배열 형태로 리턴한다. File[] listFiles() - 디렉토리인 경우 포함되어 있는 파일과 디렉토리를 File배열 형태로 리턴한다. boolean mkdir() - 디렉토리를 만든다. boolean renameTo(File

java 입출력2

FileInputStream FileInputStream(File file) - File 객체를 이용해서 FileInputStream 객체를 새성한다. FileInputStream(FileDescriptor fdObj)  - FileDescriptor 객체를 이용해서 FileInputStream 객체를 생성한다. FileInputStream(String name) - 파일 이름을 이용해서 FileInputStream 객체를 생성한다. void close() - 스트림을 닫는다. int read() - 한 바이트를 읽어서 리턴한다. int read(byte[] b, int off, int len) - len개의 바이트를 읽어서 배열 b[off]에서부터 저장한다. 리턴 값은 읽은 바이트 수이다. int read(byte[] b) - 배열의 크기만큼의 바이트를 읽는다. 리턴 값은 읽은 바이트 수이다. FileOutputStream FileOutputSteam(File file) - File 객체를 이용해서 FileOutputStream객체를 생성한다. FileOutputStream(FileDescriptor fdObj) - FileDescriptor 객체를 이용해서 FileOutputStream 객체를 생성한다. FileOutputStream(Stringn name, boolean append) - 파일 이름을 이용해서 FileOutputStream 객체를 생성한다. 생성된 객체는 append값에 따라 기존 파일에 내용을 추가할 것인지, 아닌지를 결정한다. append가 false 이면 기존 내용은 삭제하고 새로운 내용이 기록된다. FileOutputStream(String name) - 디폴트로 append가 false인 FileOutputStream 객체를 생성한다. void close() - 스트림을 닫는다. void write(byte[] b, int off, int len) - 배열 b[off]에서부터 len개의 바이트를 출력한다. void write(by

jsp JSTL

주의사항 1. 태그 이름과 문법 TLD에는 속성이 필수인지 옵션 사항인지, 태크가 몸체를 가질 수 있는지, 가진다면 그 안에 들어갈 수 있는 하위 태그는 무었이 있는지, 태그 안에 들어가는 속성 타입은 어떻게 되는지, 속성에 표현식을 쓸 수 있는지 아니면 그냥 문자열만 써야 하는지 등   2. 라이브러리 URI taglib지시자에 바로 이 URI값을 사용합니다. 컨테이너는 이 값으로 웹 어플리케이션에 있는 여러 TLD파일 가운데서 정확한 것으로 찾아갑니다.   TLD <tlib-version></tlib-version> 태그 라이프러리 버전을 선언하는 곳 <short-name></short-name> <function> <name></name> <function-class></function-class> <function-signature></function-signature> </function> <uri></uri> taglib지시자에서 사용할 자신을 나타내는 유일한 이름   <tag> <description></description> <name></name> 태그안에 쓸 이름 <tag-class></tag-class> jsp에서 태그를 사용한 경우 컨테이너가 호출할 클래스 <body-content></body-content> 태그의 몸체 empty : 몸체 없음, scriptless :스크립팅은 올 수 없음, tagdependent : 문자를 무조건 텍스트로 취급, JSP : jsp 안에 들어 갈 수 있ㄴ은 것이라면 무엇이든지 가능. <attribute> 태그의 속성이 있다면 속성을 정의 하는 곳 <name>&

보안과 암호학의 모든것

1. 비밀키 암호화 1.1 자물쇠와 열쇠 암호화란, 키를 모르고는 절대 비밀 메시지를 알아 낼 수 없는 자물쇠와 그 자물쇠를 푸는 키 둘 다를 의미한다. 암호 사용자란, 메시지의 원래 의미를 숨기려고 암호를 사용하는 사람들이다. 1.2 치환법과 시저암호 암호: 어떤 문장을 암호화 하거나 복호화 하는 방법이다. 평문: 암호화되지 않는 문장 암호문: 암호화된 문장 암호화: 평문을 암호문으로 바꾸는 과정 복호화: 암호문을 평문으로 바꾸는 과정 1.7 기밀성은 비밀키를 공유한 사람들만 동일한 비밀키로 암호화한 파일을 복호화할 수 있다는 것에 대한 보증이다. 인증은 상대방의 신원에 대한 보증이다. 무결성: 파일이 전송도중에 변경되지 않았다는 것에 대한 보증 MAC (Message Authentication Code) 부인방지: 메시지를 보내는 사람이 파일을 보내지 않고도 파일을 보냈다고 부인할 수 없다는 것에 대한 보증이다. 1.8 비밀키 교환의 문제점들 공개키 암호 알고리즘 Diffie - Hellman - Merkle 키 교환법 비대칭키 : 암호키와 복호화 키 분리 2.10 공개키를 사용하면서 얻는 기밀성 공개키로 암호화된 메시지는 공개키에 관계된 개인키로만 복호화할 수 있다. 공개키 알고리즘의 아이디어는 해커가 공개키로 복호화하는 것이 불가능하며, 개인키를 알아내기도 힘들다는 것이다. 공개키는 숨길 필요가 없고, 분배하기 편하기 때문에 비밀키 알고리즘의 방법보다 키 분배 문제가 쉽게 해결된다. 2.11 공개키를 만드는 수학적 트릭 공개키 암호 알고리즘은 곱셈에 대한 인버스라는 간단한 수학적 개념을 토대로 만들어진다. 대부분의 공개키 암호 시스템은 역으로 계산하는 것이 어렵다는 것을 이용하여 보안성을 강화 시킨다. 2.12 개인키를 사용하여 전자 서명하기 개인키로 암호화 하는 것은 인증, 무결성, 부인 방지 기능을 제공해 준다. RSA의 경우 개인키로 암호화하는 것은 '서명'과 같고, 공개키로 암호화 하는 것은 '서명 확인'과 같다.

java 입출력

1.스트림 바이트, 숫자 - 바이트 스트림 문자, 텍스트 - 문자 스트림 바이트 입출력 InputStream -> Java program -> OutputStream 문자 입출력 Reader ->Java program ->Writer 데이터 싱크 스트림 - 데이터를 근원지에서 직접 읽거나, 목적지에 기록하는 클래스들 데이터 프로세싱 스트림 - 다른 스트림을 이용해서 중간에서 어떤 작업을 수행하는 클래스들 InputStream 추상 클래스 바이트 입력스트림을 위한 가상의 상위 클래스로서 System 클래스의 in 멤버 필드가 InputStream 타입이다. int read() - 입력 스트립에서 한 바이트를 읽어서 리턴한다. 일어오는 값은 바이트인데 리턴 타입은 int 타입으로 선언되어 있다. 읽어온 값은 0~255사이의 값, 더 읽은 값이 없는 경우 -1을 리턴한다. int read(byte[] b, int off, int len) - 입력 스트림에서 len 개의 바이트를 일어서 바이트 배열 b에 저장한다. 배열 b의 off 인덱스에서부터 저장한다. 즉 첫 번째 바이트를 읽어서 b[off]에 저장한다. 더이상 읽을 값이 없는 경우 -1을 리턴한다. int read(byte[] b) - 배열의 크기만큼 읽어온다. 리턴 값은 읽은 바이트 수이다. 더 이상 읽을 값이 없는 경우에는 -1을 리턴한다. PrintStream 클래스 PrintStream(OutputStream out, boolean autoFlush) - PrintStream 객체를 생성한다. autoFlush 값이 true이면 println() 메소드가 호출되거나, print("\n")이 호출되면 바이트 버퍼를 자동적으로 플러쉬한다. PrintStream(OutputSteam out) - autoFlush가 false인 PrintStream객체를 생성한다. void close() - 스트림을 닫는다. void flush() - 버퍼 내용을 플러쉬한다. void p

jsp HttpServletResponse

void addCookie(Cookie cookie) - 응답에 쿠키를 추가한다. boolean containsHeader(String name) - 응답 헤더에 주어진 필드가 포함되었는지 여부를 알려준다. void sendError(int sc) - 클라이언트에 상태 코드와 디폴트 메시지를 전송한다. void sendError(int sc, String msg) - 클라이언트에 상태 코드와 메시지를 전송한다. String encodeRedirectURL(String url) - URL을 인코딩해준다. void setHeader(String name, String value) - 응답 헤더에 필드와 값을 추가한다. void setIntHeader(String name, int value) - 헤더 필드에 주어진 이름과 정수 값을 설정한다. void setStatus(int sc) - 응답에 상태 코드를 설정한다.

jsp ServletResponse

void flushBuffer() - 버퍼에 있는 내용을 클라이언트에 전송한다. int getBufferSize() - 응답에 사용되는 버퍼의 크기를 알아본다. String getCharacterEncoding() - 응답에 사용된 문자 세트의 인코딩을 리턴한다. Locale getLocale() - 응답에 사용된 로케일을 리턴한다. ServletOutputStream getOutputStream() - 응답에 바이너리 데이터를 전송하기 위해 출력 스트림을 얻는다. PrintWriter getWriter() - 응답에 문자 데이터를 전송하기 위해 PrintWriter를 얻는다. boolean isCommitted() - 응답이 committed되었는지 여부를 리턴한다. void reset() - 버퍼에 있는 데이터를 지운다. void setBufferSize(int size) - 버퍼 크기를 size로 지정한다. void setContentLength(int len) - 클라이언트로 전달되는 내용의 크기를 len으로 설정한다. void setContentType(String type) - 클라이언트로 전달되는 내용의 MIME타입을 설정한다. void setLocale(Locale loc) - 로케일을 설정한다.

jsp HttpServletRequest

String getAuthType() - 서버가 사용하는 인증 이름을 리턴한다. Cookie[] getCookies() - 브라우저가 요청과 전달한 쿠키들을 얻어온다. String getHeader(String name) - 주어진 이름의 요청 헤더 값을 얻어온다. Enumeration getHeaderNames() - 요청에 포함된 모든 헤더 이름들을 얻어 온다. String getMethod() - HTTP의 명령어 이름을 얻어온다. String getPathInfo() - URL에서 추가적인 패스 정보를 얻어온다. String getPathTranslated() - 서블릿 이름에서부터 쿼리 스트링전까지의 추가적인 패스 정보를 얻는다. String getQueryString() - 쿼리 스트링을 얻어온다. String getRemoteUser() - HTTP 인증을 통해 로그인 한 사용자의 이름을 얻어온다. String getRequestedSessionId() - 클라이인트의 세션 ID를 얻어온다. String getRequestURI() - URI 값을 얻어온다. HttpSession getSession() - 현재 세션을 리턴한다. HttpSession getSession(boolean create) - 현재 세션을 리턴하거나, 없는 경우에 create가 true이면 새로운 세션을 생성한다. boolean isRequestedSessionValid() - 세션이 유효한가를 알아본다.

jsp ServletRequest

Object getAttribute(String name) - 주어진 이름의 어프리뷰트를 얻어온다. 설정된 어트리뷰트가 없으면 null 값을 리턴한다. Enumeration getAttributeNames() - 설정된 모든 어트리뷰터의 이름을 리턴한다. void removeAttribute(String name) - 주어진 이름의 어트리뷰트를ㄹ 제거한다. void setAttribute(String name, Object o) - 객체를 주어진 이름으로 어트리뷰트에 등록한다. RequestDispacher getRequestDispatcher(String path) - 주어진 패스로 클라이언트의 요청을 전달할 RequestDispatcher를 얻어온다.   int getContentLength() - 클라이언트 요청의 바디(body)부분의 길이를 바이트 단위로 리턴한다. 길이를 알 수 없으면 -1을 리턴한다. String getContentType() - 클라이언트 요청의 바디 부분의 MIME 타입을 기술한다. String getParameter(String name) - 클라이언트의 요청에 포함되어 있는 주어진 이름의 파라메터 값을 리턴한다. 값이 없을 경우에는 null을 리턴한다. String[] getParameterValues(String name) - 주어진 이름의 파라메터 값을 모두 리턴한다. 동일한 이름에 여러 개의 값이 있는 경우에 사용된다. ServletInputStream getInputStream() - 클라이언트 요청의 바디에 있는 바이너리 데이터를 읽기 위한 입력 스트림을 리턴한다. BufferedReader getReader() - 클라이언트 요청의 바디에 있는 문자 데이터를 읽기 위한 BufferedReader를 리턴한다. String getCharacterEncoding() - 문자 데이터의 인코딩을 리턴한다. Locale getLocale() - 클라이언트가 받을 수 있는 가장 적당

Collection

Collection: 가장 상위 인터페이스이다. Set : 중복을 허용하지 않는 집합을 처리하기 위한 인터페이스이다. SortedSet : 오름차순을 갖는 Set 인터페이스이다. List : 순서가 있는 집합을 처리하기 위한 인터페이스이기 때문에 인덱스가 있어 위치를 지정하여 값을 찾을 수 있다. 중복을 허용하며, List 인터페이스를 상속받는 클래스 중에 가장 많이 사용하는 것으로 Vector가 있다. Queue : 여러 개의 객체를 처리하기 전에 담아서 처리할 때 사용하기 위한 인터페이스이다. 기본적으로 FIFO를 따른다. Map : Map은 키와 값의 쌍으로 구성된 객체의 집합을 처리하기 위한 인터페이스이다. 이 객체는 중복되는 키를 허용하지 않는다. SortedMap : 키를 오름차순으로 정렬하는 Map 인터페이스이다. Set HashSet : 데이터를 해쉬 테이블에 담는 클래스로 순서 없이 저장된다. TreeSet : red-black이라는 트리에 데이터를 담는다. 값에 따라서 순서가 정해진다. HashSet보다 성능상 느리다. 데이터를 담으면서 동시에 정렬할 때 유용하다. LinkedHashSet : 해쉬 테이블에 데이터를 담는데, 저장된 순서에 따라서 순서가 결정된다. List Vector : 크기를 객체 생성시 지정할 필요가 없는 배열 클래스이다. ArrayList : Vector와 비슷하지만, 동기화 처리가 되어 있지 않다. LinkedList : ArrayList와 동일 하지만, Queue 인터페이스를 구현했기 때문에 FIFO큐 작업을 수행한다. Map Hashtable : 데이터를 해쉬 테이블에 담는 클래스이다. 내부에서 관리하는 해쉬 테이블 객체가 동기화되어 있으므로, 동기화가 필요한 부분에서는 이 클래스를 사용하기 바란다. TreeMap : red-black 트리에 데이터를 담는다. TreeSet과 다른 점은 키에 의해서 순서가 정해진다는 것이다. LinkedHashMap : HashMap과 거의 동일하며 이중 연결 리스트라는 방식을 사

윈도우 도스 기본 명령어

리눅스를 공부하니 윈도우가 덩달아 궁금하기 시작했다. 특히 GVIM을 쓰면서.. 더더욱. 커맨드 라인에서 help명령어를 쳐봤다. 흠..굉장히 많아서 파일로 만들기로 했다. 리눅스에서라면 help > 1.txt 하면 되는데 윈도우에서도 될까? 실행해 보니까 된다.. 흠 신기하군.. 다음에 파이프도 해봐야겠다 라는 맘을 먹었지만 일단 구지 필요 없으니까. 특정 명령어에 대한 자세한 내용이 필요하면 HELP 명령어 이름을 입력하십시오. ASSOC    파일 확장명 연결을 보여주거나 수정합니다. AT       명령어와 프로그램의 실행을 스케줄합니다. ATTRIB   파일 속성을 표시하거나 바꿉니다. BREAK    확장된 CTRL+C 검사를 설정하거나 지웁니다. CACLS    파일의 액세스 컨트롤 목록(ACL)을 표시하거나 수정합니다. CALL     한 일괄 프로그램에서 다른 일괄 프로그램을 호출합니다. CD       현재 디렉터리 이름을 보여주거나 바꿉니다. CHCP     활성화된 코드 페이지의 번호를 표시하거나 설정합니다. CHDIR    현재 디렉터리 이름을 보여주거나 바꿉니다. CHKDSK   디스크를 검사하고 상태 보고서를 표시합니다. CHKNTFS  부팅하는 동안 디스크 확인을 화면에 표시하거나 변경합니다. CLS      화면을 지웁니다. CMD      Windows 명령 인터프리터의 새 인스턴스를 시작합니다. COLOR    콘솔의 기본색과 배경색을 설정합니다. COMP     두 개 또는 여러 개의 파일을 비교합니다. COMPACT  NTFS 분할 영역에 있는 파일의 압축을 표시하거나 변경합니다. CONVERT  FAT 볼륨을 NTFS로 변환합니다. 현재 드라이브는          변환할 수 없습니다. COPY     하나 이상의 파일을 다른 위치로 복사합니다. DATE     날짜를 보여주거나 설정합니다. DEL      하나 이상의 파일을 지웁니다. DIR      디렉터리에 있는 파일과 하위 디렉터리 목록을 보여줍니다. DISK

javascript 정규표현식

 문자  매치되는 것  알파벳 문자와 숫자 조합  같은 조합의 문자들  \0  널문자(\u0000)  \t  탭(\u0009)  \n  줄바꿈(\u000a)  \v  수직 탭(\u000b)  \f  폼 피드(\u000c)  \r  캐리지 리턴(\u000d)  \xnn  16진수 nn에 해당하는 라틴 문자  \uxxxx  16진수xxxx에 해당하는 Unicode문자  \cX  제어 문자 ^C  문자  매치되는 것  [...]  대괄호 안에 있는 문자  [^...]  대괄호 안에 없는 문자  .  줄바꿈이나 Unicode 줄마침 문자를 제외한 아무 문자  \w  ASCII 문자  \W  ASCII 문자가 아닌 문자  \s  Unicode 공백 문자  \S  Unicode 공백 문자가 아닌 문자  \d  ASCII 숫자  \D  ASCII 숫자가 아닌 문자  [\b]  백스페이스  문자  의미  {n,m}  앞의 항목이 적어도 n번 이상 나타나고, m 번보다는 적게 나타난다.  {n,}  앞의 항목이 적어도 n번 이상 나타난다.  {n}  앞의 항목이 정확히 n번 나타난다.  ?  앞의 항목이 0또는 한번 나타난다.  +  앞의 항목이 한 번 이상 나타난다는 것을 의미한다.  *  앞의 항목이 0번 이상 나타난다는 것을 의미한다.  문자  의미  |  대체. 왼쪽이나 오른쪽의 부분 표현식을 매치시킨다.  (...)  그룹화. 원소들을 *, +, ?, |, 등과 함께 사용할 수 있게 단일 원소로 그룹화한다.  (?:...)  단지 그룹화만을 위한것. 원소들을 단일 원소로 그룹화하지만 이 그룹에 매치되는 문자들을 기억할 필요는 없다.  \n  그룹 번호 n이 처음 매치되었을 때의 문자를 사용하여 매치시킨다. 그룹은 괄호에 묶인 부분 표현식이다. 그룹 번호는 왼쪽 괄호를 왼쪽에서 오른쪽으로 세어서 정한다. '.+'로 만들어진 그룹은 번호를 지정하지 않는다.  문자  의미  ^  문자열의 시작부분이나, 여러 라인을 찾는 경우 줄의 시작 부분에 매치된다.  $

javascript 모듈

규칙 만약 모듈이 전역 네임스페이스에 심벌을 추가한다면, 문서에 그 심벌이 무엇인지 명확하게 기술되어야 한다. 만약 모듈이 전역 네인스페이스에 심벌을 추가한다면, 그 심벌의 이름과 모듈이 작성되어 있는 파일 이름 간에 명확한 관계가 있어야 한다.

javascript

Closures JavaScript 에서 이러한 public, private, privileged 멤버들의 구현이 가능한 것은, closure 때문이다. closure 의 의미는(Javascript의 closure 구현이 시사하는 바는), inner function 은 outer function 의 var 선언 변수와 매개변수에 접근할 수 있으며, 심지어 outer function 이 리턴된 이후에도 가능하다는 뜻이다. 이는 굉장히 강력한 언어 속성인데, JavaScript 에서 어떻게 이것이 가능한지 파헤쳐놓은 책은 아직은 없다. 대부분 아예 언급할 생각조차 없는 것 같다. private 과 privileged 멤버는 object 가 생성될 때에만 만들 수 있다. 반면, public 멤버는 언제든 만들 수 있다. Patterns Public function Constructor(...) {     this.membername = value; } Constructor.prototype.membername = value; Private function Constructor(...) {     var that = this;     var membername = value;     function membername(...) {...} } Note: function 구문 function membername(...) {...} 은 var membername = function(...) {...}; 표현의 축약이다. Privileged function Constructor(...) {     this.membername = function (...) {...}; } (원 문에) Copyright 2001 Douglas Crockford. All Rights Reserved Wrrrldwide.

javascript 모조클래스

생성자 function Rectangle(w,h){ this.width=w; this.height=h; } var rect1= new Rectagle(2,4); //rect1={width:2,height:4} 생성자 함수에는 일반적으로 반환값이 없다. 다시 말해, 생성자 함수는 this키워드가 가리키는 객체를 초기화시킬 뿐 아무런 값도 반환하지 않는다. 하지만 생성자 함수에서 결과값으로 객체를 반환하면 반환값을 가질 수 있으며, 이때 반환되는 객체는 new 문장의 결과값이 된다. 그리고 생성자 안의 this가 가리키고 있던 객체는 페기도니다. 프로토타입과 상속 자바스크립트의 모든 객체는 프로토타입이라고 불리는 또 다른 객체를 내부적으로 참조할 수 있다. 그리고 객체는 프로토타입의 프로퍼티들을 자신의 프로퍼티로 가져온다. 다시 말해 자바스크립트의 객체는 자신의 프로토타입에 있는 프로퍼티를 상속받는다. function Rectangle(w,h){ this.width=w; this.height=h; } Rectangle.prototype.area=function(){return this.width * this.height;} 상속받은 프로퍼티의 읽기와 쓰기 읽을때 객체에 프로퍼티가 없으면 프로토타입 객체에 프로퍼티를 검사한다. 쓸때는 프로토타입을 검사하지 않는다. 객체에 해당 프로퍼티가 없으면 그 프로퍼티를 만든다. 내장형 타입의 확장 프로토타입을 사용하면 내장객체의 프러퍼티를 만들수 있다. 하지만 좋은 방법은 아니다. 내장형 네이티브 클래스의 프로토타입을 확장하는 것이 안전하고 유용하다. 자바스크립트의 클래스 시뮬레이션 자바나 C++ 자바스크립트간의 비교 자바스크립트의 객체는 프로퍼티의 개수에 제한이 없으며, 동적으로 추가할 수도 있다. 자바나 C++에서 클래스는 객체의 구조를 정의한다. 인스턴스 프로퍼티 인스턴스 메서드 클래스 프로퍼티 클래스 메소드 공통적인 객체 메서드 toString()메서드 valuOf()메서드 비교메서드  a<b  a.compareT

javascript Function() 생성자

Function()생성자를 사용하면 실행시점에 자바스크립트 코드를 동적으로 생성하고 컴파일할 수 있다. 이러한 점에서 Function() 생성자는 전역 함수인 eval() 함수와 유사하다. Function()생성자는 호출될 때마다 함수 몸체를 파싱하고 새로운 함수 객체를 생성한다. 따라서 만약 생성자 호출이 루프안이나 자주 호출되는 함수 안에서 이루어진다면, 이러한 작업은 비효율적일 수 있다. 반면에 루프와 함수안의 함수 리터럴이나 중첩된 함수는 그것이 나타날 때마다 매번 다시 컴파일되지 않는다. 또한 함수 리터럴이 나타날 때마다 생성되는 함수는 서로 다른 함수 객체가 생성된 것이 아니다. 끝으로 Function()생성자의 가장 중요한 점은 생성된 함수가 어휘적 유효범위를 사용하지 않는다는 것이다. 대신 Function()생성자에 의해 생성된 함수는 다음 코드에서 확인할 수 있듯이 마치 최상위 레벨의 함수인 것처럼 컴파일된다.

자바스크립트 문장 문법

 문장  문법  용도  break  break;  bread 레이블;  가장 안쪽의 루프, switch문, 또는 '레이블'로 명명된 문장에서 빠져나온다.  case  case 표현식:  switch 문 내부의 문장에 레이블을 붙인다.  continue  continue;  continue 레이블;  가장 안쪽의 루프, 또는 '레이블'로 명명된 루프를 재시작한다.  default  default;  switch 문에서 디폴트 문장에 레이블을 붙인다.  do/while  do   문장  while(표현식);  while 루프를 만드는 다른 방법  empty  ;  아무일도 안함  for  for(초기화; 테스트; 증가)   문장  편리하게 쓸 수 있는 루프  for/in  for(변수 in 객체)   문장  객체에 속한 프로퍼티들에 대한 루프를 돈다.  function  function 함수 이름 ([전달인자1 [..., 전달인자 n]) {   문장 }  함수를 선언한다.  if/else  if(표현식)   문장1 [else 문장2]  조건부 코드 실행  label  식별자: 문장  '문장'에 '식별자'라는 이름을 붙인다.  return  return[표현식]  함수를 반환한다. 또는 함수를 '표현식'의 값으로 반환한다.  switch  switch(표현식){   문장  }  case 또는 default: 로 레이블이 붙은 문장들로 다중 분기  throw  throw 표현식;  예외를 발생시킨다.  try  try{   문장  }  catch(식별자){  }  finally{  }  예외를 잡아낸다.  var  var 이름_1[=값_1][...,이름_n][=값_n];  변수선언과 초기화  while  while (표현식)   문장  기본적인 루프 생성문  with  with(객체)   문장  유효 범위 체인의 확장

javascript ===, ==, >=, <=연산자

=== 연산자가 두 값이 일치하는지 아닌지 판단하는 데에는 다음과 같은 규칙들을 따른다. 두 값의 타입이 다르다면 두 값은 일치하지 않는다. 두 값이 모두 숫자이고 값이 같다면 두 값은 일치한다. 단, 적어도 하나의 값이 NaN일 경우 두 값은 일치하지 않는다. NaN값은 어느 값과도 일치하지 않는다. 어떤값이 NaN인지 확인하려면 전역 함수인 isNaN()을 사용하라. 두 값이 모두 문자열이고 같은 위치에 정확히 같은 문자들을 갖고 있다면 두 값이 일치한다. 만일 문자열의 길이나 내용이 다른 경우 두 값은 일치하지 않는다. 몇몇 경우 Unicode 표준에서 한 문자열을 인코딩 하는 방법이 두 가지 이상일 수 있음을 유의하라. 하지만 자바스크립트에서 효율성을 위해 엄격히 문자 대 문자 비교의 원칙으로 문자열을 비교하며, 모든 문자열은 비교되기 이전에 '정규 형식'으로 변환되어 있다고 가정한다. 두 값이 모두 불리언 값 true인 경우, 또는 두 값이 모두 불리언 값 false인 경우, 두 값은 일치한다. 두 값이 같은 객체, 배열 또는 함수를 참조할 경우 두 값이 일치한다. 만일 두 값이 서로 별개의 객체를 참조할 경우 두 값은 일치하지 않는다. 설사 두 객체의 프로퍼티가 일치하거나 두 배열의 원소가 일치한다고 하더라고 마찬가지다. 두 값이 모두 null일 경우, 또는 두 값이 모두 undefined일 경우, 두 값은 일치한다. == 연산자가 두 값이 동등한지 아닌지 판단하는 데에는 다음의 규칙들을 따른다. 두 값의 타입이 같은 경우 두 값이 일치하는지 테스트 한다. 두 값이 일치할 경우 그 둘은 동등하다. 두 값이 일치하지 않는 경우 동등하지 않다. 두 값의 타입이 다른 경우라 할지라도 동등할 여지가 있다. 동등함을 확인하는 과정에는 다음 규칙과 타입 변환이 사용된다. 두 값 중에 하나가 null이고 다른 하나가 undefined라면 두 값은 동등하다. 한 값이 숫자이고 다른 하나는문자열이면, 문자열을 숫자로 변환한

javascript 연산자 우선순위

 P  A  연산자  피연산자 타입  수행되는 연산  15  L  .  객체, 식별자  프로퍼티 접근    L  []  배열, 숫자  배열 인덱스    L  ()  함수, 전달인자  함수 호출    R  NEW  생성자 호출  새 객체 생성  14  R  ++  좌변값  전치 후치 증가    R  --  좌변값  전치 후치 감소    R  -  숫자  단항 마이너스    R  +  숫자  단항 플러스    R  ~  정수  비트 단위 NOT    R  !  불리언  논리 NOT    R  delete  좌변값  프로퍼티 정의를 무효화    R  typeof  타입 무방  데이터 타입을 반환    R  void  타입 무방  undefined 값을 반환  13  L  *,/,%  숫자  곱하기, 나누기, 나머지  12  L  +,-  숫자  더하기 빼기    L  +  문자열  문자열 이어 붙이기  11  L  <<  숫자  왼쪽으로 이동    L  >>  숫자  부호비트를 확장하며 오른쪽으로 이동    L  <<<  숫자  부호비트를 확장하며 왼쪽으로 이동  10  L  <,<=  숫자 또는 문자열  작다, 작거나 같다    L  >,>=  숫자 또는 문자열  크다, 크거나 같다    L  instanceof  객체, 생성자  객체 타입 확인    L  in  문자열, 객체  프로퍼티가 존재하는지 확인  9  L  ==  타입 무방  동등한지 테스트    L  !=  타입 무방  동등하지 않은지 테스트    L  ===  타입 무방  일치하는지 테스트    L  !==  타입 무방  일치하지 않은지 테스트  8  L  &  숫자  비트 단위 AND  7  L  ^  숫자  비트 단위 XOR  6  L  |  숫자  비트 단위 OR  5  L  &&  불리언  논리 AND  4  L  ||  불리언  논리 OR  3  R

javascript 데이터 타입과 값

 시퀀스 표현하는 문자  \0  널문자(\u0000)  \b  백스페이스(\u0008)  \t  수평 탭(\u0009)  \n  줄바꿈 문자(\u000a)  \v  수직 탭(\u000b)  \f  폼 피드(\u000c)  \r  캐리지 리턴(\u000d)  \"  큰따옴표(\u0022)  \'  작은 따옴표(\u0027)  \\  역슬래시(\u005c)  \x??  두개의 16진수 숫자 ??에 의해 지정되는 Latin-1문자.  \u???  네 개의 16진수 숫자 ????에 의해 지정되는 Unicode 문자.  \???  1과 377 사이의 8진수 숫자 ???에 의해 지정되는 Latin-1 문자.  값  문자열  숫자  불리언  객체  undefined  "undefined"  NaA  false  Error  null  "null"  0  false  Error  빈 문자열이 아닌 문자열  그 자체  문자열이 나타내는 숫자 값 혹은 NaN  true  String 객체  빈 문자열  그 자체  0  false  String 객체  0  "0"  그 자체  false  Number 객체  NaN  "NaN"  그 자체  false  Number 객체  무한대  "Infinity"  그 자체  true  Number 객체  음의 무한대  "-Infinity"  그 자체  true  Number 객체  기타 숫자  숫자를 문자열로 표현한 것  그 자체  true  Number 객체  true  "true"  1  그 자체  Boolean 객체  false  "false"  0  그 자체  Boolean 객체  Object  toString()  valueOf(), toString(), NaN  true  그 자체  타입  복사  전달  비교  숫자  값  값  값  불

네?

네?

관계형 데이터베이스

기능 데이터의 저장을 관리한다. 데이터에 대한 엑세스를 통제한다. 데이터를 검색 및 수정하기 위한 수단을 제공한다. 하나의 단일 테이블은 칼럼과 행이 조합되어 있다. 칼럼과 행의 교차점을 필드라고 한다. 필드 값은 더 작은 요소로 쪼갤 수 없다. 각 행은 기본키에 의해 구분되고, 기본키는 중복을 허용하지 않으며 없어서 앖되는 값이다. PRIMARY KEY는 일반적으로 변경되지 않은 값으로 정한다. FOREIGN KEY는 논리적인 값에 근거를 한 것이지 물리적으로 존재하는 POINTER와는 다르다. FOREIGN KEY가 가질 수 있는 값은 참조하는 PRIMARY KEY의 값이나 NULL값만 허용한다. 행의 순서는 중요하지 않지만, 기본으로 테이터는 입력되는 순서로 정렬된다. 각 칼럼명은 한 테이블내에서 유일하며 각 테이블명은 한 스키마 내에서 유일하다. 칼럼순서는 데이터를 저장할 때 무의미하지만, 조회할 때는 칼럼의 순서를 지정할 수 있다. 용어  개념  설명  Table  Table은 RDBMS의 기본적인 저장구조로, 한 개 이상의 Column과 0개 이상의 Row로 구성된다.  Row  Row는 Table의 Column들의 값의 조합니다. 예를 들면, S_DEPT Table상에서 한 부서에 관련한 정보는 한 Row가 될 수 있다. Row는 가끔 레코드라고 불린다.  Column  한 Column은 Table상에서 단일 종류의 데이터를 나타내는데, 예를 들면 S_DEPT Table상에서 부서이름이 하나의 Column이 된다. Column은 특정 datatype 및 크기를 갖고 있다.  Field  Row와 Column의 교차점에 Field가 있으며, Field는 데이터를 포함할 수 있으며 데이터가 없을 때, NULL 값을 갖고 있다고 말한다.  Primary Key  Primary Key는 한 Table의 각각의 Row를 유일하게 식별해주는 Column 또는 Column의 조합이다. 예를 들면 부

SQL TRIGGER

TRIGGER란? 사용자가 CALL하는 것이 아니고 임의의 테이블에 특정한 DML문이 수행됐을때 데이터베이스에서 자동적으로 동작하도록 작성한 프로그램이다.   분류 TIMING에 따른 분류 BEFORE TRIGGER AFTER TRIGGER   수행 차수에 따른 분류 STATEMENT TRIGGER ROW TRIGGER   CREATE [OR REPLACE] TRIGGER trigger명 timing event1[OR event2...] OF 컬럼명 ON 테이블명 [FOR EACH ROW] pl/sql_block;

SQL 오라클 CURSOR

CURSOR란? 하나의 고유한 SQL문에 할당된 area를 의미 오라클 서버에 의해서 수행되는 모든 SQL문에는 그 SQL문을 수행하기 위한 CURSOR가 확보됨   CURSOR의 형태 -IMPLICIT CURSOR DML과 ONE ROW SELECT인 경우에 자동으로 선언 -EXPLICIT CURSOR MULTI ROW SELECT 인 경우에 사용자가 선언   IMPLICIT CURSOR SQL%ROWCOUNT : 가장 최근의 SQL문에 의해 처리된 ROW수 SQL%FOUND : 가장 최근의 SQL문에 의해 처리된 ROW의 개수가 한 개 이상이면 TRUE SQL%NOTFOUND : 가장 최근의 SQL문에 의해 처리된 ROW의 개수가 없으면 TRUE SQL%ISOPEN : PL/SQL은 IMPLICIT CURSOR를 사용한 우 즉시 닫기 때문에 항상 FALSE   EXPLICIT CURSOR CURSOR의 선언 - CURSOR에 대한 이름을 부여하고 QUERY에 의한 구조를 정의 CURSOR의 활성화 - QUERY를 수행하고 변수와 BIND. 이때 현재 CURSOR와 BIND된 행을 ACTIVE SET이라 함 CURSOR로부터 데이터 FETCH - 현재 행의 데이터를 변수에 전달 - CURSOR의 POINTER가 다음 행으로 이동 CURSOR를 비활성화 - ACTIVE SET이 RELEASE DECLARE CURSOR cursor명 IS select 문장; OPEN cursor명 FETCH cursor명 INTO 변수1, 변수2,...; EXPLICIT CURSOR의 ATTRIBUTE %ISOPEN : CURSOR가 OPEN되어 있으면 TRUE %NOTFOUND : FETCH문에 의해 검색된 데이터가 없으면 TRUE %FOUND : FETCH문에 의해 검색된 데이터가 있으면 TRUE %ROWCOUNT : FETCH한 데이터의 총 갯수

SQL PL/SQL EXCEPTION

PL/SQL에서 발생하는 ERROR를 EXCEPTION이라 함 EXCEPTION WHEN exception명1[OR exception명2...]THEN 문장1; 문장2; [WHEN exception명3[OR exception명4...]THEN 문장1; 문장2;...] [WHEN OTHERS THEN 문장1; 문장2; ...]   PREDEFINED EXCEPTION DECLARE SECTION에서 선언할 필요 없음 - NO_DATA_FOUND : 데이터를 반환하지 않는 SELECT문 - TOO_MANY_ROWS : 두개 이상을 반환한 SELECT문 - INVALID_CURSOR : 잘못된 CURSOR 연산 발생 - ZERO_DIVIDE : 0으로 나누기 - DUP_VAL_ON_INDEX : UNIQUE COLUMN에 중복된 값을 입력할때   DECLARE exception명 EXCEPTION; PRAGMMA EXCEPTION_INIT(exception명, 에러번호); BEGIN ... EXCEPTION WHEN exception명 THEN ... END;   USER DEFINE EXCEPTION DECLARE exception 명 EXCEPTION; BEGIN RAISE exception명; ... EXCEPTION WHEN exception명 THEN ... END;   SQLCODE, SQLERRM 일반적인 Error처리를 위하여 오라클에서 제공하는 함수인 SQLCODE, SQLERRM을 활용할 수 있다. WHEN OTHER 절의 사용 -예상치 못한 Error처리를 위해서 미리 선언되지 않은 모든 종류의 Error를 처리함 SQLCODE -오라클에서 지정된 Error Code를 숫자로 Return SQLERRM -오라클에서 지정된 Error Code에 해당하는 Error message를

SQL 오라클 DUAL 테이블

DUAL 이라는 테이블은SYS 사용자가 소유하는 오라클의 표준 테이블로서 오직 한 행(row)에 한 컬럼만 담고 있는 dummy 테이블로서 일시적인 산술연산이나 날짜 연산을 위하여 주로 쓰인다. 다시말해서 이 가상 테이블의 SYS의 소유이다. 우리가 SYS로 로그인하지 않거나 SYS.DUAL로 쓰지 않아도 사용할 수 있는 이유는 SYS 사용자가 모든 사용자들에게 사용할 수 있돌고 이 테이블에 PUBLIC synonym을 주었기 때문이다. DUAL 테이블을 요약 정리하면 다음과 같다. DUAL 테이블은 오라클을 설치하면 자동으로 생성되는 테이블이다. DUAL 은 SYS사용자의 스키마지만 모든 사용자가 억세스 할 수 있다. 오직 하나의 DUMMY 컬럼만 가지며, VARCHAR2(1)의 데이터 타입이다. X라는 하나의 행만 가진다. SELECT 문에서 상수를 계산할 때 유용하다. 하나의 행만 가지므로 오직 한번만 상수를 반환한다. 이를 변형하여 상수, 가상컬럼 또는 테이블로부터 expression을 select 하지만, 테이블의 여러 행에 여러번 그 값을 반환받을 수 있다.

SQL 오라클 PL/SQL

오라클에서 지원하는 프로그래밍 언어의 특성을 수용한 SQL의 확장 PL/SQL Block내에서 SQL의 DML(데이터 조작어)문과 QUERY(검색어)문, 그리고 절차형 언어(IF,LOOP)등을 사용하여 절차적 프로그래밍을 가능하게 한 강력한 트랜잭션 언어이다.   장점 : 프로그램 개발의 모듈화 -Block내에서 논리적으로 관련된 문장들을 기술한다. -강력한 프로그램을 작성하기 위해 Block내에 Sub Block들을 포함한다. -복잡한 프로그램을 의미있고 잘 정의된 작은 Block들로 나눈다. 변수 선언 -변수, 상수등을 선언하여 SQL과 절차형 언어에서 사용한다. -단일형데이타타입과 복합형 데이터타입을 선언할 수 있다. -테이블과 칼럼의 데이터 타입을 기반으로 하는 유동적인 변수를 선언 할 수 있다. 절차형 언어의 사용 -IF문을 사용하여 조건에 따라 일련의 문장을 실행한다. -LOOP문을 사용하여 일련의 문장을 반복적으로 실행한다. -Explicit Cursor를 사용하여 여러 행을 검색힌다. 에러 처리 -Exception 처리 루틴을 사용하여 오라클 서버 에러를 처리한다. -사용자 정의 에러를 선언하고 Exception 처리 루틴에서 처리한다. 이식성 -PL/SQL은 오라클에 내장되어 있으므로 오라클과 PL/SQL을 지원하는 어떤 호스트로도 프로그램을 옮길 수 있다. 성능 향상 -PL/SQL은 응용 프로그램의 성능을 향상시킬 수 있다. -PL/SQL은 여러 SQL 문장을 Block으로 묶고 한번에 Block 전부를 서버로 보내기 때문에 통신량을 줄일 수 있다.   PL/SQL 프로그램의 작성 요령 PL/SQL 블럭내에서는 한 문장이 종료할 때마다 세미콜론(;)을 쓴다. END뒤에 ;을 사용하여 하나의 불럭이 끝났다는 것을 명시한다. PL/SQL 블럭의 작성은 편집기를 통해 파일로 작성할 수도 있고 SQL프롬프트에서 바로 작성할 수도 있다. SQL*PL

SQL Object의 종류

Object의 종류 및 기능 테이블 : 행과 열의 조합으로 구성된 데이터의 기본 저장 단위. 시퀀스 : 자동으로 고유한 숫자값을 생성해주며 주로 기본 키 값을 생성하기 위해 사용. 인덱스 : 쿼리 속도를 향상. 뷰 : 하나 또는 그 이상의 테이블로부터 논리적으로 데이터를 추출한 부분집합으로 논리적이고 가상적인 테이블 시노님 : Object에 대한 또다른 이름으로 ALIAS역할 프로그램 유닛 : SQL, PL/SQL문으로 작성한 Procedure, Function, Trigger, Package   SEQUENCE란? 자동으로 Unique number를 생성 공유가능한 Object 일반적으로 Primary Key값 생성을 위해 사용   CREATE SEQUENCE 이름 [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE }] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE | NOCACHE}]   사용법 : NEXTVAL, CURRVAL 의사 컬럼의 사용 NEXTVAL은 사용 가능한 다음 SEQUENCE값을 반환한다. NEXTVAL은 다른 사용자에 의해 참조되더라도 매번 고유한 값을 반환한다. CURRVAL은 현재 SEQUENCE 값을 포함한다. CURRVAL은 반드시 NEXTVAL사용 후에 참조되어야 한다.   인덱스의 개념 테이블의 데이터를 좀더 빠르게 검색하기 위해 사용하는 데이터베이스 Object이다. 오라클서버가 최적화 방법에 따라 어떤 Index를 사용할 것인지, 혹은 Index를 사용하지 않을 것인지를 결정한다. B*트리의 검색방법으로 디스크 입출력(I/O) 횟수를 줄인다. 오라클 서버가 Index를 자동적으로 사용하고 유지보수한다. Index는 논리적, 물리적으로 테이블과는 독립적이다. Index는 자동으로 생성되기도 하고 사용자

SQL 오라클 DICTIONARY

Dictionary란? 오라클 서버에 의해서 생성되고 유지보수 데이터베이스에 대한 정보를 가짐 읽기 전용으로만 제공되는 뷰와 테이블의 집합 데이터 사전 테이블은 SYS 사용자가 소유한다.   종류 : USER_ : t사용자가 소유한 객체에 관한 정보를 저장 ALL_ : 사용자에게 액세스가 허용된 객체에 관한 정보를 저장 DBA_ : DBA권한을 가진 사용자가 액세스 할 수 있는 정보를 저장 V$ : 서버의 성능과 Locking에 관한 정보를 저장. 일반적으로 DBA에게만 허용됨   기타 뷰 DICTIONARY : 모든 데이터 사전 테이블, 뷰, 동의어 저장 TABLE_PRIVILEGES : 사용자가 권한을 부여했거나 부여받은 오브젝트에 대한 권한 IND : USER_INDEXES의 동의어    

SQL 오라클 CONSTRAINT

개념 : Constraint란 데이터 무결성 유지를 위하여 사용자가 지정할 수 있는 성질이다. 모든 Constraint은 데이터 사전에 저장된다. 의미있는 이름을 부여했다면 Constraint을 참조하기 쉽게 된다. Constraint의 이름은 표준 객체 명명법을 따르는게 좋다. Constraint의 이름은 한 사용자 내에서 중복될 수 없다. Constraint의 이름을 생략했다면 ORACLE은 SYS_Cn형식의 이름을 만든다.   정의 방법 : 컬럼 [CONSTRAINT 제약조건 이름] 제한조건 유형, 컬럼,... [CONSTRAINT 제약조건 이름] 제한조건 유형(컬럼1, 컬럼2...)   종류 : NOT NULL : 컬럼이 널값을 가질 수 없음 NOT NULL 제약 조건은 NULL 값을 칼럼에 사용할 수 없게 한다. NOT NULL 제약 조건이 없는 칼럼은 NULL 값을 가질 수 있다. NOT NULL 제약 조건은 칼럼 레벨로만 정의할 수 있다. UNIQUE : 컬럼이나 컬럼의 조합이 테이블의 모든 행에서 고유한 값을 가져야 함 UNIQUE 제약조건은 칼럼이나 컬럼의 조합을 고유 키로 지정한다. 테이블에는 이 키에 대한 같은 값을 갖느느 행이 하나 밖에 없다. UNIQUE 키는 한 칼럼에 대한 것이라면 NULL 값을 쓸 수 있다. 칼럼 레벨이나 테이블 레벨에서 모두 정의할 수 있다. UNIQUE 칼럼에 대해 UNIQUE 인덱스가 자동으로 생성된다. PRIMARY KEY : 컬럼이나 컬럼의 조합이 테이블의 각 행을 유일하게 구별시켜 줌 테이블에 단 하나의 Primary key만 허용한다. 여러 칼럼일지도 NULL값을 허용하지 않는다. 테이블이나 칼럼 레벨에서 정의할 수 있다. UNIQUE 인덱스를 자동으로 생성한다. FOREIGN KEY : 컬럼이나 컬럼의 조합이 다른 테이블의 컬럼이나 컬럼의 조함을 참조함 foreign key는 자식(child) 테이블에 정의한다. 부모 테이블의 값과 일치하거나 NULL이어야 한다. 테이블이

SQL 오라클 내장함수(변환형 함수, 날짜 함수, 숫자형 함수)

숫자형 함수 ROUND : 숫자를 반올림 ROUND(숫자값,a) a가 양수이면 소수이하자리를, 음수이면 정수 부분 자리이다. ROUND(35.735,2) -> 35.74 TRUNC : 숫자를 절사 TRUNC(숫자값,a) MOD : 나누기 연산에서 나머지 구함 MOD(7,2) -> 1 POWER : 거듭제곱 POWER(3,2) -> 9 SQRT : 제곱근 SQRT(25) -> 5 SIGN : 양수인지 음수인지 0인지를 구별함 SIGN(-15) -> -1 CHR : ASCII값에 해당하는 문자를 구함 CHR(65) -> A   날짜형 함수 SYSDATE : 현재 시스템의 날짜 및 시간을 구함 SYSDATE -> 현재 시간 10-MAY-99 LAST_DAY : 지정한 날짜의 해당월의 마지막 날짜를 구함 LAST_DAY('17-FEB-98') -> 28-FEB-98 MONTHS_BETWEEN : 두 날짜사이의 개월수를 구함 MONTHS_BETWEEN('26-APR-97','22-JUL-95') -> 21.1290323 ADD_MONTHS : 지정한 날짜로부터 몇 개월수의 날짜를 구함 ADD_MONTHS('22-JUL-95',21) -> 22-APR-97 ROUND : 날짜에 대한 반올림 ROUND('10-MAY-99','MONTH') -> 01-MAY-99 TRUNC : 날짜에 대한 버림  TRUNC('10-MAY-99','MONTH') -> 01-MAY-99 변환형 함수 TO_CHAR : 숫자나 날짜를 문자열로 변환 TO_CHAR(350000,'$999,999') -> $350,000 TO_NUMBER : 문자를 숫자로 변환 TO_NUMBER('1234') -> 1234 TO_DATE : 문자를 날짜로 변환 TO_D

SQL oracle 내장함수[문자열 처리]

CONCAT(char1, char2) 두 문자를 결합 CONCAT('ORACLE','Server') -> ORACLEServer   INITCAP(char) 주어진 문자열의 첫 번째 문자를 대문자로 변환 INITCAP('ORACLE SERVER') -> Oracle Server   LOWER(char) 문자열을 소문자로 변환 LOWER('ORACLE SERVER') -> oracle server   UPPER(char) 문자열을 대문자로 변환 UPPER('oracle server') -> ORACLE SERVER   LPAD(char1,n[,char2]) 왼쪽에 문자열을 끼어 놓는 역할 LPAD('홍길동',10,'*') -> ****홍길동   RPAD(char1,n[,char2]) 오른쪽에 문자열을 끼어 놓는 역할 RPAD('홍길동',10','*') -> 홍길동****   SUBSTR(char, m ,[n]) m번째 자리부터 길이가 n개인 문자열을 반환 SUBSTR('강남구 역삼동',5,2) -> 역삼   LENGTH(char1) 문자열의 길이를 리턴 LENGTH('홍길동') -> 3   REPLACE(char1, str1, str2) 특정 문자를 다른 문자로 치환   INSTR 문자열이 포함되어 있는지를 조사하여 문자열의 위치를 반환한다. 지정된 문자열이 발견되지 않으면 0을 반환한다.   TRIM 특정한 문자 제거 제러할 문자를 입력하지 않으면 기본적으로 공백 제거   CONVERT CHAR SET을 변환한다. LTRIM(char1,char2), RTRIM(char1,char2) char1에서 왼쪽(오른쪽)에서 부터 더 이상 문자값2를 만나지 않을 때까지 지운다. CHR ASCII 코드 값을

오라클 기본 명령어

show user - 현재 user를 보여줌   / 또는 run - 이전 실행문을 실행   L - SQL Buffer의 내용을 보여준다.   C - SQL Buffer의 내용을 바꾼다. C/[바꾸기전문자]/[바뀐뒤문자]   A - 현재 line의 마지막 문자열에 문자열 추가   I - 라인개행 하면서 문자열 추가   DEL - 라인 삭제   Clear screen - 화면 청소 - 키보드 shift+del 이나 명령어 cl src도 동일한 기능   spool [파일경로와 파일명] - 작업 내용을 파일에 저장한다.   spool off - spool의 끝   EDIT [파일경로와파일명] 또는 ed[파일경로와파일명] - 메모장을 이용하여 수행할 명령을 작성(에디트기능)   START [파일경로와 파일명] 또는 @[파일경로와 파일명] - 파일의 내용을 수행한다.   connent [사용자 이름]/[암호] - 사용자 환경변경   select * from all_users; - 시스템 환경에서 사용할 수 있는 모든 유저를 보여준다.   select * from Tab; - 해당 유저에서 사용하는 diretory(table)을 보여준다.   select * from user_constraints; - 제약조건에 대한 정보를 보여준다.   select * from User_Users; - 현재 사용자에 대한 정보를 보여준다.   select * from dba_data_files; - 현재 사용자에 연결되어 있는 데이터파일을 보여준다.

SQL (SELECT)

SQL 명령어의 작성법 SQL명령어는 여러 라인에 걸쳐서 입력할 수 있다. SQL명령어는 읽기에 쉽도록 들여쓰기를 할 수 있다. 절들은 보기에 좋고 편집이 쉽게 각기 다른 라인에 적는 것이 좋다. 하나의 명령어는 여러 라인에 걸치거나 줄여서 적을 수 없다. SQL명령어는 대소문자를 구별하지 않는다. 그러나, 가능하면 규칙을 정하여 쓰는 것이 효율적이다. SQL명령어는 SQL프롬프트에서 입력하며 다음라인은 라인번호가 나타난다. SQL명령어의 끝은 세미콜론(;)으로 종료한다. SELECT [DISTINCT] {*,column [alias],...} FROM table_name [WHERE condition] [ORDER by {column, expression} [ASC | DESC]]; DISTINCT : 중복되는 행을 제거하는 옵션입니다. * : 테이블의 모든 column을 출력합니다. alias : 해당 column에 대해서 다른 이름을 부여할 때 사용합니다. table_name : 질의 대상 테이블명 WHERE : 조건을 만족하는 행들만 검색 condition : column, 표현식, 상수 및 비교 연산자 ORDER BY : 질의 결과 정렬을 위한 옵션   WHERE절에 사용될 수 있는 SQL 연산자 BETWEEN a AND b : a와b사이의 데이터를 출력합니다.(a,b값 포함) IN (list) : list의 값 중 어느 하나와 일치하는 데이터를 출력 합니다. LIKE : 문자 형태로 일치하는 데이터를 출력 합니다.(%,_사용) IS NULL : NULL 값을 가진 데이터를 출력 합니다. NOT BETWEEN a AND b : a와 b 사이에 있지 않는 데이터를 출력합니다. (a,b값 포함하지 않음) NOT IN(list) : list의 값과 일지하지 않는 데이터를 출력 합니다. NOT LIKE : 문자 형태와 일치하지 않는 데이터를 출력 합니다. IS NOT NULL : NULL값을 갖지 않는 데이터를 출력합니다.

SQL (TABLE)

테이블 이란? 1. 테이블은 오라클 데이타베이스의 기본적인 데이타 저장 단위 입니다. 2. 데이타베이스 테이블은 사용자가 접근 가능한 모든 데이타를 보유하고 레코드와 컬럼으로 구성 됩니다. 3. 테이블은 시스템내에서 독립적으로 사용되길 원하는 엔티티를 표현할수 있습니다. 4. 테이블은 두 엔티티간의 관계를 표현할 수 있습니다. 5. 비록 "테이블"이라는 말이 더 맣이 사용되지만 테이블의 형식어는 "릴레이션" 입니다. 테이블 명명 규칙 테이블명과 칼럼명은 반드시 문자로 시작하고 최대 30자까지 허용한다. A_Z, a-z, 0-9, _, $, #만으로 구성된다. 동일한 사용자가 소유한 다른 객체의 이름과 중복되지 않아야 한다. 예약어는 쓸 수 없다.   생성 CREATE TABLE [schma] table_name ( column datatype [, column datatype...] ) [TABLESPACE tablespace] [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [STROAGE storage-clause] [LOGGING | NOLOGGING] [CACHE | NOCACHE];   - schema : 테이블의 소유자 - table_name : 테이블 이름 - column : 컬럼의 이름 - datatype : 컬럼의 데이터 유형 VARCHR2(n) : 가변 길이 문자 데이터(1~4000byte) CHAR(n): 고정길이 문자 데이터(1~2000byte) NUMBER(p,s) : 전체 p자리 중 소수점 이하 s자리(p:1~38,s:-84~127) DATA : 7Byte (BC 4712년 1월 1일부터 AD 9999년 12월 21일) LONG : 가변 길이 분자 데이터 (1~2Gbyte) CLOB : 단일 바이트 가변 길이 문자 데이터 (1~4Gbyte) RAW(n) : n