본문 바로가기

전체 글135

[Node.js] Array.from() Array.from() 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운Array 객체를 만든다.  유사 배열 객체 배열처럼 보이지만 사실 key가 숫자이고 length 값을 가지고 있는 객체{} 얕은 복사 1depth까지만 완전히 복사 Array.from("foo");// [ "f", "o", "o" ]const set = new Set(["foo", "bar", "baz", "foo"]);Array.from(set);// [ "foo", "bar", "baz" ]Array.from([1, 2, 3], (x) => x + x);// [2, 4, 6]  숫자 시퀀스 생성하기Array.from({ length: 5 }, (v, i) =.. 2024. 9. 13.
[Node.js] MongoDB ObjectId ObjectIdMongoDB에서 모든 문서에는 고유하게 식별하는 "_id" 필드가 포함되어 있다.이는 기본키 역할을 하며 12byte의 BSON 타입으로 생성된다. 처음 4 바이트는 문서의 유닉스 타임스탬프를 나타낸다.다음 3 바이트는 MongoDB 서버 가 실행 중인 머신 ID이다.다음 2 바이트는 프로세스 ID이다.마지막 필드는 objectid를 증가시키는 데 사용되는 3개의 바이트이다. BSON 타입"Binary JSON"의 약자로 바이너리 타입의 JSON 형식이다.기계어로 변환되기 때문에 사람이 읽기 위해선 다시 디코딩 과정을 거쳐야 한다.JSON에서 지원하지 않는 날짜나 바이너리 타입등을 추가적으로 지원한다.타입이나 길이 정보를 인코딩해 저장하기 때문에 JSON에 비해 빠르게 탐색한다. Obje.. 2024. 9. 11.
[Node.js] process.env.PORT 포트를 설정할 때 다음과 같이 직접 입력할 수 있다.const port = 5000;  하지만 위 방식을 권장하지 않는다.특정 서비스(aws 등)에 배포하는 경우 해당 플랫폼에서 포트를 동적으로 알아서 지정할 수 있기 때문이다. 예를 들어 AWS Elastic Beanstalk으로 배포하는 경우 정적으로 3000 포트를 설정해 놓으면, 아마존이 포트를 구성해 놓고 있기에 500 에러가 발생한다.   process.env.PORT process.envNodejs 앱이 동작할 리눅스/유닉스 시스템의 환경변수를 이용하는 것이다. 환경변수 정보를 가지고 있는 env 객체의 속성 중에서 PORT 속성은 동적으로 할당되는 포트를 저장하기 때문에, 플랫폼에서 동적으로 포트를 지정하더라도 문제없이 할당 받을 수 있게 .. 2024. 9. 10.
[Node.js] express 모듈 사용하기 express?웹 서버에서 요청하고 전달 받는 리소스 등을 간결하고 가독성이 쉽게 구현하기 위해 사용되는 모듈이다.직관적인 API를 제공하여 코드를 이해하기 쉽게 만든다. 적은 코드량(Less Code): 복잡한 웹 기능을 간단한 메서드로 구현할 수 있다. 미들웨어(Middleware): 요청 처리 과정에 여러 기능을 쉽게 추가할 수 있는 미들웨어를 제공한다. 라우팅(Routing): URL 경로에 따라 다른 처리를 하는 기능으로, RESTful API 구현이 용이하다. 템플릿 엔진 지원: 동적 HTML 페이지 생성을 위한 다양한 템플릿 엔진을 지원한다. express 사용하기const express = require('express');const app = express();express 프레임워크에는.. 2024. 9. 10.
[Node.js] 서버 모듈 설치하기(package.json) 모듈 설치하기npm install express mongodb cors nodemonexpress웹서버에서 요청하고 전달 받는 리소스 등을 좀 더 간결하고 가독성이 쉽게 구현하기 위해 사용되는 모듈https://expressjs.com/ko/ mongodbMongo DB 자체콘솔에서 사용하는것처럼 Mongo DB의 명령어들을 그대로 사용하기 위한 모듈 cors(Cross-Origin Resource Sharing)웹 브라우저는 보안을 유지하기 위해 다른 출처(origin)에서 리소스를 가져오는 것을 제한하는 모듈 nodemon파일 변경을 자동으로 감지하여 서버를 재시작하는 모듈{ "scripts": { "start": "nodemon main.js" }, "dependencies": { .. 2024. 9. 9.
[Java] ==와 equals() 차이 == 은 스택의 값을 비교하고equals() 는 힙의 값을 비교한다.  JVM 메모리 영역은 간략하게 메소드, 힙, 스택으로 나뉜다. 스택(Stack)원시 자료형과 참조 변수(+객체주소) 저장 힙(Heap)참조 변수의 실제 데이터와 객체 저장 String s1 = "KR", s2 = "KR";System.out.println(s1 == s2); // 스택 주소 동일 동일 값을 가리키기에System.out.println(s1.equarl(s2)); // 값 자체만 비교"KR"이 힙에 먼저 생성된 후, s1 변수가 스택에 생성되면 "KR"의 주소를 저장한다.다시 나오는 "KR"은 힙에 생성되어 있는지 조회하고, 이미 있으니 스택에 s2을 생성하고 "KR" 주소를 저장한다.s1와 s2 둘 다 힙에 있는 "KR.. 2024. 7. 30.
반응형