- 이벤트 루프 : 이벤트 발생 시 호출할 콜백 함수들을 관리하고 실행순서를 결정한다.

                        노드가 종료 될 때까지 이벤트 처리를 위한 작업을 반복하므로 루프(loop)라고 부른다.

- 백그라운드 : setTimeout같은 타이머나 이벤트 리스너들이 대기하는 곳. 여러 작업이 동시에 실행될 수 있다.

- 태스크 큐 : 이벤트 발생후 백그라운드에서는 태스크 큐로 타이머나 이벤트 리스너의 콜백 함수를 보낸다.

                     정해진 순서대로 콜백들이 줄을 서있으므로 콜백 큐라고도 불리나 특정 경우에는 순서가 바뀌기도 한다.

 

var, const, let

 

요즘엔 var 잘 안쓰고 let이나 const 많이 쓴다고함

var는 블록 스코프를 무시한다는 특징이 있음

ex)

if (true) {

 var x = 3;

}

conlose.log(x); //3

 

if (true) {

 const y = 3;

}

console.log(y); // Uncaught ReferenceError: y is not defined

 

const 는 = 을 한번만 쓸 수 있다.

const a = 3;

a = '5'; // 에러

const b = { name : 'value' };

b.name = 'changevalue';

 

const c;

c = 'xxxx'; // error

 

값을 바꾸고 싶으면

let c = 5;

c = 3;

c = 10;


템플릿 문자열, 객체 리터럴

 

var won = 1000;

var result = '이 과자는' + won + '원입니다.';

// 이 과자는 1000원 입니다.

 

const result = '이 과자는 ${won}원입니다'; // 템플릿 문자열


화살표 함수

 

function add1(x, y) {

 return x + y;

}

 

const add2 = (x, y) => {

 return x + y;

}

 

const add3 = (x, y) => x + y;

 

const add4 = (x, y) => (x + y);

 

function not1(x) {

 return !x;

}

 

const not2 = x => !x;

 

const obj = (x, y) => ({x, y}); // 객체를 return 할때는 소괄호가 필수

 

* 기존 function 이 안없어진 이유는? this 때문

강사왈 ) this를 써야하는 상황이면 function을 쓰고, this가 없으면 화살표를 쓰는 것을 추천한다고 함.

 

button.addEventListener('click', function() {

 console.log(this.textContent); // 버튼에 적혀있는 텍스트 값을 가져옴

});

 

this;

button.addEventListener('click', (e) => {

 console.log(this.textContent); // 동작 안함, 바깥에 있는 this로 인식

});

 

button.addEventListener('click', (e) => {

 console.log(e.target.textContent); // function 의 this처럼 사용하려면 e.target.* 으로 사용해야함

});


 

'IT > Node.js' 카테고리의 다른 글

Node.js 설치하기  (0) 2022.09.14
노드란 무엇인가 & 특성  (0) 2022.09.12

https://nodejs.org/en/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

Node.js 다운로드 및 설치

 

https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

vscode 다운로드 및 설치

 

 

'IT > Node.js' 카테고리의 다른 글

알아두어야 할 자바스크립트  (1) 2022.09.22
노드란 무엇인가 & 특성  (0) 2022.09.12

Node.js는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 입니다.

브라우저, HTML의 종속성을 벗어나서 Javascript를 실행할 수 있습니다.

- 런타임: 특정 언어로 만든 프로그램들을 실행할 수 있게 해주는 가상머신(크롬의 V8 엔진사용)의 상태

- 노드: 자바스크립트로 만든 프로그램들을 실행할 수 있게 해줌

- 다른 런타임으로는 웹 브라우저(크롬,엣지..등)가 있음

- 노드 이전에도 자바스크립트 런타임을 만들기 위한 시도가 있었으나 엔진 속도 문제로 실패함

 

노드는 서버인가? No!

- 서버의 역할도 수행할 수 있는 자바스크립트 런타임

