○XSL (Extensible Stylesheet Language)

 ▷XML문서를 다른 텍스트 기반의 문서로 바꾸는 XML 문서

 ▷XSLT : XSL Transformation

 

 ▶선행 지시자

  ▷namespace =  http://www.w3.org/1999/XSL/Transform 

  ▷output

   ▷속성 method : 바꿀 문서 Type

   ▷속성 doctype-system = about:legacy-compact

  ▷template

   ▷속성 match =  "/" -> root에 맞춘다?

 

 ▶XPath

  ▷XML요소의 위치를 알려주는 주소.

  ▷모든 노드의 Tree 구조를 해석하지 않고, 주소를 따라 찾아간다.

  ▷모든 노드가 정상적으로 구성되어야 한다. (Schema, DTD의 문법을 어겨서는 안됨)

  ▷XML문서 직접 연결 -> xml:stylesheet processing instruction

 

  ▶규칙

   ▷/ : Root, 주소 구분자. (자식 요소)

    ▷Absolute address : /로 시작

    ▷Relative address : /로 시작하지 않음

   ▷~//* : ~의 모든 자식 노드들.

 

   ▷@~ : 속성값

 

   ▷name() : tag명

   ▷text() : start ~ end 태그 사이의 값.

 

   ▷기타

 

 ▶문법

  ▶<xsl:template match="Expression"/> : 특정 노드가 일치할 때, 해당 노드에 적용할 규칙들

   ▷<xsl:template match="/"> : 템플릿 전체를 문서와 연결

 

 

  ▶<xsl:value-of select="Expression"/> : element의 값

    ▷주소 -> @atName : attribute의 값

  ▶<xsl:apply-templates/> : 해당 node, node의 자식에 대해 template을 적용시킴.

   ▷속성 select="Expression" : Expression에 맞는 node의 자식에 대해 template을 적용시킴.

 

  ▶<xsl:for-each select="Expression"> : Expression에 맞는 자식 node들을 순회한다.

 

  ▶<xsl:sort select="Expression"> : Expression에 맞는 자식들을 정렬한다

   ▷속성 data-type : 해당 데이터 타입으로 해석한다.

    ▷number : 수 / text : 문자열 (사전순)

   ▷속성 order : 내림차(descending), 오름차(ascending)을 정한다.

 

  ▶<xsl:variable name = "varName" select="Expression"> : Expression을 만족하는 node의 값을 변수로 저장한다.

   ▷sum(v) : 만족하는 Expression의 값들의 합

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

DTD  (0) 2020.11.18
XML  (0) 2020.11.18

