인지 심리학에서 개발된 이론 중 하나. 이 이론은 인간이 자연환경에서 쉽게 주의를 회복할 수 있다는 것을 제안하고 있다.

 

ART는 자극에 따른 주의력의 회복력을 설명하기 위해 개발되었다.

 

일상적으로 우리는 매 순간 다양한 정보들로부터 주의력을 요구받고 있다.

 

그리고 이러한 정보들은 우리의 주의력을 소모시킨다. 이때 우리는 자연환경에서 적극적으로 주의력을 회복할 수 있다는 것이 ART의 핵심 개념이다.

 

ART는 자연환경에서 주의력 회복이 쉬운 이유를 설명하기 위해 "인지 피로"와 "자연 요소"라는 개념을 도입한다.

 

인지 피로란, 지속적인 정보처리와 주의력의 소모로 인해 인간이 느끼는 피로감을 의미한다. 반면 자연 요소는, 자연환경에서 경험할 수 있는 자극들 중에서 인간의 주의를 자연스럽게 끌어당기고 회복시킬 수 있는 것들을 의미한다.

 

따라서 ART는 인간의 주의력이 회복되어야 할 때, 자연환경에서의 휴식과 레저활동 등이 유용하다는 것을 제안하고 있다.

이를 통해 인간의 인지 피로를 최소화하고 주의력을 회복할 수 있는 환경을 제공하는 것이 중요하다는 것을 강조한다.

 

< 관련 논문 >

The Differential Impact of Mystery in Nature on Attention: An Oculometric Study

The Differential Impact of Mystery in Nature on Attention: An Oculometric Study

< Mysql 설치 방법>

①."mysql community installer windows" Google에 검색한다.

②. Windows(x86, 32-bit), MSI Installer을 Download 한다. (이후 나오는 창에서
"No thanks, just start my download"로 Login 없이 다운로드 가능 하다.)

③. Developer Default를 하고, Next를 누른다. ④ 사진에 나오는 Password 입력하는 것이 나올 때까지 계속 Next 누른다.

 

④. root 계정의 비밀번호를 설정하고 기억해 둔다.

⑤. 설치가 완료되었으면, "시작창에 MySQL Workbench 8.0 CE"를 검색하여 MySQL에 접속한다.

⑥. 빨간 네모 박스를 클릭하여, "Connect to MySQL Server"창을 띄운 후, ④에서 설정했던 Password를 입력 후, OK를 클릭한다. 

⑦. 아래와 같이 접속이 되면, MySQL 접속 완성


< DBeaver 설치 방법>

 

①."dbeaver" Google에 검색한다.

 

 

 

②. Download를 한다.

③. Windows(installer)를 클릭해서 Download 한다.

④. 설치된 DBeaver를 시작창에서 검색하여 접속한다.

 

⑤. 데이터베이스 -> 새 데이터베이스 연결을 클릭한다.

⑥. MySQL을 클릭 후 다음을 누른다.

⑦. Password 부분의 빨간색 네모 박스에 Mysql 설치 시, 설정 한 Password를 입력 후 완료 하고, 설치하라고 하는 것은 설치한다.

⑧. 설치 후 아래와 화면이 나오면 성공 (성공하지 못한 경우, Mysql 접속이 안되어 있는 경우가 있으니, 확인해보아야 한다.)

'SQL 이론' 카테고리의 다른 글

DBMS(Database Management System)  (0) 2023.05.16
DataBase 일관성/무결성 제약 조건  (0) 2023.05.16
트랜잭션(Transaction)  (0) 2023.04.13
row와 column이 뭐에요?  (0) 2022.07.28
Data Base가 뭐에요?  (0) 2022.07.28

< 문자형 함수(Character Function) >

변환 함수

LOWER - 알파벳 값을 소문자로 변환

UPPER - 알파벳 값을 대문자로 변환

INITCAP - 첫번째 글자만 대문자로 변환