- 노드로 자바스크립트로 작성된 서버를 실행할 수 있음

- 서버 실행을 위해 필요한 http/https/http2 모듈을 제공

 

노드의 특성

싱글Thread이면서 비동기 모델 → 엄청난 장점이라 인기가 상승함!

 

- 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식 (대부분의 프로그래밍 특성..)

1) 이벤트 리스너에 콜백 함수 등록

2) 이벤트 발생

3) 등록된 콜백 함수 호출

 

- 논블로킹 I/O

오래걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오래 걸리는 함수를 실행

대체로 동기이멘서 블로킹, 비동기이면서 논블로킹

비동기이면서 논블로킹일때 동시에 돌아간다고 오해하는데, 노드에서 동시에 돌아가게 하는 것은 힘듦

ㄴ 논 블로킹 방식 하에서 일부 코드는 백그라운드에서 병렬로 실행

ㄴ 일부 코드: I/O작업, 압축, 암호화 등

ㄴ 나머지 코드는 블로킹 방식으로 실행됨

ㄴ I/O작업이 많을 때 노드 활용성이 극대화

 

- 프로세스와 스레드

ㄴ 프로세스: 운영체제에서 할당하는 작업의 단위, 프로세스 간 자원공유 X

ㄴ 스레드: 프로세스 내에서 실행되는 작업의 단위, 부모 프로세스 자원 공유

 

노드 프로세스는 멀티 스레드이지만 직접 다룰 수 있는 스레드는 하나이기 때문에 싱글 스레드라고 표현

노드는 주로 멀티 스레드 대신 멀티 프로세스 활용

노드 14버전부터 멀티 스레드 사용 가능

 

서버로서의 노드

서버: 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램

클라이언트: 서버에 요청을 보내는 주체(브러우저, 데스크탑 프로그램, 모바일 앱, 다른 서버에 요청을 보내는 서버)

 

노드 != 서버

But, 노드는 서버를 구성할 수 있게 하는 모듈을 제공함

 

노드서버의 장단점

장점 단점
멀티 스레드 방식에 비해 컴퓨터 자원을 적게 사용함 싱글 스레드라서 CPU 코어를 하나만 사용함
I/O 작업이 많은 서버로 적합 CPU 작업이 많은 서버로는 부적합
멀티 스레드 방식보다 쉬움 하나뿐인 스레드가 멈추지 않도록 관리해야함
웹 서버가 내장되어 있음 서버 규모가 커졌을 때 서버를 관리하기 어려움
자바스크립트를 사용함 어중간한 성능
JSON 형식과 호환하기 쉬움  

 

서버 외의 로드

자바스크립트 런타임이기 때문에 용도가 서버에만 한정되지 않음

웹, 모바일 데스크탑 어플리케이션에서도 사용

'IT > Node.js' 카테고리의 다른 글

알아두어야 할 자바스크립트  (1) 2022.09.22
Node.js 설치하기  (0) 2022.09.14


제 업무는 사내시스템개발 쪽이라 데이터 관련으로는
SQL이나 프로시저 정도만 하고 있습니다.
당장 데이터 분석 업무를 하고 있지는 않지만
데이터 분석 분야에 호기심이 있었는데
두잇! 쉽게 배우는 R 데이터 분석
책을 좋은 기회로 받게 되어 보게 되었습니다.


두잇 시리즈는 학생 시절부터 봐왔던 시리즈 입니다.
설치부터 실습까지 친절하게 알려줘서
초보자들이 공부하기에 좋은 것 같습니다.
R 데이터 분석도 아주 기초부터 실습까지
딱딱하지 않으면서 따라하기 쉽게 구성되어 있습니다.


빠르게 끝내고 싶다면
위 사진 스케줄대로 2주만에 가능하다고 하네요.
개인 상황에 맞게 학습하시면 될 것 같습니다.


R과 R 스튜디오 설치 부터 알려줍니다.