○Thread

 ▷프로그래밍을 돕기 위해 동시에 독립적으로 실행되는 단위

 ▷process보다 가볍다. (한 Process는 여러 Thread를 가질 수 있다.

 

 

 ▶Thread 생성

  ▶1. Runnable Interface를 implement

   ▷public void run() 함수를 가지고 있다.

   ▷해당 함수가 종료되면, Thread는 종료된다.

   ▷만든 Runnable을 Thread의 생성자에 넣는다.

   ▷t.start() -> Thread 시작

 

  ▶Thread 상속

   ▷상속받은 class에서 run()을 정의한다.

   ▷해당 클래스의 객체를 만들고, start() -> 시작

 

 

 ▶Sleep - Thread.sleep(int ms)

  ▷Thread의 동작을 일시적으로 멈출 수 있다. (ms단위)

 

 

 ▶Interrupt - thread.interrupt()

  ▷해당 thread에서 interrupt 신호를 전달한다.

  ▷보통 thread를 종료시킬 때 자주 사용한다.

 

  ▶interrupt 동작 정의

   ▶catch (InterruptedException e)

    ▷interrupted하면 catch한다. (try ~ catch문)

 

   ▶thread.interrupted()

    ▷interrupt 당했다면 true, 아니면 false

    ▷if문에 넣어서 주로 체크한다.

 

 

 ▶Join - thread.join(int ms)

  ▷해당 thread가 끝날 때 까지 기다린다 (ms단위)

  ▷인자가 없거나, 0이라면 무한히 기다린다.

  ▷thread.isAlive()를 통해 살아있다면, join을 더 추가할수도 있다.

 

 

 ▶ReeentrantLock

  ▷import java.util.concurrent.locks.*

  ▷lock = new ReentrantLock()

  ▷Race Condition을 방지하기 위해 사용함.

   ▷Thread들은 한 Process에서 위치를 공유하기 때문에, 동시에 같은 변수/메소드를 참조하면 예상치 못한 결과가 일어날 수 있다.

 

  ▶lock(), unlock()

   ▷하나의 Thread가 bankLock.lock() 메서드를 호출하면, 다른 Thread는 lock()에 접근해도 unlock()되기 전까지 대기한다.

   ▷try 전에 lock을, finally에 unlock을 두고 try 내에 Critical section을 놓는다.

 

  ▶Condition Object

   ▷다른 쪽에서 signal을 보낼 때 까지 lock을 반환하고 대기할 수 있다.

   ▷condition = reentrantLock().newCondition()

   ▷condition.await() : signal을 받을 때 까지 대기한다.

   ▷condition.signalAll() : 모든 기다리는 Thread를 깨운다.

   ▷condition.signal() : 해당 condition를 깨운다.

 

  ▶synchronized

   ▷reentrantLock을 간단하게 표현 가능하다

 

 ▶ThreadLocal<T>

  ▷Thread는 위치를 공유하기 때문에, 같은 Thread Class는 변수들을 공유한다.

  ▷ThreadLocal<T> : Local 변수처럼 사용 가능

 

 

 ▶기타 메소드

  ▷Thread.currentThread() : 현재 Thread의 정보.

 

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

Network Programming  (0) 2020.12.08
Stream  (0) 2020.12.01
Process  (0) 2020.11.23
Exception  (0) 2020.11.19
Lambda Expression  (0) 2020.11.16

○Process

 ▷실행중인 프로그램

 

 ▶생성 : Process 클래스로 또 다른 프로그램을 실행 가능하다.

  ▷Process proc = Runtime.getRuntime().exec("프로그램명");

  ▷Process proc = new ProcessBuilder("cmd", "\c", "dir").start();

 

 ▶Input/Output/Error 상호작용

  ▷만들어진 프로세스와 input/output/error steams를 주거나 받을 수 있다.

  ▶InputStream 선언 : InputStream in = proc.getInputStream()

   ▷읽기 : in.read(buffer, off, len) - buffer는 byte[], byte[off]부터 len개, return: 읽은 byte 수

   ▷닫기 : in.close

 

  ▶OutputStream 선언 : OutputStream out = proc.getOutputStream()

   ▷읽기 : out.write(buffer) - buffer는 byte[], byte[off]부터 len개

   ▷닫기 : out.close

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

Stream  (0) 2020.12.01
Thread  (0) 2020.11.24
Exception  (0) 2020.11.19
Lambda Expression  (0) 2020.11.16
Collection  (0) 2020.11.16

○Summarize Data

 ▶Summary Statistics

  ▷mean(v) : 평균
  ▷median(v) : 중앙값
  ▷var(v) : 분산
  ▷sd(v) : 표준 편차
  ▷IQR(v) : IQR (중간에 50%의 데이터들이 흩어진 정도) 
  ▷min(v) : 최소값
  ▷max(v) : 최대값

  ▷range(v) : 범위 (최소 최대)

 

  ▷table(v) : 해당 값이 얼마나 있는지 table로 만듬.

 

 ▶Visualize

  ▷hist(vector) : 히스토그램

 

  ▷barplot(table) : 막대 그래프

 

  ▷boxplot(y축 ~ x축, data = frame) : 박스 그래프

 

  ▷scatterplot(y축 ~ x축, data = frame) : 흩어짐 정도

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

Library, File read  (0) 2020.11.21
Data Type, Structure, Frame  (0) 2020.11.21

○Library 추가

 ▷library(라이브러리 명)

 

○File read

 ▶read_csv

  ▷readr 라이브러리 내의 함수

  ▷해당 csv파일을 읽어온다.

 ▶as_tibble

  ▷tibble 라이브러리 내의 함수

  ▷csv 파일을 표준으로 출력한다?

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

Summarize Data  (0) 2020.11.21
Data Type, Structure, Frame  (0) 2020.11.21

+ Recent posts