< 문자 조작 함수 >

CONCAT - 두 문자열을 연결(합성)

SUBSTR - 문자열 중 특정 문자 또는 문자열 일부분을 선택

LENGTH - 명명된 문자의 위치를 구함

LPAD - 왼쪽 문자 자리 채움

RPAD - 오른쪽 문자 자리 채움

LTRIM - 왼쪽 문자를 지움

RTRIM - 오른쪽 문자를 지움

TRANSLATE - 특정 문자열을 대체

REPLACE - 특정 문자열을 대신

문제 ) EMP 테이블에서 scott의 정보를 사원번호, 성명, 담당업무(소문자로),부서번호를 출력하여라.

SELECT empno,ename,LOWER(job),deptno
FROM emp
WHERE LOWER(ename) = 'scott';

 

< UPPER 함수 >

전부 다 대문자 변환 

 

문제 ) EMP 테이블에서 scott의 정보를 사원번호,성명,담당업무,부서번호를 출력하여라.

SELECT empno,ename,job,deptno
FROM emp
WHERE ename = UPPER('scott');

< INITCAP 함수 >

각 단어의 첫번째 문자를 대문자로, 나머지는 소문자로

문제 ) DEPT 테이블에서 첫 글자만 대문자로 변환하여 모든 정보를 출력하여라.

SELECT deptno,INITCAP(dname),INITCAP(Ioc)
FROM dept

 

< CONCAT 함수 >

두 개의 문자열을 합친다. (CONCAT은 두 개의 매개변수만 사용 가능하다.)

 

< LPAD 함수 >

문자 값을 우측부터 채운다.

 

'SQL' 카테고리의 다른 글

SQL 문제 연습(下)  (0) 2023.06.01
DBeaver low 추가/테이블의 특정 컬럼 추출 방법/ORDER BY  (0) 2023.05.14
Order By  (0) 2023.05.12
LIKE,IS NULL,AND,OR,NOT  (0) 2023.05.12
Between,IN  (0) 2023.05.12

Order By 문법

SELECT [DISTINCT] {*, column [alias], . . .}
       FROM table_name
       [WHERE condition]
       [ORDER BY {column, expression} [ASC | DESC]];

ORDER BY  : 검색된 행이 출력되는 순서를 명시한다.

ASC : 오름차순

DESC : 내림차순

 

문제 ) EMP 테이블에서 입사일자 순으로 정렬하여 사원번호, 이름, 업무, 급여, 입사일자, 부서번호를 출력하여라.

SELECT hiredate,empno,ename,job,sal,deptno
FROM emp
ORDER BY hiredate;

 

문제 ) EMP 테이블에서 가장 최근에 입사한 순으로 사원번호, 이름, 업무, 급여, 입사일자, 부서번호를 출력하여라.

SELECT hiredate,empno,ename,job,sal, deptno
FROM emp
ORDER BY hiredate DESC;

 

문제) EMP 테이블에서 부서번호로 정렬한 후 부서번호가 같을 경우 급여가 많은 순으로 정렬하여 사원번호, 성명, 업무, 부서번호, 급여를 출력하여라.

SELECT deptno,sal,empno,ename,job
FROM emp
ORDER BY deptno, sal DESC;

문제 ) EMP 테이블에서 첫번째 정렬은 부서번호로 두번째 정렬은 업무로 세번째 정렬은 급여가 많은 순으로 정렬하여 사원번호, 성명, 입사일자, 부서번호, 업무, 급여를 출력하여라.

SELECT deptno,job,sal,ename,hiredate
FROM emp
ORDER BY deptno,job,sal DESC;

'SQL' 카테고리의 다른 글

DBeaver low 추가/테이블의 특정 컬럼 추출 방법/ORDER BY  (0) 2023.05.14
문자형 함수  (0) 2023.05.12
LIKE,IS NULL,AND,OR,NOT  (0) 2023.05.12
Between,IN  (0) 2023.05.12
특정 행의 검색/Oracle  (0) 2023.04.21

