[용어사전] Catalyst optimizer 란?
·
OLD/IT 용어 사전
1. 카탈리스트 엔진이란 Spark SQL의 핵심은 Catalyst Optimizer 이다 이것은 지능형 프로그래밍 언어 기능(예: Scala의 패턴 매칭과 quasi quote 등)을 참신한 방식으로 활용해 확장할 수 있는 쿼리 최적화 프로그램을 구축 2. 용도 Catalyst는 Scala로 쓴 기능성 프로그래밍 구조를 기반으로 하며 다음과 같은 두 가지 용도를 염두에 두고 고안되었다. Spark SQL에 새로운 최적화 기법과 특징을 손쉽게 추가 최적화 프로그램 확장을 위해 외부 개발자 지원(예: 데이터 소스별 규칙 추가, 새로운 데이터 유형 지원 등) Catalyst에는 일반 라이브러리가 포함되어 있어 트리를 나타내고, 규칙을 적용하여 이를 조작한다. 3. 참고 링크 https://databricks..
[Node.js] node 에서 mongodb 권장 이유 ( ? )
·
OLD/Back End
1. 권장 이유 Combining NodeJS and NoSQL- Why MongoDB is the best choice? Node.js is popularly being used in web applications because it lets the application run while it is fetching data from the backend server. It is asynchronous, event-driven and helps to build scalable web applications. Even though Node.js works well with MySQL database, the perfect combination is a NoSQL like MongoDB wherein the..
[Node.js] 사용 패키지 정리 3 - Express
·
OLD/Back End
1. Express 란? 노드에서 가장 인기 있는 웹 프레임 워크이며, node web frameworks 의 기본 라이브러리이다. 아래와 같은 기본 매커니즘을 제공한다 - HTTP 통신 요청(Request; GET, POST, DELETE 등)에 대한 핸들러를 만든다. - 템플릿에 데이터를 넣어 응답(response)을 만들기 위해 view의 렌더링 엔진과 결합(integrate)한다. - 접속을 위한 포트나 응답 렌더링을 위한 템플릿 위치같은 공통 웹 어플리케이션 세팅을 한다. - 핸들링 파이프라인(reqest handling pipeline) 중 필요한 곳에 추가적인 미들웨어 처리 요청을 추가한다. 2. 사용법 - 설치 npm install express - 사용법 모듈을 생성한 후, get, po..
[Node.js] 사용 패키지 정리 2 - body-parser module
·
OLD/Back End
1. body-parser 란? 노드에서 쓰이는 모듈로 클라이언트 POST request data 의 body 로 부터 파라미터를 편리하게 추출한다. 모든 모듈을 컨트롤하는 app.js 에서만 쓰는 것이 아니라 viewer 를 연결하는 router.js 에서도 쓸 수 있다 처음에 app.js 에서만 사용하는 줄 알았지만 viewer 를 연결하는 router.js 에서도 사용해야 body-parser 가 데이터를 제대로 전달 할수 있다. 그렇지 않으면 undifined 가 뜨면서 데이터가 전달되지 않는다. 2. 사용법 - 설치 $ npm install body-parser - API 사용 var bodyParser = require('body-parser') The bodyParser object expo..
[ Node.js ] 중요 개념 - Event Loop
·
OLD/Back End
요즈음 node.js 를 바탕으로 프로젝트를 진행하면서 node 에 대해서 공부를 하고 있다. 하지만 node 에 대한 이해가 좀 부족한 것 같아서 node 에서 알아야 할 개념을 일부 정리하고자 한다. 이벤트 루프 모델은 여러 스레드를 사용하며, 그중 사용자가 작성한 자바스크립트 코드가 실행되는 스레드를 메인 스레드라 부른다. Node.js 에서는 메인 스레드는 하나이며, 한번에 한 줄씩만 실행된다. Event Loop 는 간단하게 표현하자면 아래 의 그림과 같이 표현할 수 있을 것 같다 여기서 각 박스는 이벤트 루프의 "단계" 를 의미한다 Event Loop 의 특징 각 단계는 실행할 콜백의 FIFO 큐를 가진다 각 단계에 진입 시, 단계의 모든 작업은 수행할때까지 단계의 큐에서 콜백을 실행한다 모든..
[ Node.js ] db 데이터를 chart.js에 적용하여 그래프 만들기
·
OLD/Back End
처음에는 node.js 에서 진행을 하는 것이었기에 막연한 것도 있었다. 스프링으로는 진행을 해보았었기에 내가 찾고자 하는 레퍼런스도 쉽게 찾을 수 있고 큰 문제는 없었지만 node.js 로 진행을 하는 것은 내가 참고할만한 레퍼런스도 많이 찾기가 힘들었다는 문제도 있었다. 그러기에 추후 작업에 참고하기 위해 블로그에 기록을 해놓아야 겠다. 1. 숙지 사항 DB 는 MySQL 을 사용했다. node.js 에 MVC 모델을 적용했음 데이터를 전달하는 방식은 POST 방식 Node.js 와 MySQL 은 이미 연결을 했다고 가정한다 chart.js 는 html 스크립트에서 링크를 불러와 동작하는 CDN 방식을 사용했다 2. Router 에서 데이터 가져오기 - 라우터란? 라이언트의 요청 경로(path)를 보..
[Node.js] 디버깅 방법
·
OLD/Back End
개발에서의 디버깅 작업은 중요하다. 그러기에 다른 IDE 나 언어를 사용하면 항상 디버깅 하는 법을 숙지하는 편이다. 하지만 이번 노드에서는 이상하게도 디버깅을 하는게 좀 어렵다고 느껴졌다. 디버깅하는 법은 원리가 비슷하기에 되게 쉽겠지~ 라고 생각하고 찾았지만 생각보다 자료가 좀 찾기가 힘들었기에 나중을 위해서 기록을 해 둔다 1. 디버깅 모드 실행 하기 이번에는 vscode 를 사용했다. vscode 에서 우선 F5 를 누르거나 실행 > 디버깅 시작 메뉴를 선택하면 진행을 할 수 있다. 다만 vscode 는 특정 언어에 국한된 IDE 가 아니기 때문에 언어를 선택하는 과정이 필요하다 디버깅 시작 또는 F5 를 누른다음에 사용하고자 하는 언어를 선택하면 되는데 나는 Node.js 를 선택했다. 2. l..
[Node.js] Node.js 사용 패키지 정리 1 - dotenv module
·
OLD/Back End
1. dotenv 정의 Dotenv is a zero-dependency module that loads environment variables from a .env file into process.env. Storing configuration in the environment separate from code is based on The Twelve-Factor App methodology. 위 패키지는 process.env 를 통해( .env ) 파일로부터 환경변수를 로드하는 제로 디팬던시이다. 코드로부터 환경 분리를 통한 설정 저장은 the twelve-factor app 방법론에 근거하고 있다. ==> 쉽게 정리하자면, 환경변수를 사용하기위해 적용하는 모듈이라고 생각하면 될 것 같다 2. Ins..
데이터베이스 주요 개념 2. Nested loop, Sort Merge, Hash join
·
OLD/IT 용어 사전
1. Nested Loop Join 바깥 테이블의 처리 범위를 하나씩 엑세스하면서 그 추출된 값으로 안쪽 테이블을 조인하는 방식 1) 특징 및 장점 순차적으로 처리 바깥 테이블과 일치하는 값을 안쪽 테이블에서 찾아야 하므로 테이블의 해당 열에 인덱스 필요 메모리 사용량은 가장 적음 선행 테이블의 처리 범위가 전체 일의 양을 결정 좁은 범위에서 유리한 성능을 보여줌 순차적으로 처리하며, Random Access 위주 후행 테이블에는 조인을 위한 인덱스 생성 필요 실행속도 = 선행 테이블 사이즈 * 후행 테이블 접근 횟수 2) 단점 및 주의사항 데이터를 랜덤으로 엑세스하므로 결과 집합이 많으면 속도가 느려짐 join index 가 없거나, 조인 집합을 구성하는 검색 조건이 조인 범위를 줄이지 못할 경우 비효..
[Java 웹개발 마스터] 스터디 4. DI (Dependency Injection) 의존성 주입
·
OLD/Back End
의존성 주입에 대해 알려면 우선 Java 에서 말하는 의존성에 대해서 알아야 될 것 같다. 1. 의존성이란? A타입의 변수를 생성하고, 이에 A를 상속하는 B 객체를 초기화하면 이는 B 객체에 의존성을 가진다는 것이다. 즉, 객체들이 의존 관계가 있다는 것은 객체B 에 있는 클래스가 바뀔 때, 객체 A에 있는 클래스가 변경될 수 있다는 것이다. 상속을 알고 있다면 보다 이해하기가 편할 것 같다. 상속 하는 A의 클래스가 변경될 경우 A를 상속 받는 B의 클래스도 이에 영향을 받는 것에서 알 수 있다. 이 때, "B 클래스는 A클래스에 의존성이 있다." 라고 말한다. 자세한 내용은 아래 링크를 참고하면 될 것 같다. 스프링에서 말하는 의존성은 모듈에 필요한 참조 변수나 객체에 의존하는 것이다. 스프링은 의..