R 의 기초 변수 만들기부터 시작해서
데이터 가공까지 순서대로 진행됩니다.
순서대로 따라하다보면 자연스럽게
문법을 익힐 수 있을 것 같습니다.


뒤로 가면 그래프 만들기, 텍스트 마이닝 등
데이터 분석 활용 관련 내용이 나옵니다.


마지막 부분에는
데이터 분석 관련 커리어 집중 방향,
데이터 분석 기술을 효율적으로
익히는 방법 에 대해 다루고 있습니다.
데이터 분석 관련 진로를
생각하시는 분들께 도움이 될 것 같습니다.


R 데이터 분석, 데이터 분석에 관심이 있는 분들은
두잇 쉽게 배우는 R 데이터 분석
보시면 좋을 것 같습니다~



#이지스창고털이서평단
#이지스퍼블리싱
#Doit시리즈
#된다시리즈
#Doit!R데이터분석
📚

'IT > 기타등등' 카테고리의 다른 글

HTML 태그 특수문자 리스트  (0) 2020.10.01

1. VirtualBox 설치

https://www.virtualbox.org/wiki/Downloads

 

Downloads – Oracle VM VirtualBox

Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.0 packages, see Virt

www.virtualbox.org

Windows hosts 클릭 -> 다운로드 후 설치

 

 

1-1. 설치 후 VirtualBox 기본 설정 셋팅

환경설정 -> 입력 -> 가상머신(M)탭 선택 -> 호스트 키 조합 "Ctrl+Alt" 값으로 셋팅

 

업데이트 -> 업데이트 찾기 체크박스 체크 해제

 

 

네트워크 ->네트워크 추가 (별도 셋팅 X)

 

확인!

 

2. CentOS 설치

 

https://www.centos.org/download/

 

Download

