Web Server vs Application Server 참고 : https://www.educative.io/edpresso/web-server-vs-application-server Web Server 웹서버 점유율 그래프이다. 이 중 nginx나 아파치는 대표적인 오픈소스 웹 서버다. Apache 예전에 생활코딩에서 아파치로 간단한 웹 호스팅 따라 하기 해봤을 때 이렇게 했다. 설치 : bitnami WAMP라는 프로그램 설치 (윈도우 Apache, Mysql, PHP 통합 설치 프로그램) 서버 실행 : 파일 제공 : 브라우저 요청에 따라서 htdocs 디렉토리에 있는 파일 가지고 응답 보냄. (C:\Program Files (x86)\wampstack\apache2\htdocs) URL의 pat..
생활코딩 Home Server강의를 듣고 좀 더 살을 붙여서 정리해봤다. 각 그림을 지도가 줌 아웃되는듯한 식으로 좁은 네트워크부터 전체 인터넷 세상으로 넓어지는 순서로 봐주면 된다. 1 2021/02/12 - [네트워크] - 간단하게 나의 홈 서버 테스트해보는 방법 간단하게 나의 홈 서버 테스트 해보는 방법 준비과정 (1) IP 알아내기 내부 IP 외부 IP 여러 웹사이트에서 쉽게 확인 가능하다 이 IP에 대한 자세한 정보가 궁금할 때는 KISA에서 제공하는 WHOIS 사이트 등에 이 주소 입력해 보면 된다. (참고) 명 pinball1973.tistory.com IP주소 알아보기나 포트포워딩에 대한 내용은 다른 글로 정리했다. 2 public IP (공인 IP) 전 세계에서 유일 IP분배 총괄은 IA..
준비과정 (1) IP 알아내기 내부 IP 외부 IP 여러 웹사이트에서 쉽게 확인 가능하다 이 IP에 대한 자세한 정보가 궁금할 때는 KISA에서 제공하는 WHOIS 사이트 등에 이 주소 입력해 보면 된다. (참고) 명령어 이용 ( 핸드폰에서는 termux라는 앱을 이용했다. ) 🥝 ipconfig (윈도우) / ifconfig (리눅스) Displays all current TCP/IP network configuration values network interface configuration utility in Unix-like operation IP주소는 인터페이스에 부여되는 것. 인터페이스 정보 리스트를 얻을 수 있는 이 명령어 이용해서도 내부 IP주소 얻을 수 있음 🥝 라우팅 테이블 보기 rout..
라는 책에 있는 간단한 이름 등록, 수정, 삭제하는 웹사이트 예제를 분석하면서, 웹의 작동 원리를 이해해 보려고 한다. 웹 초보자라 헷갈려서 가장 큰 골자를 직관적으로 이해할 수 있는 것을 목표로 정리해보려고 한다. 예제 코드 : github.com/ZeroCho/nodejs-book/tree/master/ch4/4.2 ZeroCho/nodejs-book Contribute to ZeroCho/nodejs-book development by creating an account on GitHub. github.com 기본 로직 클라이언트 역할 프로세스 : 브라우저(?) (restFront.js 코드는 이 브라우저 위에서 실행된다. 실행 환경이 브라우저) 서버 역할 프로세스 : restServer (rest..
기본 문법 str 문자열의 pattern 부분을 replacement로 교체한 새로운 문자열을 리턴한다. (기존 str 문자열을 변경시키지 않음) pattern인자로 문자열이 들어온 경우는 제일 처음 매치하는 패턴 1개만 교체됨. flag가 g (global)인 RegExp가 들어온 경우에는 매치하는 모든 패턴이 교체됨. 문제 LeetCode 394번 Decode String 문제를 풀면서 replace 함수 사용법을 알아보자. The encoding rule is: k[encoded_string]k [encoded_string], where the encoded_string inside the square brackets is being repeated exactly k times. 입력 내부의 모든 ..
nodejs 콘솔 입력 템플릿 const readline = require('readline'); const rl = readline.createInterface(process.stdin, process.stdout); let input = []; let eval = () => { // Code } rl.on('line', function(line){ input.push(line); }).on('close', eval); 2차원 배열 만들기 let arr = Array.from(Array(5), () => Array(2).fill(0)) 0으로 초기화한 n*m 사이즈 배열 let arr = (new Array(n)).fill(0) 0으로 초기화한 길이가 n인 1차원 배열 배열 복사 (deep copy) ..
(1) 출력 console.log( ) (2) 입력 : readline 모듈 이용하는 방법 const readline = require('readline'); const rl = readline.createInterface(process.stdin, process.stdout); let input = []; let eval = () => { // Code } rl.on('line', function(line){ input.push(line); }).on('close', eval); readline 모듈 Readable 스트림으로부터 한 줄씩 읽어 들이는 인터페이스를 제공하는 모듈. The readline module provides an interface for reading data from a Rea..
간단한 구현 : javascript로 큐를 간단히 구현하려면 배열, push() 함수 (enqueue), shift() 함수 (dequeue)를 이용하면 된다. 그런데 shift() 함수의 시간 복잡도는 O(n)으로 다소 비효율적일 수 있다. 온라인 저지 사이트에서 javascript로 문제 풀다가 큐 때문에 시간 초과가 나면 아래처럼 바꿔보자. 효율적인 구현 : offset 변수를 추가로 이용해서 배열에서 dequeue 될 요소에 바로 접근한다 O(1) 만약 offset이 큐 길이 2배 이상이 되면 앞 부분을 자르고 (이미 dequeue 된 요소들), offset은 0으로 초기화한다. (내가 구현한 것 아님. 맨 아래 출처 참고 바랍니다.) function Queue(){ // initialise th..