전체 글

노드는 코드를 모듈로 만들 수 있다는 점에서 브라우저의 자바스크립트와는 다르다. 모듈이란 특정한 기능을 하는 함수나 변수들의 집합을 말한다. ex) 수학에 관련된 코드들만 모아서 모듈을 하나 만들 수 있다. 모듈로 만들어두면 여러 프로그램에 해당 모듈을 재사용할 수 있다. CommonJS 모듈은 표준 자바스크립트 모듈은 아니지만 노드 생태계에서 가장 널리 쓰이는 모듈이다. 아래 소스 코드에서 변수를 두 개 선언했고, module.exports에 변수들을 담은 객체를 대입했다. 다른 파일에서 이 파일을 불러오면 module.exports에 대입된 값을 사용할 수 있다. const odd = 'CJS 홀수입니다.'; const even = 'CJS 짝수입니다.'; module.exports = { odd, ..
노드는 V8과 더불어 libuv라는 라이브러리를 사용한다. V8과 libuv는 C와 C++로 구현되어 있으며, 코딩한 자바스크립트 코드는 노드가 알아서 V8과 libuv에 연결해주므로 C와 C++는 몰라도 된다. libuv 라이브러리는 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현하고 있다. 이벤트 기반 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 의미한다. 이벤트로는 클릭이나 네트워크 요청 등이 있을 수 있다. 이벤트 기반 시스템에서는 특정 이벤트가 발생할 때 무엇을 할 지 미리 등록해둬야 한다. 이를 이벤트 리스너에 콜백 함수를 등록한다고 표현한다. ex) 버튼을 클릭할 때 경고창을 띄우도록 설정하는 것을 예로 들어보자. 클릭 이벤트 리스너에 경고창을 띄우는 콜백 함수를 등록해..
컴퓨터 구조: 컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 구성하는 방법을 말한다. 컴퓨터 구조는 컴퓨터 기능 구조에 대한 설계, 명령어 집합구조, 마이크로 아키텍처, 그리고 기타 하드웨어 및 컴퓨팅 방법에 대한 설계 등이 포함된다. 컴퓨터가 연산을 효율적으로 하기 위해 어떤 기능들이 컴퓨터에 필요한지 고민하고, 설계하는 분야이다. 대표적으로 폰 노이만 구조, 하버드 구조, 수정된 하버드 구조가 있다. CPU의 명령어에 대한 설계는 명령어 집합구조라 불리며, CPU가 처리해야 하는 명령어를 설계하는 분야이다. CPU의 하드웨어적 설계는 마이크로 아키텍처라고 불리며, 정의된 명령어 집합을 효율적으로 처리할 수 있도록, CPU의 회로를 설계하는 분야이다. 폰 노이만 구조 ..
· 리눅스
ssh는 Secure Shell 약자이다. ssh: 원격 머신에 로그인하여 그 안에 있는 명령들을 실행하는 프로그램 우선 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트를 해야 하므로 아래 명령어를 입력한다. sudo apt-get update 업데이트를 진행하였으면, 이제 OpenSSL를 설치해야 한다. 1. openSSL 사이트에 들어가서 원하는 버전을 다운 받는다. https://www.openssl.org/source/ /source/index.html Downloads The master sources are maintained in our git repository, which is accessible over the network and cloned on GitHub, at https..
· 리눅스
1. tomcat을 자동 실행하기 위해 스크립트 파일을 작성해야 한다. # cd /etc/rc.d/init.d 2. 자신의 프로젝트 명에 맞게 파일을 생성해야 한다. vi tomcat_auto_프로젝트명 3. 파일을 생성하였으면 권한 부여해야 한다. chmod 755 tomcat_auto_프로젝트명 4. tomcat_auto_프로젝트명 내용 추가 (텍스트 편집기에 들어가서 bash 파일을 만든 후 wq로 저장하고 나가기) #!/bin/bash # Startup script for the Tomcat Server # chkconfig: 345 50 50 # description: Tomcat is a Web application server. # processname: java # directory : C..
· 플러터
구글에서 5월 출시된 모바일 / 웹 / 데스크톱 크로스 플랫폼 GUI SDK 이다. 하나의 코드 베이스로 안드로이드, 리눅스, Windows, macOS, iOS 및 웹 브라우저에서 모두 동작되는 앱을 위해 출시되었다. 사용되는 언어는 역시 구글에 의해 제창된 Dart를 사용한다. 웹 브라우저에서 HTML renderer 또는 CanvasKit renderer로 실행할 수 있다.소프트웨어 디자이너의 선택에 따라 iOS 앱에서 구글의 Material 테마 디자인과 Ripple 애니메이션을 사용하는 것이 가능하고,반대로 안드로이드에서 애플의 Cupertino 테마를 적용하는 것도 가능하다. 즉, 플랫폼에 관계없이 플러터용 테마 디자인 라이브러리 적용 및 테마 커스텀이 가능하다. 크로스 플랫폼 환경이면서도 네..
이 현호
hyun 공부 학습 공간