본문 바로가기

반응형

분류 전체보기

(399)
[node.js] static 파일과 static 미들웨어 미들웨어 미들웨어는 클라이언트 측의 요청과 서버의 응답 사이에서 문지기 역할을 하는 중간 계층입니다. 예를 들어 클라이언트 측에서 서버 측에 로그인 요청을 한다고 가정 할 때 중간 계층인 미들웨어는 요청으로 받은 정보가 서버 측에 전달해도 괜찮은지 그 여부를 판단하는 역할을 할 수 있습니다. static 파일 과 static 미들웨어 Node.js에서 static 파일은 클라이언트 측에서 서버에 요청을 보내면 서버에서 응답으로 전송하는 파일 중 변경되지 않는 파일을 의미합니다. 예를 들어, 이미지, CSS 파일, JavaScript 파일 등이 이에 해당합니다. Static 파일은 클라이언트 측에서 요청한 URL 경로에 대한 파일을 찾아서 응답으로 전송하는 방식으로 작동합니다. 이 때, Node.js에서는..
[node.js] MVC 패턴 MVC 패턴 MVC 패턴은 소프트웨어 아키텍처 디자인 패턴 중 하나이며, 각각의 역할을 분리하여 코드를 구성함으로써 유지보수 및 확장이 용이하게 되는 장점이 있는 모델 입니다. MVC는 모델(Model), 뷰(View), 컨트롤러(Controller)로 구성됩니다. 각각의 역할을 다음과 같이 정리 됩니다. 모델(Model): 데이터를 관리하고 처리합니다. 뷰(View): 사용자에게 보여지는 인터페이스를 제공합니다. 컨트롤러(Controller): 사용자의 요청을 처리하고, 모델과 뷰를 연결합니다. 아래는 간단한 예시 코드입니다. 대충 MVC 패턴이 각각 어떠한 느낌으로 이루어지는지 아는게 중요하다고 생각합니다. 참고) 참고로 예시는 MVC패턴의 이해를 위한 간단한 예시를 보여줄 뿐 실제 개발에서 아래와 ..
[알고리즘] 합병정렬 알고리즘(분할과 정복 알고리즘 유형 중 하나) With JS 합병정렬 알고리즘 분할 정복(Divide and Conquer) 알고리즘 중 하나로, 배열을 반으로 나누어 각각을 재귀적으로 정렬하고, 그 결과를 합쳐서 정렬된 배열을 생성하는 알고리즘입니다. * 분할과 정복 알고리즘의 원리 접은 글 내에 글자 중복이 있습니다. 중복된 부뷰이 지우고 수정한 부분이었는데, 수정 시에는 안 보이는데 등록 후에는 보이는 이상한 버그가 있네요더보기 분할 정복 알고리즘의 일반적인 구조는 다음과 같습니다. 분할(Divide) : 해결하고자 하는 문제를 작은 크기의 동일한 문제들로 분할 정복(Conquer) : 각각의 작은 문제를 동일한 방법으로 순환적으로 해결 합병(Combine) : 작은 문제의 해를 합하여 원래 문제에 대한 해를 구함 합병정렬도 위 구조에 따라, 배열을 분할하고..
[node.js] 패키지의 버전과 기호 버전의 첫 번째 자리 0.x.x : major 버전의 첫 번째 자리는 메이저(major) 버전입니다. 메이저 버전이 0 이면 초기 개발 중이라는 뜻입니다. 1부터는 정식 버전을 의미합니다. 이는 보통 하위 호환이 안 될 가능성이 높은 패키지 업데이트가 되었을 때 올립니다. 즉, 1.0.0 에서 2.0.0 으로 메이저 버전을 올렸다는 것은 하위 버전과 호환이 안 될 가능성이 높다는 것을 의미합니다. 버전의 두 번째 자리 x.0.x : minor 두 번째 자리는 마이너(minor) 버전입니다. 마이너 버전은 하위 호환이 되는 기능 업데이트를 할 때 올립니다. 즉, 1.5.0 에서 1.6.0 으로 올릴 때 새로운 기능이 추가 되었지만, 하위 버전과 호환이 가능하다는 것을 의미합니다. 버전의 세 번째 자리 x...
[node.js] npx 와 전역설치(-g)의 장.단점 npx 와 전역설치(-g) npx는 npm 패키지 매니저에서 제공하는 도구 중 하나로, 로컬에 설치된 패키지를 실행할 수 있도록 도와줍니다. npx를 사용하면 로컬에 설치된 패키지를 명령어로 바로 실행할 수 있기 때문에, 전역으로 패키지를 설치하지 않아도 필요한 패키지를 쉽게 실행할 수 있습니다. 전역으로 패키지를 설치하게 되면 해당 패키지를 시스템 전체에서 사용할 수 있게 됩니다. 하지만 이 경우에는 여러 프로젝트에서 같은 패키지를 사용할 때 버전 충돌 문제가 발생할 수 있습니다. 또한, 전역으로 설치된 패키지를 업그레이드하거나 제거하기도 어렵습니다. 반면에 npx를 사용하면 프로젝트 내부에서 필요한 패키지 버전을 명시하고 실행할 수 있습니다. 이 방법은 프로젝트마다 다른 패키지 버전을 사용할 수 있게..
[node.js] package.json package.json package.json은 Node.js 프로젝트에서 사용되는 파일 중 하나로, 프로젝트의 설정 정보를 담고 있는 JSON 파일입니다. 이 파일에는 프로젝트의 이름, 버전, 필요한 모듈, 스크립트 등의 정보가 포함됩니다. 보통 프로젝트를 시작할 때 npm init 명령어를 실행하여 package.json 파일을 생성합니다. npm install 명령어를 사용하여 필요한 모듈을 다운로드할 때 package.json 파일에 추가된 모듈 정보를 바탕으로 다운로드하게 됩니다. 또한, package.json 파일을 사용하여 프로젝트의 메타데이터 정보를 다른 사람들과 공유하거나, 다른 환경에서 프로젝트를 실행할 때 필요한 라이브러리나 모듈의 종속성(dependency)을 정의할 수 있습니다. ..
[단순용어] 쿠키와 세션 쿠키와 세션 쿠키와 세션은 HTTP 프로토콜에서 클라이언트와 서버 간에 상태 정보를 유지하기 위한 방법입니다. 쿠키는 서버에서 클라이언트로 전송되어 클라이언트의 웹 브라우저에 저장되는 작은 데이터 파일입니다. 쿠키는 클라이언트에서 요청을 보낼 때마다 서버로 전송되어 서버에서는 클라이언트의 상태를 파악할 수 있습니다. 쿠키는 만료 시간이 지나면 자동으로 삭제되거나, 클라이언트에서 수동으로 삭제할 수 있습니다. 보안 문제가 있을 수 있으므로, 중요한 정보는 쿠키에 저장하지 않는 것이 좋습니다. 쿠키는 일반적으로 사용자가 웹 페이지에 접속하면 서버에 쿠키 정보가 전달 됩니다.단, path 속성과 같이 특정 경로를 지정해두는 경우 해당 path 경로 및 그 하위 경로에 접속 시 서버에 쿠키 정보가 전달 됩니다...
[단순용어] 프로세스와 스레드 프로세스 프로세스(Process)란, 실행 중인 프로그램을 말합니다. 즉, 디스크에 저장된 실행 파일을 메모리에 로드하여 실행시킨 것을 말합니다. 프로세스는 운영체제에서 실행되며, 각각 독립된 메모리 공간, 자원 등을 할당받습니다. 하나의 프로세스는 하나의 독립된 실행 흐름을 갖고 있습니다. 스레드 스레드(Thread)란, 프로세스 안에서 실행되는 여러 개의 흐름을 말합니다. 하나의 프로세스 안에서 독립적으로 실행되는 하나의 흐름을 스레드라고 합니다. 스레드는 하나의 프로세스에 할당된 자원을 공유하기 때문에, 프로세스보다 경량(lightweight)하며, 프로세스 내부에서 동시에 여러 작업을 수행할 수 있습니다. 프로세스와 스레드의 차이점 프로세스는 각각 독립된 메모리 공간, 자원을 할당받고, 스레드는 ..

반응형