< LIKE 연산자 >

문제 ) EMP 테이블에서 입사일자가 82년도에 입사한 사원의 정보를 사원번호, 성명, 담당 업무, 급여,입사일자, 부서번호를 출력하여라.

SELECT empno,ename,job,sal,hiredate,deptno
FROM emp
WHERE hiredate LIKE '%82';

 

< IS NULL 연산자 >

NULL값은 값이 없거나, 알 수 없거나, 적용할 수 없다는 의미이므로 NULL값을 조회하고자 할 경우 사용한다.

문제 ) EMP 테이블에서 보너스가 NULL인 사원의 정보를 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하여라.

SELECT empno,ename,job,sal,hiredate,deptno
FROM emp
WHERE comm IS NULL;

 

< AND 연산자 > 

양쪽의 조건이 참이어야 TRUE를 RETURN한다.

 

문제 ) EMP 테이블에서 급여가 1100 이상이고 JOB이 Manager인 사원의 정보를 사원번호,성명, 담당업무, 급여, 입사일자, 부서번호를 출력하여라.

SELECT empno, ename, job,sal,hiredate,deptno
FROM emp
WHERE sal >= 1100 AND job = 'MANAGER';

 

< OR 연산자 >

문제 ) EMP 테이블에서 급여가 1100이상이거나 JOB이 Manager인 사원의 정보를 사원번호,성명,담당업무,급여,입사일자,부서번호를 출력하여라.

SELECT empno,ename,job,sal,hiredate,deptno
FROM emp
WHERE sal >= 1100 OR job = 'MANAGER';

 

< NOT 연산자 >

1) NOT연산자의 우측의 값이 거짓이면 TRUE를 Return

문제 )  EMP테이블에서 급여가 JOB이 Manager,Clear,Analyst가 아닌 사원의 정보를 사원번호,성명,담당업무,급여,부서번호를 출력하여라.

 

SELECT empno,ename,job,sal,deptno
FROM emp
WHERE job NOT IN ('MANAGER','CLERK','ANALYST');

 

문제 ) 업무가 PRESIDENT이고 급여가 1500 이상이거나 업무가 SALESMAN인 사원의 정보를 사원번호,이름,업무,급여를 출력 하라.

SELECT empno,ename,job,sal
FROM emp
WHERE job = 'SALESMAN' OR job = 'PRESIDENT' AND sal > 1500;

 문제 ) 업무가 PRESIDENT 또는 SALESMAN이고 급여가 1500 이상이거나 사원의 정보를 사원 번호,이름,업무, 급여를 출력하여라.

SELECT empno,ename,job,sal
FROM emp
WHERE (job = 'SALESMAN' OR job = 'PRESIDENT') AND sal > 1500;

'SQL' 카테고리의 다른 글

DBeaver low 추가/테이블의 특정 컬럼 추출 방법/ORDER BY  (0) 2023.05.14
문자형 함수  (0) 2023.05.12
Order By  (0) 2023.05.12
Between,IN  (0) 2023.05.12
특정 행의 검색/Oracle  (0) 2023.04.21

< BETWEEN 연산자 >

두 값의 범위에 해당하는 행을 출력하기 위해 사용한다.

 

 

문제 ) EMP Table에서 급여가 1250에서 1500 사이의 정보를 성명, 담당업무, 급여, 부서 번호를 출력하여라.

SELECT ename,job,sal,deptno
FROM emp
WHERE sal BETWEEN 1300 AND 1500;
SELECT ename,job,sal,deptno
FROM emp
WHERE sal >= 1300 AND sal <= 1500;

< IN 연산자 >

목록에 있는 값에 대해서 출력하기 위해 IN연산자를 사용한다. 

 

문제 ) EMP Table에서 사원번호가 7902,7788,7566인 사원의 정보를 사원번호, 성명, 담당업무, 급여, 입사일자를 출력하라.

