함수 설명

1) "charAt()" 함수를 사용하는 것은 긴 줄에 서 있는 사람들 중 한 사람을 지목하는 것과 비슷합니다.

    각 사람은 특정 위치(번호)에 있고, 당신은 그 번호를 알려주면 해당 사람을 찾을 수 있습니다.

    이때 문자열은 사람들의 줄이고, 각 문자는 특정 위치에 있는 사람입니다.

 

기본 사용법

1) 구문

● 문자열.charAt(위치)

2) 예제

● 만약 당신이 "Hello"라는 단어를 가지고 있고, 이 단어에서 두 번째 문자(‘e’)를 찾고 싶다면,

   charAt(1)을 사용합니다(인덱스는 0부터 시작합니다).

 

매개 변수

1) index (위치)

● 이 숫자는 찾고 싶은 문자의 위치를 나타냅니다.

● 첫 번째 문자는 0, 두 번째 문자는 1의 위치에 있습니다.

2) 예제

● "Hello"에서 'e'는 1의 위치에 있습니다. → "Hello".charAt(1)

 

반환 값

1) 문자 반환

● 지정된 위치에 있는 문자를 반환합니다.

2) 범위를 벗어난 경우

● 만약 지정된 위치가 문자열의 길이를 넘어가면(즉, 문자가 없는 위치를 가리키면) 빈 문자열을 반환합니다.

 

사용 예제

let myString = "Happy";
console.log(myString.charAt(0)); // 'H' (첫 번째 문자)
console.log(myString.charAt(2)); // 'p' (세 번째 문자)
console.log(myString.charAt(5)); // '' (문자열 길이를 넘어서는 위치, 여기서는 아무것도 없음)
 

주의할 점

1) 인덱스는 정수여야 함

● 소수점이나 음수를 인덱스로 사용하면 예상치 못한 결과가 나올 수 있습니다. 항상 0 이상의 정수를 사용하세요.

2) 문자열 길이를 고려

● 문자열의 길이보다 큰 인덱스를 사용하면 빈 문자열을 얻게 됩니다. 문자열의 길이를 초과하지 않도록 주의하세요.

 

실제 사용 사례

1) 이름의 첫 글자 추출

● 사용자의 이름에서 첫 번째 글자를 추출하여 이니셜로 사용할 때

2) 데이터 형식 검증

● 주민등록번호, 전화번호 등 특정 형식을 가진 데이터에서 특정 위치의 문자를 검사할 때 유용합니다.

 

대체 방법

1) 대괄호 접근법

● `string[index]`를 사용하면 같은 결과를 얻을 수 있습니다. 이 방법은 인덱스가 범위를 벗어나면 `undefined`를 반환합니다.

2) 비교

● `charAt()`은 빈 문자열을 반환하는 반면, 대괄호 접근법은 `undefined`를 반환한다는 차이점이 있습니다.

 

질문과 실습

1) 학습자들은 "Hello", "World", "JavaScript"와 같은 다양한 문자열에 대해 `charAt()`를 사용해보고,

    다른 인덱스 값을 실험해 보시기 바랍니다.

2) 실습을 통해 `charAt()`가 어떤 상황에서 유용할 수 있는지 생각해보고, 자신만의 예제를 만들어 보시기 바랍니다.

EPSG 코드는 "European Petroleum Survey Group"의 약어로, 지리적 위치를 위도와 경도로 정의하는 데 사용되는 표준 코드입니다.

이 코드들은 특정 지리적 위치를 정확하게 표현하기 위한 다양한 좌표계와 지도 투영법을 식별하는 데 사용됩니다.

예를 들어, 가장 널리 사용되는 EPSG 코드 중 하나는 "EPSG:4326"로, WGS 84 좌표계를 나타냅니다.

이 좌표계는 세계적으로 GPS 기술에 사용되며, 위도와 경도를 이용하여 지구상의 위치를 정의합니다.

EPSG 코드는 지리 정보 시스템(GIS), 웹 매핑, 지리적 데이터 처리 등에서 널리 사용되며, 데이터가 어떤 좌표계를 사용하는지 명확하게 식별하는 데 필수적입니다.


