○JDBC (Java Database Connectivity)

 ▷java에서 DB접근을 위한 표준 API

 ▷여러 DBMS (Database Management System)을 동일한 방법으로 접근하게 도와주는 API

 ▷해당 DBMS, DBMS접근을 위한 JDBC Driver가 필요하다.

 

 ▶접근 방법

  ▷import java.sql.*

  ▶Register JDBC driver

   ▷드라이버 종류

 

 

  ▶DB 연결

   ▷Connection conn = DriverManager.getConnection(DBMS 테이블, 사용자, 암호)

 

 

  ▶SQL 문장(쿼리) 정의, 사용

   ▷String sql = "SELECT ~~ FROM ~~ ..."

   ▷PreparedStatement - 같은 명령을 다른 매개변수로 여러 번 실행 가능

 

 

  ▶결과 획득

   ▷ResultSet rs = stmt.executeQuery(sql);

   ▷명령어에 따라 메소드가 다름

 

 

  ▶종료

 

 

 

※SQL 기초

'컴퓨터 언어 > java' 카테고리의 다른 글

Network Programming  (0) 2020.12.08
Stream  (0) 2020.12.01
Thread  (0) 2020.11.24
Process  (0) 2020.11.23
Exception  (0) 2020.11.19

●Client - Server Model

 ▷Client : 서버에 서비스를 요청

 

 ▶서버 : 클라이언트에게 서비스를 제공

  ▷Host : 서버 주소

  ▷Port : 서버의 서비스 특정

   ▷잘 알려진 Port

 

○Socket

 ▷java.net.Socket

 ▷Communication의 양 끝 Point를 의미

 ▷Host, port로 구성됨.

 ▶Client - Socket 연결

  ▷Socket (서버Host, 서버Port) : 연결 요청

  ▷getLocalAddress().getHostAddress() : 자신의 Host Address

  ▷getLocalPosr() : 자신의 Port - 가변적?

 

  ▷getInputStream() : 서버가 전송한 Stream 읽기.

 

 ▶Server 생성 - 하나의 Client만 허용

  ▷ServerSocket(Port) : 해당 Port로 서버 Socket 생성

  ▷serverSocket.accept() : Client와 Connection이 되면 return, Client Socket 얻어냄.

  ▷serverSocket.InetAddress() : Client 정보

 

 

 ▶다중 Client 서버

  ▷Thread 이용

 

 ▶Timeout 설정

  ▷연결 Timeout

  ▷모든 R/W에 대한 Timeout 설정

 

 ▶Web Data 받기

'컴퓨터 언어 > java' 카테고리의 다른 글

Database Programming  (0) 2020.12.10
Stream  (0) 2020.12.01
Thread  (0) 2020.11.24
Process  (0) 2020.11.23
Exception  (0) 2020.11.19

○Ajax

 ▷Asynchronous Javascript And Xml

 ▷XMLHttpRequest 객체를 이용해서 페이지 일부의 데이터만 로드하는 기법

 

 ▶과거 방식 (Synchronous Request)

  ▷페이지 일부의 변화에도 전체 페이지를 새로 받아옴.

  ▷받는동안 일시적으로 빈 페이지가 로딩됨. (새 패이지를 받는 동안 대기해야함)

  ▷느리고 불편함. 대기동안 클라이언트와 상호작용할 수 없음.

 

 ▶Asynchronous Request

  ▷각 Entries가 독립적이고 동적으로 관리된다.

  ▷에러가 발생하면 비동기적으로 문제를 보여주고, 서버에 전달한다.

  ▷전 데이터에 기반하여 새로운 값으로 field를 채울 수 있다.

 

 ▶Ajax 방법

  ▷XMLHttpRequest.open( "GET", url, true) : 비동기식 통신 (false: 동기식 통신)

  ▷XMLHttpRequest.addEventListener("readystatechange", Callback function, false) : 이벤트 핸들러 추가.

   ▶readystatechange : readystate가 변할때 호출

    ▷0: request not initialized (open)

    ▷1: sever connection established (send)

    ▷2: request received

    ▷3: processing request

    ▷4: request finished and response is ready (전송 완료)

 

  ▶XMLHttpRequest.status

   ▷200 : 성공

   ▷403 : Forbidden (금지됨)

   ▷404 : Page not found (페이지가 없음)

   ▷500 : Error

 

  ▶Callback function

   ▷데이터를 받았을 때 처리할 함수.

   ▷비동기적이다. (데이터를 받을때 까지 기다리지 않는다.)

 

 ◎Example

'컴퓨터 언어 > JS' 카테고리의 다른 글

XML DOM  (0) 2020.11.30
기타 함수(메서드)  (0) 2020.11.09
HTML DOM  (0) 2020.10.28
JSON  (0) 2020.10.28
Event  (0) 2020.10.27