SELECT empno,ename,job,sal,hiredate
FROM emp
WHERE empno IN (7902,7788,7566);
SELECT empno,ename,job,sal,hiredate
FROM emp
WHERE emp = 7902 OR empno = 7788 OR empno = 7566;

 

'SQL' 카테고리의 다른 글

DBeaver low 추가/테이블의 특정 컬럼 추출 방법/ORDER BY  (0) 2023.05.14
문자형 함수  (0) 2023.05.12
Order By  (0) 2023.05.12
LIKE,IS NULL,AND,OR,NOT  (0) 2023.05.12
특정 행의 검색/Oracle  (0) 2023.04.21

< 네트워크 구성 개념 > 

(1) 집에서의 LAN 구성을 살펴보면 보통은 "인터넷 공유기"를 중심으로 사설망 (내부 인터넷망)을 구성하고 다양한 기기를 연결해서 사용한다.

(2) 연결방식은 크게 유선과 무선으로 나뉘는데, LAN 케이블이 필요하면
유선, 필요하지 않으면 무선이라고 생각하면 된다. 


< 네트워크 접속 장치 >

(1) 네트워크 접속 장치는 Application Data를 정상적으로 전송하기 위한 장치

(2) 네트워크 접속 장치에는 다양한 종류가 있지만, 가장 기본적으로는 스위치와 라우터가 있다.

(3) 스위치는 네트워크 입구에 해당한다. 
(4) 라우터는 서로 다른 네트워크를 구분 짓고 연결하는 장치이다. 
(5) 기업의 네트워크에는 많은 네트워크가 존재하는데, 이러한 네트워크를
연결하는 것이 "라우터"이다.   

 

 

'Network' 카테고리의 다른 글

인터네트워킹(InterNetworking)  (0) 2023.06.21
LAN,MAN,WAN  (0) 2023.06.20
데이터 통신 시스템  (0) 2023.06.20
컴퓨터 네트워크란?  (0) 2023.06.20
1. 네트워크 개념  (0) 2023.05.12

1) 네트워크(Network)
(1) 모뎀이나 LAN케이블, 무선매체등 통신설비를 갖춘 컴퓨터를 서로 간에
연결하는 조직체계, 통신망이다. 

(2) 통신설비들로 두 대 이상의 컴퓨터를 서로 연결한 것을 말한다.

 

2) 인터넷(internet)
(1) 서로 통신 할 수 있는 둘 또는 그 이상의 네트워크

(2) 수백만 개의 네트워크가 상호 연결된 네트워크

(3) 모든 LAN(Local Area Network)들이 WAN(Wide Area Network)으로 연결된 망


 < 다수의 컴퓨터를 네트워크로 연결했을 때 얻을 수 있는 이점 >

(1) 데이터 공유

(2) 주변 장치 공유

(3) 쉬운 백업

 

 


< 프로토콜 >

개념: 네트워크에 연결된 컴퓨터들이 데이터를 원활하게 주고받을 수 있도록 미리 정해진 통신 규칙들의 집합.

이 규칙들을 모두 따라야만 장치들간에 원활한 데이터 송수신이 가능해진다.


 

<Network 관련 명령어>

 

①.hostname

컴퓨터 이름 확인

②.net user 명령어

컴퓨터 사용자 계정 확인

③. ipconfig 명령어

(1). 컴퓨터의 네트워크 설정 정보(IP 주소, 게이트웨이 등)를 확인할 수 있다.
(2). IP 주소는 네트워크에 연결된 모든 장치에 있는 고유 주소를 말하며,
IP 주소를 이용하여 서로 통신할 수 있다

④. ipconfig/all 명령어

물리적 주소 정보를 알 수 있다. 

 

⑤. ping 명령어
(1)컴퓨터의 네트워크  상태를 점검하거나 진단하는 명령어로,

컴퓨터가 네트워크에 정상적으로 연결되었는지 확인할 수 있다.