WGS 84 (World Geodetic System 1984) 좌표계는 전 세계적으로 통용되는 지리 정보 시스템(GIS), 글로벌 포지셔닝 시스템(GPS), 및 다양한 지리적 데이터 표현에 사용되는 표준 좌표계입니다.

주요 특징과 용도는 다음과 같습니다:

1. 글로벌 참조 시스템 :

    WGS 84는 지구의 형태를 대략적으로 모델링하는데, 이 모델은 지구를 약간 평평한 회전 타원체로 간주합니다.

2. 위도와 경도 :

    이 시스템은 지구상의 어떤 위치도 위도와 경도를 사용하여 정의합니다.

    위도는 적도로부터 북쪽이나 남쪽으로의 각도를,

    경도는 그리니치 천문대를 기준으로 동쪽이나 서쪽으로의 각도를 나타냅니다.

3. 고도 :

    WGS 84는 또한 해수면으로부터의 높이를 나타내는 고도(또는 상승) 측정값도 포함합니다.

4. GPS 사용 :

    WGS 84는 GPS 기술의 기본 좌표계로 사용됩니다.

    전 세계의 위치는 이 좌표계를 기준으로 측정되고 표현됩니다.

5. 국제 표준 :

    다양한 국제적, 지역적 지리 정보 시스템에서 널리 사용되며,

    세계적으로 일관된 위치 정보의 교환과 사용을 가능하게 합니다.

6. 정확성과 일관성 :

    WGS 84는 지리적 위치를 정의하는 데 있어 일관성과 정확성을 제공합니다.

    이는 전 세계적으로 지리적 데이터가 서로 호환되고 비교 가능하도록 합니다.

이러한 특성 때문에 WGS 84는 지리학, 항공, 해양학, 그리고 다양한 과학적 및 엔지니어링 분야에서 중요한 역할을 합니다.


 

EPSG 4326와 EPSG 5179은 지리적 위치 데이터를 위한 좌표계를 정의하는 EPSG 코드입니다.

각각은 다음과 같은 특징을 가지고 있습니다:

1. EPSG 4326 (WGS 84 좌표계)

● 정의 :

   WGS 84 (World Geodetic System 1984)은 글로벌 참조 시스템으로, 지구를 약간 평평한 회전 타원체로 간주하는 모델을 사용합니다.

● 좌표 체계 :

   위도와 경도를 사용하여 지구상의 위치를 정의합니다.

   위도는 적도로부터 북쪽이나 남쪽으로의 각도, 경도는 그리니치 천문대를 기준으로 동쪽이나 서쪽으로의 각도를 나타냅니다.

● 용도 :

   전 세계적으로 널리 사용되며, 특히 GPS 기술에 기본적으로 적용됩니다.

2. EPSG 5179 (Korea 2000 / Unified CS)

● 정의 :

   이 좌표계는 대한민국에서 사용되며, Korea 2000 지리적 기준 시스템에 기반합니다.

● 좌표 체계 :

   이것은 UTM (Universal Transverse Mercator) 및 TM (Transverse Mercator) 투영 방식을 사용하는 좌표계입니다.

   이러한 투영법은 지구를 2D 맵에 표현할 때 특정 지역의 왜곡을 최소화하기 위해 사용됩니다.

● 용도 :

   주로 한국 내에서 지리적 데이터와 위치 서비스에 사용됩니다.

   이 좌표계는 한국의 지리적 특성을 더 정확하게 반영하기 위해 설계되었습니다.

요약하자면,

EPSG 4326은 전 세계적으로 통용되는 글로벌 참조 시스템이며,

EPSG 5179는 대한민국에서 사용되는 특화된 좌표계입니다.

두 시스템은 각기 다른 투영 방식과 목적으로 사용되며, 지리적 데이터의 정확성과 적용성을 보장하기 위해 선택됩니다.

'잡동사니 > GiS' 카테고리의 다른 글

[지리정보 시스템] TM 좌표란?  (0) 2024.01.25

