본문 바로가기

분류 전체보기126

직접 서버를 만들면서 배운 Location Header ✔ Location : Location Response header는 "re-direct" 할 url을 명시한다. 3XX(redirection) 이나 201(created) 상태 코드가 응답되었을 때만 적용할 수 있다. 3XX 상태코드가 반환되었을 때, 기존 url에 Location에 명시된 url을 붙여 완성된 새로운 URL에 request를 보낸다 ! (fetch 요청) 📎 303 See Other 상태 코드 언제나 GET 메서드를 사용해 re-direct fetch 요청을 보낸다. (기존의 original 메서드 무시) PUT 이나 POST 메서드가 요청된 이후에 변경된 상황을 "읽고싶을 때" 주로 사용한다. 📎 307 Temporary Redirect 상태 코드 기존의 original 메서드를 변.. 2021. 10. 26.
Node JS address already in use 문제 해결 📍 내가 오늘 만났던 오류 Error: listen EADDRINUSE: address already in use :::5000 📎오류가 발생하는 이유 2 가지 ✔ 다른 프로세스가 명시된 포트를 사용중일 때 ✔ Node JS 프로세스가 비정상적으로 종료됐을 때 난 서버를 잘 껐고 ... 현재 쓰고 있는 port도 없는데 왜 자꾸 이 오류가 뜨는거야 ;;; 📍 해결 방안 난 Ubuntu를 사용하기 때문에 Linux 중심의 해결 방법을 찾았다. lsof : 활성화된 프로세스 리스트를 출력해주는 명령어이다. i : [option] 특정 port를 사용중인 프로세스만 골라주는 옵션이다. lsof -i 명령어를 활용해 내가 찾고 싶은 프로세스를 찾는다. 이제 이 프로세스를 kill 명령어를 활용해 종료한다. ki.. 2021. 10. 25.
Simple Request : HTTP Message 를 통한 header 공부 📍 HTTP message 를 살펴보기 전, Method와 Header 그리고 CORS 정책을 짚고 넘어가면 좋다. 2021.09.10 - [개발 공부/Browser] - Client - Server : SOP와 CORS Client - Server : SOP와 CORS 📌 SOP? (Same Origin Policy) 동일 출처 정책으로, 하나의 Origin에서 로드된 문서나 스크립트가 다른 Origin의 자원과 상호작용하지 못하도록 제한하는 것. 여기서 말하는 Origin은 아래 3가지 요소를 조합 code-designer.tistory.com 📌 Simple Request ◾ HTTP Request ✔ Host : : (optional) Host Request header 는 서버의 도메인명과 서버.. 2021. 10. 22.
브라우저와 Node JS : 데이터를 가져올 수 있는 다양한 방법들 (추가중) 📍 클라이언트 단의 API 호출을 도와주는 Node.js 라이브러리 ✔ request ✔ axios ✔ jQuery 📍 클라이언트 단의 API 호출을 도와주는 브라우저 내장 객체 or 함수 ✔ XMLHttpRequest - 객체 ✔ fetch( ) - 함수 📌 XMLHttpRequest 특징 ◾ XML뿐만 아니라 모든 종류의 데이터를 받아올 수 있다. ◾ 오래된 브라우저를 지원하기 위해 아직까지도 쓴다. ◾ fetch가 아직 처리하지 못하는 일들을 위해 쓰인다. ( ex. 업로드 진행 상황 추적하기 ) ◾ 데이터를 동기적으로 불러올 수도 있고, 비동기적으로 불러올 수도 있다. 📌 XMLHttpRequest 사용법 📎 문법 // request를 요청하기 위해서는 3가지 단계가 필요하다. // 01 XMLH.. 2021. 10. 20.
[ Graph - BFS ] 인접 행렬 길 찾기 ✅ BFS 기초 개념 잡기 https://blog.naver.com/wpghks7/221598474816 BFS의 기초 개념을 잘 설명해놓은 블로그가 있어 첨부한다. 📍 제한 사항 주어진 인접행렬에서 한 정점으로부터 다른 정점으로 이어지는 길이 존재하는지 반환해야 합니다. 📍 예시 const result = getDirections( [ [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1], [0, 1, 0, 0] ], 0, 2 ); console.log(result) // true 📍 코드 공부 0과 2는 직접적으로 연결되어있지는 않다. 그러나 둘은 간선으로 연결되어있으므로 true 를 반환하도록 식을 짜야한다. 어떻게 해야할까 ?? 그리고 만약 첫번째 간선에서 원하는 결과가 탐색되.. 2021. 10. 13.
자바스크립트 프로그래머스 거스름돈 문제 풀이 📌 문제 ◾ 해설 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5원을 거슬러 줘야 하고 1원, 2원, 5원이 있다면 다음과 같이 4가지 방법으로 5원을 거슬러 줄 수 있습니다. 1원을 5개 사용해서 거슬러 준다. 1원을 3개 사용하고, 2원을 1개 사용해서 거슬러 준다. 1원을 1개 사용하고, 2원을 2개 사용해서 거슬러 준다. 5원을 1개 사용해서 거슬러 준다. 거슬러 줘야 하는 금액 n과 Finn이 현재 보유하고 있는 돈의 종류 money가 매개변수로 주어질 때, Finn이 n 원을 거슬러 줄 방법의 수를 return 하도록 solution 함수를 완성.. 2021. 10. 12.
Dynamic Programming 동적 프로그래밍 📌 동적 프로그래밍이란 ? 동적 프로그래밍이라고 해서 동적으로 ?!? 프로그래밍이 이루어지는 건 아니다 ㅋㅋㅋ 큰 문제를 작은 문제로 나누어 푸는 법을 말한다. -> 그럼 분할 정복 아닌가 ? 📍 Divide and Conquer 분할 정복이란 ? 분할 정복도 큰 문제를 작은 문제로 나누어 푸는 법이다. 그러나 동적 프로그래밍과는 큰 차이점이 있다. 분할 정복은, " 작은 문제 " 에서 반복이 일어나지 않는다. 동적 프로그래밍은, " 작은 문제 " 에서 반복이 일어난다. -> 불필요한 일들이 반복적으로 일어난다. 즉, 분할 정복은 진짜 큰 문제를 여러 개로 작게 작게 나눠서 푸는 방식이라면, 동적 프로그래밍은 어짜피 반복되는 작은 문제들을 한 곳에 묶어 놓거나(?) 기록(?) 하는 식으로 불필요한 반복들.. 2021. 10. 11.
[ Queue ] 프린터 📍 제한 사항 ✔ 인쇄 작업 목록은 칸으로 이루어져 있습니다. ✔ 각 칸에는 한 개의 문서만 위치할 수 있습니다. ✔ 문서는 1초에 한 칸만 이동할 수 있습니다. ✔ 인쇄 작업 목록의 크기는 bufferSize이고 최대 용량 capacities 만큼 문서를 담을 수 있습니다. 📍 예시 만약, 인쇄 작업 목록의 크기가 2이고 최대 용량이 10Kib라면 크기가 [7, 4, 5, 6] Kib인 문서들이 최단 시간 안에 순서대로 모두 인쇄되는 과정은 다음과 같습니다. 1초가 지나면 인쇄 작업 목록에는 7Kib 크기의 문서가 추가됩니다. 2초일 때 인쇄 작업 목록의 최대 용량이 10Kib이기 때문에 4Kib 문서는 작업 목록에 들어갈 수 없습니다. 동시에 7Kib 문서는 작업 목록에서 1칸 앞으로 이동합니다. 3.. 2021. 10. 9.
변수, 함수, 클래스 호이스팅 정리 📌 선언하는 모든 식별자는 호이스팅 된다 변수 선언문 (var, let, const), 함수 선언문 (function, function*), 클래스 선언문 (class) 은 모두 호이스팅이 일어난다. 📍 변수 ✔ var // var 키워드로 선언한 변수는 [1.선언 단계] & [2.초기화 단계]가 동시에 실행된다. // 따라서 변수 선언문 이전에 변수를 참조할 수 있다. console.log(VAR); // undefined var VAR; console.log(VAR); // undefined // 할당문에서 [3.할당 단계]가 실행된다. VAR = "var"; console.log(VAR); // "var" ✔ const ❗ const 키워드로 선언한 상수는 반드시 선언과 동시에 초기화 해야한다.❗ .. 2021. 10. 5.