(2)연결에 문제가 있을 때는 응답이 없거나 왕복시간이 오래 걸리는 것으로 측정된다.
(3)명령어사용방법: ping + 해당컴퓨터의 IP 주소

 

'Network' 카테고리의 다른 글

인터네트워킹(InterNetworking)  (0) 2023.06.21
LAN,MAN,WAN  (0) 2023.06.20
데이터 통신 시스템  (0) 2023.06.20
컴퓨터 네트워크란?  (0) 2023.06.20
2.네트워크 구성  (0) 2023.05.12

 

Docker 명령어가 Client의 역할을 한다.

 

Docker Engine이 띄어져 있는 곳을 Docker Host 이다.  

Docker HOST에는 images랑 Containers가 있다.

images를 어떻게 관리를 하냐면, image는 직접 bulid하는 방법, 혹은 pull 명령어를 통해 remote해서 가져오는 방법이 있다.

 

이미지를 가져올 때 쓰는 것을 registry(이미지 저장소) 라고 한다.

이미지저장소에서 다른 사람들이 공유해준 이미지를 가져와서 로컬 도커 호스트에 저장할 수 있고,

이미지 저장소로 부터 실행을 시키면 Container가 된다.

 

 

위의 그림 처럼, 이미지와 컨테이너는 1:N 관계 이다.

 

 

 

위의 그림은, Docker가 Image를 만들 때 사용하는 file이 Docker File이 있다. 이걸 준비해서 BUILD를 수행하면,

Docker Image가 만들어 진다. Docker Image를 Docker Run명령어를 통해서  실행시키면 Docker Container가 된다.

이런 기본적인 작업 Cycle이 있다. 

 

 

위의 그림처럼 Repository Name/Image Name:Image Tag를 통해 이름을 구성한다.

Image Tag를 생략하면, 최신 리비전을 가리킨다.

저장소 이름이 생략되면 도커 허브로 인식 된다. 

 

 

 

< Docker 이미지 저장소 >

도커 이미지 저장소는 Docker image를 관리하고 공유하기 위한 서버 어플리케이션 이다.

Public과 private으로 나뉜다.  Public은 Dockerhub와 Quay가 있다.

비공개형 이미지 저장소는 기업에서 이미지를 관리하고 공유하는 목적이다. 주로 AWS ECR을 통해 팀 내에 비공개 형태로 운영하다. Docker Registry도 가능하다.

 

< 구성 요소 >

Docker Registry를 통해서 Ubuntu나 cassandra, Oracle에서 사전에 준비된 이미지를 통해 Pull,run 명령어를 통해 HOST에 이미지 저장 되고, Container를 실행 시킴으로써 Docker Demon이 Container를 관리할 수 있게 된다.

 

 

출처: FastCampus Kubernetes와 Docker로 한 번에 끝내는 컨테이너 기반 MSA

'Docker' 카테고리의 다른 글

Docker란?  (0) 2023.05.12
커널(kernel)  (0) 2023.05.12
Devops가 걸어온 길  (0) 2023.05.11
기존 인프라와 차이점/글로벌 인프라/AWS 리전  (0) 2023.05.11

< 컨테이너 기술의 발전 >

기업들이 어떻게 서비스를 '효율적'으로 운영할 것 인가?를 어떻게 풀어왔는지 과거로 돌아가볼 필요가 있다.

 

가상화 기술이 발전하기 전

 

아래의 그림과 같이 Hardware에 OS가 설치, 그 위에 App에 필요한 Lib&Framework를 운영체제에 설치하고 실행을 할 수 있게 하였다.


< 발생하는 문제 >

추후에 다양한 서비스들이 실행이 되어야 하는 needs가 생기가 되고, 어떻게 하면 비용 효율성과 컴퓨팅 자원을 최대한 잘 쓸 수 있을까?

라는 고민을 하게 된다.

예를 들어 하나의 컴퓨터에 App1, App2, App3이 있을 수 있는데