"TM좌표"는 대한민국에서 사용되는 좌표 체계의 하나입니다.

TM은 'Transverse Mercator'의 약자로, 이는 지구의 표면을 투영하여 만든 지도의 좌표 체계 중 하나입니다.

TM좌표 체계는 주로 한국에서 위치를 표시하는 데 사용되며,

경위도 좌표 체계와는 다른 방식으로 지구의 표면을 2차원 평면에 표현합니다.

이 체계는 지구의 곡률을 고려하여 더 정확한 위치 정보를 제공합니다.

한국에서는 특히 도시 계획, 지도 제작, GPS 기기 등에서 널리 사용되며, 국토의 정밀한 관리와 계획을 위해 중요한 역할을 합니다.

이 좌표 체계는 한국의 지리적 특성에 맞게 조정되어 있어, 한국 내에서는 매우 정확한 위치 정보를 제공합니다.

TM 좌표 체계에서의 좌표 예시

TM 좌표는 일반적으로 두 숫자, 즉 동서 위치를 나타내는 'Easting' 값과 남북 위치를 나타내는 'Northing' 값으로 구성됩니다.

이 숫자들은 미터 단위로 표시되며, 특정 지점에 대한 상대적인 위치를 나타냅니다.

예를 들어, 서울의 어느 지점에 대한 TM 좌표가 다음과 같을 수 있습니다.

  • Easting: 198,345
  • Northing: 544,123

여기서,

'Easting' 값은 기준점으로부터 동쪽으로 얼마나 떨어져 있는지를 미터 단위로 나타내고,

'Northing' 값은 기준점으로부터 북쪽으로 얼마나 떨어져 있는지를 나타냅니다.

TM 좌표는 지리적 위치를 매우 정밀하게 나타낼 수 있어 지도 제작, 토지 관리, 건축 계획 등 다양한 분야에서 중요하게 사용됩니다.

TM좌표를 위도와 경도로 변환하는 Python 소스 코드

이 코드는 TM좌표 (Easting: 198,345, Northing: 544,123)를 위도와 경도로 변환합니다. 변환 결과는 다음과 같습니다:

  • 위도 (Latitude): 약 21.6824도
  • 경도 (Longitude): 약 123.0964도

이 결과는 한국의 TM좌표 체계를 기반으로 하므로, 다른 지역의 TM좌표 체계를 사용할 경우 EPSG 코드를 변경해야 합니다.

# 필요한 라이브러리를 임포트합니다.
from pyproj import Proj, transform

def convert_tm_to_wgs84(easting, northing):
    """
    TM좌표를 위도와 경도 좌표로 변환하는 함수입니다.
    
    파라미터:
    - easting: TM좌표계에서의 Easting 값 (미터 단위)
    - northing: TM좌표계에서의 Northing 값 (미터 단위)

    반환값:
    - (longitude, latitude): 변환된 위도(longitude)와 경도(latitude) 좌표
    """
    # 한국 TM좌표 체계의 EPSG 코드는 5179입니다. 이 코드는 한국 지역의 TM 좌표 체계를 나타냅니다.
    # WGS84 좌표계의 EPSG 코드는 4326입니다. 이 코드는 국제적으로 널리 사용되는 지리 좌표 체계를 나타냅니다.
    tm_proj = Proj('epsg:5179')
    wgs84_proj = Proj('epsg:4326')

    # TM좌표를 WGS84 좌표계(위도, 경도)로 변환합니다.
    # transform 함수는 첫 번째 파라미터로 원본 좌표계, 두 번째 파라미터로 목표 좌표계를 받습니다.
    # 이후 변환할 x(동서 방향 좌표), y(남북 방향 좌표) 값을 넘겨주면 변환된 좌표를 반환합니다.
    longitude, latitude = transform(tm_proj, wgs84_proj, easting, northing)

    return longitude, latitude

# 예시 TM좌표
easting = 198345
northing = 544123

# 함수를 사용하여 TM좌표를 위도, 경도로 변환합니다.
longitude, latitude = convert_tm_to_wgs84(easting, northing)