○Stream

 ▷data-processing operstions을 지원하는 Element Sequence

 ▷배열/컬렉션의 요소들을 쉽고 효율적으로 맵핑/필터링 가능 (filter, map, reduce, find, match, sort, ...)

 

 ▶Collection과의 차이점

  ▶Collection

   ▷모든 요소에 접근시에 반복문 (for/for-each)을 이용해서 순회해야 한다.

  ▶Stream

   ▷stream 내의 메소드를 이용해서 데이터들을 조작 가능하다.

 

 ▶생성

  ▶exploit values를 통해 생성

   ▷Stream.of(...)의 Static method를 통해 생성

 

  ▶Arrays를 통해 생성

   ▷Arrays.stream(array)

   ▷Stream.of(array)

 

  ▶Collection을 통해 생성

   ▷Collection.stream

 

 

  ▶파일 -> java.nio.file.Files 의 많은 Static methods

   ▷Files.lines : 줄단위로 Stream을 만듬.

 

  ▶iterate

   ▷매개변수 2개 : 시작, 증감 (limit, takeWhile 등으로 조건)

   ▷매개변수 3개 : 시작, 조건, 증감

  ▶generate

   ▷function reference를 통해 return 값으로 Stream을 만든다.

   ▷Lambda expression을 지원한다.

 

 

 ▶Operation Methods

  ▷대부분의 연산에 대해 Pipelining이 적용된다. (연산의 결과 = Stream, 입력으로 사용 가능)

  ▶Filtering

   ▷조건에 따라 Stream의 일부 element들을 가져온다.

 

   ▶filter

    ▷조건을 만족하는 element들의 stream을 반환

    ▷조건 : boolean을 리턴하는 함수형 인터페이스, 람다식으로 표현 가능

   ▶distinct

    ▷모든 요소들을 Unique하게 한다. (겹치는 element 제거)

 

   ▶takeWhile

    ▷조건을 불만족하는 element 전까지의 element들로 이루어진 Stream을 반환한다.

 

   ▶dropWhile

    ▷처음 조건이 만족한 이후의 element들로 이루어진 Stream을 반환한다.

   ▶limit

    ▷Stream에서 처음 몇개의 element만으로 새로운 Stream을 만든다.

 

 

 

  ▶sorted

   ▷Stream을 정렬함.

   ▷매개변수 없음 -> 정렬 객체에 Comparable 구현 필요

   ▷매개변수 Comparator -> 매개변수에서 Comparator 정의 필요

   ▷역순 -> .reversed()

 

  ▶map

   ▷Stream의 모든 element에 대해 적용되어, return 값으로 element를 덮어씌운다.

 

   ▶forEach

    ▷Stream의 모든 element에 대해 적용되지만, element 값에는 영향을 주지 않는다.

 

  ▶Matching

   ▷모든/일부 element가 조건을 만족하는지 확인한다.

   ▷조건 : boolean을 리턴하는 함수형 인터페이스, 람다식으로 표현 가능

   ▶anyMatch

    ▷하나라도 조건을 만족함.-> true 반환

   ▶allMatch

    ▷모두 조건을 만족함 (true)-> true 반환

   ▶noneMatch

    ▷모두 조건을 만족하지 않음 (false) -> true 반환

 

  ▶Finding

    ▷Stream에 element가 하나라도 있으면, 그 중 하나를 return한다.

    ▷Optional<T>의 형태로 return한다. -> isPresent() : 존재하는가? / get() : 값 접근

 

    ▶findAny

     ▷Stream의 무작위 element를 반환한다.

    ▶findFirst

     ▷Stream의 첫 element를 반환한다.

 

  ▶collect

   ▷stream을 List로 변환

   ▷Stream을 String으로 변환 (구분자, prefix, suffix)

 

  ▶count

   ▷Stream의 element 개수를 샌다.

 

'컴퓨터 언어 > java' 카테고리의 다른 글

Database Programming  (0) 2020.12.10
Network Programming  (0) 2020.12.08
Thread  (0) 2020.11.24
Process  (0) 2020.11.23
Exception  (0) 2020.11.19

●DOM (Document Object Model)

 ▷XML 데이터를 Tree구조로 저장하는 Parser (DOM parser)

 ▷HTML DOM과 비슷한 구조를 가진다.

 ▷문서 내 모든 요소의 객체, 속성, 메소드를 정의

 

 ▶Tree 구조

  ▷요소 노드 : 속성 노드와 텍스트 노드 또는 또 다른 요소 노드를 자식으로 가짐 (그 자체는 값을 가지지 않음)

  ▷속성 노드 : 속성의 값을 가지는 노드

  ▷텍스트 노드 : 문자열(요소의 문자열)을 값으로 가지는 노드

 

 ▶XMLHttpRequest

  ▷서버로 부터 XML 데이터를 전송받아 처리함.

 

  ▶문서 요청

   ▷status : 문서의 상태 (200:존재 / 404:존재하지 않음)

   ▷readyState : XMLHTTPRequest 객체의 상태 (UNSENT / OPENED / HEADERS_RECEIVED / LOADING / DONE)

   ▷open("GET", url, true/false) 와 send()를 통해 요청 전달 (true : 비동기적 / false : 동기적)

 

  ▶데이터 해석

   ▷responseText : 응답받은 데이터를 문자열로 저장

   ▷responseXML : 응답받은 데이터를 XML DOM으로 저장

 

 

○JS 노드 접근 메소드/속성

 ▶Common Node

  ▶멤버 변수

   ▷nodeType 종류

   ▷nodeValue 종류

   ▷nodeName 종류

 

  ▷메소드 (노드의 추가/제거)

 

 ▶NodeList

  ▷멤버 변수

 

 ▶Document

 

 ▶Element Node

 

 ▶Attribute Node

 

 ▶Text Node

'컴퓨터 언어 > JS' 카테고리의 다른 글

Ajax  (0) 2020.12.02
기타 함수(메서드)  (0) 2020.11.09
HTML DOM  (0) 2020.10.28
JSON  (0) 2020.10.28
Event  (0) 2020.10.27

+ Recent posts