[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..
[Java 웹개발 마스터] 스터디 4. DI (Dependency Injection) 의존성 주입
·
OLD/Back End
의존성 주입에 대해 알려면 우선 Java 에서 말하는 의존성에 대해서 알아야 될 것 같다. 1. 의존성이란? A타입의 변수를 생성하고, 이에 A를 상속하는 B 객체를 초기화하면 이는 B 객체에 의존성을 가진다는 것이다. 즉, 객체들이 의존 관계가 있다는 것은 객체B 에 있는 클래스가 바뀔 때, 객체 A에 있는 클래스가 변경될 수 있다는 것이다. 상속을 알고 있다면 보다 이해하기가 편할 것 같다. 상속 하는 A의 클래스가 변경될 경우 A를 상속 받는 B의 클래스도 이에 영향을 받는 것에서 알 수 있다. 이 때, "B 클래스는 A클래스에 의존성이 있다." 라고 말한다. 자세한 내용은 아래 링크를 참고하면 될 것 같다. 스프링에서 말하는 의존성은 모듈에 필요한 참조 변수나 객체에 의존하는 것이다. 스프링은 의..
[Java 웹개발 마스터] 스터디3. 왜 Getter, Setter 를 사용할까
·
OLD/Back End
보통 지금까지 짧은 경험을 한 바로는 웹 페이지를 만들 때 getter, setter 를 많이 사용하는 것 같았다. 보통 프로젝트(?)의 보안을 위해서 외부에서 객체 데이터들을 외부에서 직접 접근이 불가능게 만들어 놓는다. 즉 막아 놓는다고 생각하면 편할 것 같다. 이럴 때 보통 사용하는 방식이 private 를 통해 외부에서 접근을 막아두고 Getter, Setter 을 통해서 접근하는 것이라고 배운 것 같다. 이렇게 하는 이유는 객체의 무결성 을 보장하기 위함인데, 무결성에 대한 설명은 아래 okky 링크를 참고하면 될것 같다. 설명이 잘 되어 있다. okky.kr/article/716403?note=1979724 OKKY | 객체의 무결성이 무엇인가요? Getter와 Setter를 사용하는 이유가 ..
[Java 웹개발 마스터] 스터디2. Lombok 이란
·
OLD/Back End
Lombok 이란? lombok 은 웹 프로젝트를 사용하기 편리하게 만들어주는 플러그인이다. getter, setter 와 다른 클래스를 적을 필요 없이 @ (어노테이션) 하나로 심플하고 깔끔하게 처리가 가능하다. 간단하게 설명하여 메서드 작성을 줄여 코드를 보다 간단하게 만들어주는 라이브러리라고 생각하면 된다. Lombok 의 경우에는 getter, setter, toString( ) 의 생성을 안해도 되 코드가 훨씬 깔끔해진다는 장점이 있는 것 같다. 아래는 이번 프로젝트에서 사용한 dao 메서드이다. getter, setter 를 사용할 경우에는 코드가 길어지고 엔티티들이 많아질 경우에 getter, setter 를 더 사용해야되기 때문에, 헷갈릴 것 같다.. public class Example(..