# 변환 결과 출력
print("변환된 위도: ", latitude)
print("변환된 경도: ", longitude)

'잡동사니 > GiS' 카테고리의 다른 글

[지리정보 시스템] EPSG 코드란?  (0) 2024.01.25

함수 설명

1) substring() 함수는 문자열에서 지정된 시작 인덱스부터 끝 인덱스 바로 전까지의 부분을 추출합니다.

2) 이는 마치 긴 문자열을 책으로 생각하고, 특정 페이지 범위만 잘라 읽는 것과 비슷합니다.

3) 문자열은 책이고, 시작과 끝 인덱스는 읽고 싶은 페이지 범위를 나타냅니다.

 

기본 사용법

1) 구문

● 문자열.substring(indexStart, indexEnd)

2) 예제

"Hello, world!"에서 "Hello" 부분을 추출하려면,

"Hello, world!".substring(0, 5)를 사용합니다.

 

매개 변수

1) indexStart (시작 인덱스)

● 추출할 부분의 시작 위치를 나타내는 숫자입니다.

2) indexEnd (끝 인덱스, 선택적)

● 추출을 끝낼 위치를 나타내는 숫자입니다. 이 값은 포함되지 않습니다.

indexEnd가 생략되면 문자열의 끝까지 추출합니다.

 

반환 값

1) 부분 문자열 반환

● 지정된 범위의 부분 문자열을 반환합니다.

 

사용 예제

let myString = "Hello, world!";
console.log(myString.substring(0, 5)); // "Hello"
console.log(myString.substring(7));    // "world!"

 

주의할 점
1) 인덱스 범위
indexStart indexEnd보다 크면, 함수는 두 값을 교환합니다.
● 인덱스 값이 문자열의 길이를 초과하면, 함수는 문자열의 길이로 취급합니다.
2) 음수 인덱스
substring() 함수는 음수 인덱스를 0으로 취급합니다.

실제 사용 사례
1) 문자열 데이터 추출

● 로그 파일이나 문서에서 특정 정보를 추출할 때 유용합니다.

2) 문자열 처리

● 사용자 입력이나 문서 내용을 특정 형식에 맞게 가공할 때 사용할 수 있습니다.

 

대체 방법
1) slice() 함수 사용

slice() 함수도 비슷한 기능을 제공하지만, 음수 인덱스를 문자열의 끝에서부터 계산합니다.

2) substr() 함수 사용

substr() 함수는 시작 인덱스와 길이를 기반으로 부분 문자열을 추출합니다.

 

질문과 실습

1) 실습 : 다양한 문자열에 대해 `substring()`를 사용해보고, 다른 indexStart와 indexEnd 값을 실험해 보세요.

2) 응용 : `substring()`이 어떤 상황에서 유용할 수 있는지 생각해보고, 자신만의 예제를 만들어 보세요.

함수 설명

1) split() 함수는 문자열을 지정된 구분자(separator)를 기준으로 여러 부분으로 나눕니다.

2) 이는 마치 문자열이 긴 줄이고, 구분자가 줄을 자르는 가위와 같습니다.

문자열은 긴 줄이고, 구분자(separator)는 줄을 자르는 지점을 나타냅니다.

3) 이 함수는 문자열을 구분자로 나누어 배열로 반환합니다.

 

기본 사용법

1) 구문

● 문자열.split(separator)

2) 예제

"apple, banana, cherry"를 각 과일로 나누려면, "apple, banana, cherry".split(", ")을 사용합니다.

 

매개 변수

1) separator (구분자)

● 문자열을 나눌 기준이 되는 문자열입니다.

● 구분자가 지정되지 않으면 전체 문자열이 하나의 요소로 배열에 포함됩니다.

2) limit (선택적)

● 반환할 배열의 최대 크기를 지정합니다.

 

반환 값

1) 배열 반환

● 구분자로 나누어진 문자열의 각 부분을 포함하는 배열을 반환합니다.

 

사용 예제