App1이 필요로 하는 것이 L1, L2가 있을 수 있고 App2 App1 App3가 있을 수 있다.

App3는 L4가 필요로 한다면, App은 L1의 version 1을 의존성으로 가질 수 있고

App2는 L1의 version2를 의존성으로 가질 수 있다. 근데 보통 운영체제들이 공유 라이브러리를 설치하는 환경에서는 동일한 공유 라이브러리에서는 하나의 버전만 설치를 하게끔 허용하는 것이 대부분인데, 이러한 경우 보통 정적으로 컴파일된 L1 라이브러리를 app1과 배포해서 해결하는 방법도 있다.

이런 식으로 각각 애플리케이션이 공유하는 자원 충돌이 생기게 된다.

 

이러한 문제를 해결하기 위해 기업들은 고민하게 되고 어떻게 하면 app1,2,3을 격리를 시켜서 문제가 발생하지 않도록 하면서 컴퓨팅 자원을 효율적으로 쓸 수 있을까?

 

고민을 하게 된다. 그 고민을 통해서 나온 게 가상화 기술이라고 할 수 있다.

위의 그림은 가상머신을 이용한 가상화 방법인데, 하드웨어 위에 운영체제 위에 Hypervisor가 올라가게 되는데,

Hardware를 대상으로 하다 보니, 성능 효율성이 떨어지고 자원의 Overhead가 발생한다.

-> 이러한 문제들을 풀기 위해 어떠한 기술을 사용해야 문제점들을 해결할까? 해서 탄생한 기술이 아래의 그림이다.

 

하드웨어 위에 운영체제가 설치되고, 그 위에는 Docker 엔진이 위치하게 된다. 이러한 구조에서, 각각의 Docker 컨테이너는 호스트 운영체제에서 볼 때 일종의 프로세스로 처리된다. 이는 호스트 운영체제에서 직접 실행되는 프로세스와 본질적으로 큰 차이가 없지만, 몇 가지 중요한 차이점을 통해 격리 기술을 제공한다.

Docker는 chroot, 네임스페이스 등의 기술을 활용하여 프로세스 ID 격리, 네트워크 격리 등을 제공한다. 따라서 Docker 컨테이너는 호스트 운영체제에서 실행되는 프로세스이긴 하지만, 호스트 운영체제의 커널을 공유하면서도 다른 프로세스로부터 격리된 환경을 제공한. 이러한 점이 Docker 컨테이너를 특별하게 만든다.

Docker 컨테이너의 이런 특성 덕분에, 호스트 운영체제에서 직접 실행되는 프로세스에 비해 자원 오버헤드가 매우 적다. 또한, 각 컨테이너가 독립적인 환경을 가지므로 의존성 충돌 문제도 최소화된다. 이런 특징들이 Docker를 매우 효율적인 도구로 만들어 주었다.

 

< 쿠버네티스는 무엇인가? >

Container Orchestration System

 

Contatiner Engine 같은 경우, 하나의 서버 위에 Container를 어떻게 관리할 수 있을까 하는 "관리 소프트웨어"라고 보면 돼,  "Container Orchestration System은 여러 서버로 구성된 클러스터 환경에서 컨테이너들을 어떻게 잘 관리할 수 있을까?"

에서 비롯된 클러스터 환경에서 컨테이너를 관리하는 소프트웨어이다.

 

 

밑의 도표를 통해 더 쉽게 발전흐름도를 알아볼 수 있다.

 

 

출처: Fast Campus Kubernetes와 Docker로 한 번에 끝내는 컨테이너 기반 MSA

'Docker' 카테고리의 다른 글

01.Docker Image와 Container  (0) 2023.05.12
커널(kernel)  (0) 2023.05.12
Devops가 걸어온 길  (0) 2023.05.11
기존 인프라와 차이점/글로벌 인프라/AWS 리전  (0) 2023.05.11

+ Recent posts