As you download and use CentOS Linux or CentOS Stream (What's the difference?), the CentOS Project invites you to be a part of the community as a contributor. There are many ways to contribute to the project, from documentation, QA, and testing to coding c

www.centos.org

7(2009)탭 -> x86_64 클릭

 

 

..navercorp.. 클릭

 

CentOS-7-x86_64-Minimal-2009.iso 다운로드

 

2-1. virtualbox에 CentOS 만들기

새로만들기 -> Linux 서버정보 입력후 다음

 

 

하드디스크 -> 지금 새 가상 하드 디스크 만들기

 

VHD(가상 하드 디스크) 선택 -> 다음

 

 

동적 할당 선택 -> 다음 하면 리눅스 서버 생성

 

2-2. CentOS 추가 설정하기

설정 -> 일반 -> 고급

클립보드 공유 / 드래그 앤 드롭 양방향 셋팅

 

시스템 -> 마더보드 부팅순서에서 플로피 지우기

 

 

시스템 -> 프로세서 CPU 4개로 늘림

 

 

저장소 -> 광학드라이브 -> 디스크파일 선택

다운받은 CentOS iso 파일 선택 -> 확인

 

 

네트워크 위와같이 셋팅

 

셋팅을 다 마치고 시작을 누르면

 

위와같이 뜨게되면 설치되기 시작함 / english 선택

date & time 서울로 변경

 

installation destination 클릭 -> done

 

Network & Host name -> Ethernet On으로 변경 -> Done -> Begin Installation 클릭 후 설치

 

ROOT PASSWORD 셋팅

 

 

설치 완료 후 Reboot 클릭!

 

linux 나온 화면에서 root / 설정한 비밀번호 입력하면 CentOS 설치 및 로그인 완료! 

locate *.log
=> 이 컴퓨터에 있는 전체 로그파일 검색

검색작업을 수행하면 디렉토리를 뒤지지 않고 데이터베이스를 뒤짐
데이터베이스를 뒤져서 정보를 더 빠르게 보여줌

find
locate보다는 성능은 떨어질 수 있으나 현재 상태의 실시간 파일정보를 가져옴
다양한 사용법이 있어서 사용하기 좋음.

* find 사용예제 링크
https://www.tecmint.com/35-practical-examples-of-linux-find-command/

35 Practical Examples of Linux Find Command

The Linux find command is one of the most important and frequently used command command-line utility in Unix-like operating systems. The find command is used to search and locate the list of files and directories based on conditions you specify for files t

www.tecmint.com


** 내가 자주 사용하는 find 명령어

find . / -name "*.*" | xargs grep --color=auto "찾는텍스트값"

 

출처: https://www.thegeekstuff.com/2010/09/linux-file-system-structure/

if !  [ -d bak ]; then 
        mkdir bak 
fi 
cp *.log bak

bak이라는 디렉토리가 없으면 bak 디렉토리를 만들고

로그 파일을 백업하는 쉘 스크립트 예제

 

chmod +x backup

파일을 실행 가능하게 권한 변경 (파일 권한 변경 755랑 동일)

 

명령어 실행 후 bak 폴더 생성, 로그파일 복사 확인 완료

컴퓨터 운영체계의 가장 중요한 핵심으로써 운영체계의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다.

 

커널셸(shell)과 대비될 수 있는데, 은 운영체계의 가장 바깥부분에 위치하고 있으면서, 사용자 명령어에 대한 처리를 담당한다.

일반적으로 커널에는 종료된 입출력연산 등 커널의 서비스를 경쟁적으로 요구하는 모든 요청들을 처리하는 인터럽트 처리기와 어떤 프로그램들이 어떤 순서로 커널의 처리시간을 공유할 것인지를 결정하는 스케줄러, 그리고 스케줄이 끝나면 실제로 각 프로세스들에게 컴퓨터의 사용권을 부여하는 수퍼바이저(supervisor) 등이 포함되어 있다.

또한 커널은 메모리나 저장장치 내에서 운영체계의 주소공간을 관리하고, 이들을 모든 주변장치들과 커널의 서비스들을 사용하는 다른 사용자들에게 고루 나누어주는 메모리관리자를 가지고 있다. 커널의 서비스는 운영체계의 다른 부분이나, 흔히 시스템 호출이라고 알려진 일련의 프로그램 인터페이스들을 통해 요청된다.

 

[네이버 지식백과] 커널 [kernel] (NEW 경제용어사전, 2006. 4. 7., 미래와경영연구소)

wget

리눅스에서 url을 통해서 파일 다운로드를 하고 싶을 때 사용할 수 있는 명령어

 

 

wget http://unsplash.com/photos/8V8qCIIo554/download

명령어를 실행시키니 다운로드가 되었다.

 

 

url 경로 명대로 저장됨

파일명 지정해서 저장하고 싶을 경우

wget -0 paris.jpeg http://unsplash.com/photos/8V8qCIIo554/download

위 명령어처럼 지정해 주면 됨.

 

 

 

 

 

git

버전관리시스템 중에서 대표적인 시스템 중 하나

특정 운영체제에 종속된 프로그램이 아님

(또 하나 알고있어야 할 사이트 : github 오픈소스 프로젝트 사용할 때 좋음)

 

예를들어 페이스북에 만든 react github 페이지를 볼 수 있다.

github.com/facebook/react

 

facebook/react

A declarative, efficient, and flexible JavaScript library for building user interfaces. - facebook/react

github.com

 

이러한 오픈소스를 직접 다운 받을 수도 있고 리눅스에서 직접 받을 수도 있다.

 

 

code 버튼을 누르면  오픈소스의 소스코드 주소를 볼 수 있다. 주소 복사!

https://github.com/facebook/react.git 

 

 

clone 명령어를 수행하면 react 소스를 다운받아 온다.

react_src 라는 폴더에 다운 받도록 했다.

 

 

다운로드 완료된 후 해당 폴더에 들어면 다운로드 된 오픈소스를 확인할 수 있다. 

+ Recent posts