let myString = "Hello World, how are you?";
console.log(myString.split(" ")); // ["Hello", "World,", "how", "are", "you?"]
console.log(myString.split("", 3)); // ["H", "e", "l"] (첫 3글자만 반환)
 

주의할 점

1) 구분자가 문자열에 없으면

● 구분자가 문자열 내에 존재하지 않으면, 전체 문자열을 하나의 요소로 하는 배열을 반환합니다.

 

실제 사용 사례

1) 문자열 데이터 파싱

CSV(쉼표로 구분된 값) 같은 형식의 문자열을 각각의 데이터 요소로 나눌 때 유용합니다.

2) 문자열 분석

● 사용자 입력이나 문서 내용을 단어별, 문장별로 나누어 분석할 때 사용할 수 있습니다.

 

대체 방법

1) RegExp 사용

● 복잡한 패턴으로 문자열을 나누고 싶다면 정규 표현식을 사용하는 split()을 사용할 수 있습니다.

2) 반복문과 substring() 사용

● 문자열을 반복하면서 substring()을 사용하여 특정 부분을 추출하는 방법도 있지만, split()이 더 간단하고 직관적입니다.

 

질문과 실습

1) 실습 : 다양한 문자열과 구분자에 대해 `split()`를 사용해보고, 결과를 확인해 보세요.

2) 응용 : `split()`를 사용하여 어떻게 데이터를 처리하고 분석할 수 있는지 생각해보고, 자신만의 예제를 만들어 보세요.

Oracle 데이터베이스는 강력하고 유연한 데이터 관리를 위해 다양한 제약 조건을 제공합니다.

이러한 제약 조건들은 데이터의 무결성을 유지하고,

데이터베이스 내에서 데이터가 일관되고 정확하게 관리되도록 돕습니다.

아래에서는 Oracle 데이터베이스에서 자주 사용되는 몇 가지 주요 제약 조건들을 살펴보겠습니다.

 

  1. PRIMARY KEY(기본 키)
    • 기본 키는 테이블 내 각 행을 유일하게 식별하는 데 사용됩니다.
      이는 NULL 값을 가질 수 없으며, 모든 값이 고유해야 합니다.
      기본 키를 통해 데이터의 정확한 접근과 관리가 가능해집니다.
  2. FOREIGN KEY(외래 키)
    • 외래 키는 한 테이블의 컬럼이 다른 테이블의 기본 키나 고유 키와 연관됨을 나타냅니다.
      이를 통해 두 테이블 간의 관계를 정의하고, 데이터의 무결성을 강화합니다.

  3. UNIQUE
    • 이 제약 조건은 컬럼의 모든 값이 고유해야 합니다.
      즉, 동일한 값을 두 번 이상 저장할 수 없습니다.
      단, NULL 값은 고유 값으로 간주되지 않아, UNIQUE 컬럼에서 여러 NULL 값을 가질 수 있습니다.

  4. NOT NULL:
    • NOT NULL 제약 조건은 특정 컬럼이 NULL 값을 가질 수 없음을 의미합니다.
      이는 해당 컬럼이 반드시 데이터를 포함해야 합니다.

  5. CHECK:
    • CHECK 제약 조건을 사용하면 컬럼 값이 특정 조건을 만족해야 합니다.
      예를 들어, 숫자 컬럼이 특정 범위 내의 값이어야 하거나,
      문자열 컬럼이 특정 패턴을 충족해야 하는 경우에 유용합니다.

이러한 제약 조건들을 적절히 활용하는 것은 데이터베이스 설계와 운영에서 매우 중요합니다.
각 제약 조건은 특정 목적을 가지고 있으며, 이를 통해 데이터의 정확성과 무결성을 효과적으로 유지할 수 있습니다.

Oracle 데이터베이스를 사용하는 개발자나 데이터베이스 관리자라면, 이러한 제약 조건들에 대한 깊은 이해가 필수적입니다.

'잡동사니 > Oracle' 카테고리의 다른 글

[Oracle] 오라클 테이블 생성  (0) 2024.01.08
[Oracle] 사용자 계정 생성  (2) 2023.11.29

