본문 바로가기
반응형

Node.js5

백준 2206 문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동하여도 된다. 한 칸에서 이동할 수 있는 칸은 상하좌우로 인접한 칸이다. 맵이 주어졌을 때, 최단 경로를 구해 내는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000)이 주어진다. 다음 N개의 줄에 .. 2022. 12. 13.
백준 14502 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다. 예를 들어, 아래와 같이 연구소가 생긴 경우를 살펴보자. 2 0 0 0 1 1 0 0 0 1 0 1 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 .. 2022. 12. 3.
서버 개발부터 배포까지(1): typescript 설정 동아리에서 진행하는 3주간의 프로젝트에서 서버 개발을 담당하게 되었다. 서버 개발은 처음이라 시행착오도 굉장히 많았는데, 그래서 내가 겪었던 오류와 해결책들을 정리해보고자 한다! 협업에서는 typescript로 개발하는것이 유지, 보수에 좋다고 하여 우리도 typescript를 사용하기로 했다. 그리고 디렉토리 구조가 복잡해질 것을 대비해 절대경로를 사용하기로 하였다. 그런데 typescript와 절대경로를 사용하니 예상치 못한 여러 에러들에 부딪혔다. 결론부터 말하자면 결국 우리는 절대경로를 포기하였다ㅠㅠㅠ 그 이유는 아래에서 설명할 것이다. 1. tsconfig.json 설정하기 typescript를 사용하기 위해서는 tsconfig.json을 작성해주어야 한다. 우리 프로젝트에서는 다음과 같이 ts.. 2021. 7. 14.
MongoDB 연결하기 MongoDB를 Node.js에 연결하는 방법은 여러가지가 있지만 그 중에서도 mongoose를 이용하여 연결하는 방법을 정리하고자 한다. mongoose는 크게 4가지 단계로 이루어진다. 1. 데이터 베이스 연결 const mongoose = require('mongoose'); const url = 'mongodb://localhost:27017/Moviest'; mongoose.connect(url); const db = mongoose.connection; db.on('error', (err)=>{ //error handling }); db.once('open', ()=>{ //db handling }); 2. 스키마 정의 - 스키마: 도큐먼트의 타입과 형태를 정의 - 타입: String, Num.. 2021. 4. 21.
Node.js 이해하기 Node.js는 쉽게 말해 웹브라우저 바깥의 환경에서도 javascript가 동작할 수 있게 하는 프레임워크이다. ✨ 특징 - 브라우저 밖에서 js 코드를 실행할 수 있도록 해준다. - 크롬 브라우저에서 사용하는 것과 같은 V8 엔진을 사용한다. - 이벤트 기반의 비동기 I/O 프레임워크이다. - commonJS 를 구현한 모듈 시스템이다. - 싱글 스레드를 기반으로 동작한다. 👍 장점 - 비동기 I/O 프레임워크이다. 서버의 경우에는 I/O를 빈번하게 사용한다. (ex: DB로 부터 데이터 읽어오기, 수정하기...) 그래서 비동기 I/O 라는 것이 큰 장점이 된다. - 그리고 클라이언트에서 사용하는 언어인 js로 작성 가능하다. - 간단한 구조로 구성된 프레임워크이다. - 다양한 라이브러리(모듈)가 존.. 2021. 4. 19.
반응형