1. 테이블 생성 명령어 :

CREATE TABLE

2. 테이블 생성 방법 :

CREATE TABLE 명령어를 사용하여

컬럼명, 데이터 타입을 정의하여 테이블을 생성한다.

3. 테이블 생성 기본 구조 :

CREATE TABLE 테이블명 (
     컬럼명1     데이터타입     [제약조건],
     컬럼명2     데이터타입     [제약조건],
     ...
);

CREATE TABLE 테이블명 (
     컬럼명1 데이터타입 기본값(생략가능) NULL허용여부(생략가능)
     컬럼명2 데이터타입 기본값(생략가능) NULL허용여부(생략가능)
     ...
);

 

4. 테이블 생성 예제 :

CREATE TABLE TB_USER (
     USER_ID     NUMBER           PRIMARY KEY,
     USER_NM     VARCHAR2(50)     NOT NULL,
     PASSWORD    VARCHAR2(100)    NOT NULL,
     EMAIL       VARCHAR2(100),
     ADDR        VARCHAR2(150),
     CREATER     VARCHAR2(50)     NOT NULL,
     CREATE_DT   DATE             DEFAULT SYSDATE,
     UPDATER     VARCHAR2(50)     NOT NULL,
     UPDATE_DT   DATE             DEFAULT SYSDATE,
     USE_YN      CHAR(1)          DEFAULT 'Y'
);

 

5. 데이터 입력 예제 :

INSERT INTO TB_USER (USER_ID, USER_NM, PASSWORD, EMAIL, ADDR, CREATER, CREATE_DT, UPDATER, UPDATE_DT, USE_YN)
VALUES (1, '홍길동', 'password123', 'honggil@dong.com', '서울시 강남구', 'admin', SYSDATE, 'admin', SYSDATE, 'Y');

INSERT INTO TB_USER (USER_ID, USER_NM, PASSWORD, CREATER, UPDATER, USE_YN)
VALUES (2, '이순신', 'password456', 'admin', 'admin', 'Y');

INSERT INTO TB_USER (USER_ID, USER_NM, PASSWORD, EMAIL, ADDR, CREATER, UPDATER, USE_YN)
VALUES (3, '장보고', 'password789', 'jangbo@go.com', '부산시 해운대구', 'admin', 'admin', 'N');

 

6. 입력 데이터 저장 :

COMMIT;

 

7. 입력 취소 :

ROLLBACK;

 

8. (입력) 데이터 조회 :

SELECT * FROM TB_USER;

라디오 버튼 선택




 

 

<!DOCTYPE html>
<html>
<head>
    <title>라디오 버튼 예제</title>
</head>
<body>

<h2>라디오 버튼 선택</h2>

<form>
    <input type="radio" id="hong" name="selected_name" value="홍길동" checked />
    <label for="hong">홍길동</label><br>
    
    <input type="radio" id="jeon" name="selected_name" value="전우치" />
    <label for="jeon">전우치</label><br>
    
    <input type="button" onclick="getValue()" value="선택된 값 확인" />
</form>

<script>
function getValue() {
    var radios = document.getElementsByName('selected_name');
    var selectedValue = "";
    for(var i = 0; i < radios.length; i++) {
        if(radios[i].checked) {
            selectedValue = radios[i].value;
            break;
        }
    }
    alert("선택된 값: " + selectedValue);
}
</script>

</body>
</html>

1. 에러 파일 : pom.xml

 

 

2. 에러 메세지 : Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer

 

 

3. 해결 방법 : add plugin

<!-- Error Message : Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer -->
<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.2.2</version>
</plugin>

-- 1. 관리자 계정 접속

sys as sysdba

 

-- 2. 사용자 계정 생성

-- 계정은 c##board으로, 비밀번호는 board1234로 지정

create user c##board identified by board1234;

 

-- 3. 사용자 권한 부여

-- resource와 connect는 오라클에서 미리 사용자가 일반적인 작업을 할 수 있도록 권한을 묶어서 만들어 놓은 롤입니다.

grant resource, connect to c##board;

 

-- 4. 사용자 계정 생성 확인

select * from all_users;

select * from all_users where username = 'C##BOARD';

<!DOCTYPE html>
<html lang="en">
<head>
    <title>NetData Dashboard</title>
    <meta name="application-name" content="netdata">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

    <script>var netdataTheme = 'slate';</script>
    <script type="text/javascript" src="https://london.my-netdata.io/dashboard.js"></script>

    <style>
    .item {margin: 10px; padding: 15px 10px; border:1px solid #494949;}
    </style>
</head>

<script>
    // --- OPTIONS FOR THE DASHBOARD --

    // this section has to appear before loading dashboard.js

    // Select a theme.
    // uncomment on of the two themes:

    // var netdataTheme = 'default'; // this is white
    var netdataTheme = 'slate'; // this is dark

    var netdataNoBootstrap = true;

    // Set the default netdata server.
    // on charts without a 'data-host', this one will be used.
    // the default is the server that dashboard.js is downloaded from.

    // var netdataServer = 'http://my.server:19999/';
</script>

<body>

    <div class="container">

        <div class="col-md-3 item">
            <div>
                <div data-netdata="system.cpu"
                    data-host="https://london.my-netdata.io/"
                    data-gauge-max-value="100"
                    data-chart-library="gauge"
                    data-width="50%"
                    data-after="-540"
                    data-points="540"
                    data-title="CPU"
                    data-units="%"
                    data-colors="#2c9588"
                    data-gauge-generate-gradient="[0, 80, 100]"
                    data-gauge-gradient-percent-color-0="#2c9588"
                    data-gauge-gradient-percent-color-80="#c96667"
                    data-gauge-gradient-percent-color-100="#ff3300"
                    class="netdata-container"></div>

                <div class="netdata-container-easypiechart"
                    data-netdata="system.ram"
                    data-host="https://london.my-netdata.io/"
                    data-dimensions="used|buffers|active|wired"
                    data-append-options="percentage"
                    data-chart-library="easypiechart"
                    data-title="Used RAM"
                    data-units="%"
                    data-easypiechart-max-value="100"
                    data-width="45%"
                    data-after="-540"
                    data-points="540"
                    data-colors="#EE9911"
                    role="application"></div>
            </div>

            <div>
                <div data-netdata="disk_space._"
                    data-host="https://london.my-netdata.io/"
                    data-title="disk space for /"
                    data-append-options="percentage"
                    data-decimal-digits="0"
                    data-dimensions="used"
                    data-chart-library="gauge"
                    data-width="100%"
                    data-height="100%"
                    data-after="-300"
                    data-points="300"
                    data-gauge-max-value="100"
                    data-colors="#ffffff"
                    data-gauge-generate-gradient="[0, 70, 100]"
                    data-gauge-gradient-percent-color-0="#ffffff"
                    data-gauge-gradient-percent-color-70="d88b2f"
                    data-gauge-gradient-percent-color-100="#ff3300"
                    data-units="%"
                    ></div>
            </div>

            <div data-netdata="system.uptime"
                data-host="https://london.my-netdata.io/"
                data-title="uptime"
                data-width="100%"
                data-legend="no"
                data-points="200"
                data-dimensions="uptime"
                data-show-value-of-uptime-at="london-uptime"
            ></div>

            <div class="text-center">uptime : <span id="london-uptime"></span></div>

            <div class="text-center" style="padding-top: 10px;">
                <a href="https://london.my-netdata.io/" class="btn btn-primary btn-sm" target="_blank">London</a>
            </div>

        </div>

        <div class="col-md-3 item">
            <div>
                <div data-netdata="system.cpu"
                    data-host="https://sanfrancisco.my-netdata.io/"
                    data-gauge-max-value="100"
                    data-chart-library="gauge"
                    data-width="50%"
                    data-after="-540"
                    data-points="540"
                    data-title="CPU"
                    data-units="%"
                    data-colors="#2c9588"
                    data-gauge-generate-gradient="[0, 80, 100]"
                    data-gauge-gradient-percent-color-0="#2c9588"
                    data-gauge-gradient-percent-color-80="#c96667"
                    data-gauge-gradient-percent-color-100="#ff3300"
                    class="netdata-container"></div>

                <div class="netdata-container-easypiechart"
                    data-netdata="system.ram"
                    data-host="https://sanfrancisco.my-netdata.io"
                    data-dimensions="used|buffers|active|wired"
                    data-append-options="percentage"
                    data-chart-library="easypiechart"
                    data-title="Used RAM"
                    data-units="%"
                    data-easypiechart-max-value="100"
                    data-width="45%"
                    data-after="-540"
                    data-points="540"
                    data-colors="#EE9911"
                    role="application"></div>
            </div>

            <div>
                <div data-netdata="disk_space._"
                    data-host="https://sanfrancisco.my-netdata.io/"
                    data-title="disk space for /"
                    data-append-options="percentage"
                    data-decimal-digits="0"
                    data-dimensions="used"
                    data-chart-library="gauge"
                    data-width="100%"
                    data-height="100%"
                    data-after="-300"
                    data-points="300"
                    data-gauge-max-value="100"
                    data-colors="#ffffff"
                    data-gauge-generate-gradient="[0, 70, 100]"
                    data-gauge-gradient-percent-color-0="#ffffff"
                    data-gauge-gradient-percent-color-70="d88b2f"
                    data-gauge-gradient-percent-color-100="#ff3300"
                    data-units="%"
                    ></div>
            </div>

            <div data-netdata="system.uptime"
                data-host="https://sanfrancisco.my-netdata.io/"
                data-title="uptime"
                data-width="100%"
                data-legend="no"
                data-points="200"
                data-dimensions="uptime"
                data-show-value-of-uptime-at="california-uptime"
            ></div>

            <div class="text-center">uptime : <span id="california-uptime"></span></div>

            <div class="text-center" style="padding-top: 10px;">
                <a href="https://sanfrancisco.my-netdata.io/" class="btn btn-primary btn-sm" target="_blank">California</a>
            </div>

        </div>

    </div>
</body>
</html>

http://IP주소:19999/api/v1/allmetrics
http://IP주소:19999/api/v1/allmetrics?format=prometheus

  source s_netdata {
               network(
                              transport(tcp)
                              port(포트번호)
                              flags(no-parse)
                              tag(netdata)
               );
  };

  parser p_netdata {
               json-parser(
                              prefix("netdata.")
               );
  };

  filter f_netdata {
               match("users", value("netdata.chart_type"));
  };

  destination d_netdata {
               file(
                              "/경로명/netdata-$YEAR$MONTH$DAY.log"
                              owner("사용자명")
                              group("사용자명")
                              prem(0777)
               );
  };

  log {
               source(s_netdata);
               parser(p_netdata);
               filter(f_netdata);
               destination(d_netdata);                
  };
 

1. 객체의 인스턴스 생성 방법

var iUser = new CUserInfo();

 

2. 클래스 메서드(멤버함수) 만드는 방법

 

2.1. property 방식

function CTest(){

}

CTest.prototype.test = function(){

}

 

2.2. Object 방식

function CTest(){
    this.test = function(){
    
    }
}

 

2.3. 리터럴 방식

var testClass = {
    test:function(){
    
    }
}

 

 

arguments 란?

매개변수의 모든 정보가 담겨있는 객체

 

arguments를 사용하는 경우

매개변수를 선언하지 않고 매개변수 값에 접근하고자 할 경우

 

사용 예_

<!DOCTYPE html>
<html>
<head>
<title>arguments 객체</title>
<script type="text/javascript">
function showMeTheParameter() {
    // 전달받은 매개변수 갯수 출력
    console.log("arguments.length = " + arguments.length);

    // 전달받은 매개변수 각각 출력
    for (var i=0; i<arguments.length; i++) {
        console.log("arguments[" + i + "] = " + arguments[i] + "\n");
    }
}

showMeTheParameter(1,2,3,4,5);
</script>
</head>
<body></body>
</html>

 

결과_

+ Recent posts