반응형

전체 글 211

[Node.js] 쿠키와 세션 (Cookie and Session)

웹 사이트에 방문해서 로그인을 할 때 쿠키와 세션을 사용합니다. 서버에서 누구인지 기억하기 위해서는 요청에 대한 응답을 할 때 쿠키를 같이 보냅니다. 즉, 서버는 미리 클라이언트에 요청자를 추정할만한 정보를 쿠키로 만들어 보내고 그 다음부터는 클라이언트로부터 쿠키를 받아 요청자를 파악합니다. 먼저 쿠키를 생성하는 것부터 알아보겠습니다. 쿠키 생성하기 const http = require('http'); http.createServer((req, res) => { console.log(req.url, req.headers.cookie); res.writeHead(200, { 'Set-Cookie': 'mycookie=test' }); // 쿠키 생성 res.end('Hello Cookie'); }) .li..

Back-end/Node.js 2021.07.10

[Node.js] 요청과 응답 서버 (http)

요청과 응답 서버 만들기 서버에서 요청을 받고 응답을 어떻게 하는지 알아보겠습니다! 다음은 서버의 간단한 요청과 응답의 예시입니다 const http = require('http'); http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' }); res.write('Hello Node!'); res.end('Hello Server!'); }) .listen(8080, () => { // 서버 연결 console.log('8080번 포트에서 서버 대기 중입니다!'); }); 터미널에서 "node 파일명" 명령어를 입력하면 서버가 실행되고 웹에서 "http://localhost:8080" ..

Back-end/Node.js 2021.07.10

[Node.js] 파일 시스템 모듈(fs), 이벤트

파일 시스템 모듈인 fs 모듈과 이벤트에 대해 알아보겠습니다. fs 모듈 fs 모듈은 파일 시스템에 접근하는 모듈입니다. 파일을 생성하거나 삭제하고 일고 쓸 수 있습니다. fs 모듈의 여러 가지 메소드에 대해 알아보겠습니다. 파일 읽기/쓰기 1. 파일 읽기 - readFile const fs = require('fs'); fs.readFile('./readme.txt', (err, data) => { if (err) { throw err; } console.log(data); console.log(data.toString()); }); fs.readFile(파일 경로) - fs 모듈을 불러온 뒤 파일 경로를 지정하면 파일을 읽을 수 있습니다. readFile의 결과물은 버퍼 형식이므로 사람이 읽을 수 있..

Back-end/Node.js 2021.07.09

[Node.js] 노드 내장 모듈 알아보기

자주 사용하는 노드 내장 모듈에 대해 알아보겠습니다! path path는 폴더와 파일의 경로를 쉽게 조작할 수 있도록 도와주는 모듈입니다. 운영체제별로 경로 구분자가 다르기 때문에 path를 사용하면 편리해집니다. path 모듈의 속성과 메소드는 매우 많으므로 그 때 그 때 필요한 속성이나 메소드를 찾아 사용하는 것이 좋을 것 같습니다. 다음 링크에 path 모듈의 모든 속성과 메소드, 사용 방법이 나와 있습니다. https://nodejs.org/api/path.html Path | Node.js v16.4.2 Documentation Path# Source Code: lib/path.js The path module provides utilities for working with file and di..

Back-end/Node.js 2021.07.07

[Node.js] 노드 내장 객체 알아보기

노드에서 자주 사용하는 내장 객체에 대해 알아보겠습니다! global global은 브라우저의 window와 같은 전역 객체입니다. 따라서 모든 파일에서 접근 가능한 객체입니다. global은 생략할 수 있습니다. // globalA.js module.exports = () => global.message; // globalB.js const A = require('./globalA'); global.message = '안녕하세요'; console.log(A()); message는 global 객체이기 때문에 모든 파일에서 접근 가능한 것을 볼 수 있습니다. 타이머 다음 함수들은 타이머 기능을 제공하는 함수입니다. setTimeout(콜백함수, 밀리초) - 주어진 밀리초 이후에 콜백 함수 실행 setIn..

Back-end/Node.js 2021.07.07

[백준/Python] 플로이드

https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 이 문제는 전형적인 최단 경로 문제이며 플로이드 워셜 알고리즘을 이용하면 수월하게 풀 수 있었다. 플로이드 워셜 알고리즘을 알아야 풀 수 있어서 이 알고리즘을 모른다면 아래의 링크를 참고하면 좋을 것 같다. https://it-garden.tistory.com/247 플로이드-워셜(Floyd-Warshall) 알고리즘 이론과 파이썬 구현 플로이드-워셜(Floyd-Warshall) 알고리즘 플로이드..

Algorithm/백준 2021.07.04

[프로그래머스/Python] 단속카메라 - Level3

https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 최소 카메라를 설치해야하므로 그리디 방식으로 나간 시점 기준으로 확인한다. 두 풀이 모두 진출시점 기준으로 작성된 코드이다. 첫번째 풀이 - 카메라에 걸리는지 확인하는 check 리스트를 두고 모든 구간을 검사하는 방법 def solution(routes): answer = 0 length = len(routes) check = [0] * length # 카메라에 걸리는지 확인하는 리스트 routes.sort(key = lambda x: x[1]) # 진출 시점 기준..

[프로그래머스/Python] 섬 연결하기 - Level3

https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr costs 리스트를 비용 기준으로 정렬해야하는 것까진 생각했는데 그 뒤로는 어떻게 접근해야할지 모르겠어서 구글링을 했다.. 구글링을 했더니 이 문제는 Kruskal 알고리즘으로 풀면 된다는 사실을 알게 되었다. Kruskal 알고리즘이 뭔지 몰라서 공부를 한 후 코드를 짰더니 수월하게 해결할 수 있었다. 이 알고리즘을 알아야 풀 수 있는 문제였다 Kruskal 알고리즘 - 탐욕적인 방법을 이용하여 네트워크(가중치를 간선에 할당한 그래프)의 모든 정점을 최소 비..

[프로그래머스/Python] 구명보트 - Level2

https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 처음 생각한 문제 풀이는 people 리스트를 오름차순으로 정렬한 다음 최소값 두 개를 가져와 limit보다 크면 최소값 하나만 리스트에서 빼고 limit보다 작거나 같으면 최소값 두 개를 리스트에서 빼는 로직으로 코드를 짰다. 그런데.... 일부는 맞았지만 일부는 실패가 떴다..ㅠㅠ 질문하기를 보니 내가 생각한 로직이 틀린거 였다....

2021 NDC - 쿠키런 킹덤 서버 아키텍처 뜯어먹기!

https://ndc.nexon.com/session/sessionView?sessNo=100007286 NDC|온라인세션| 서버 아키텍처 뜯어먹기!-천만 왕국을 지탱하는 다섯가지 핵심 기 서버 아키텍처 뜯어먹기!-천만 왕국을 지탱하는 다섯가지 핵심 기술 이 세션에서는 올 초 출시된 게임 서버의 아키텍처에 대해 발표하려고 합니다. ndc.nexon.com 넥슨 개발자 컨퍼런스에 다양한 세션이 있었는데요! 저는 그 중에서 최근까지 재밌게 했던 게임인 쿠키런 킹덤 서버에 관한 세션을 보았습니다 실무에서 서버를 어떻게 구축하는지 알 수 있어서 정말 유용했던 세션이었습니다 세션을 보고 간단히 정리한 내용들을 적어보도록 할게요 :) 1. 액터 모델로 분산 Stateful 서버 만들기 Stateless 서버 - 서..

일상 2021.06.15
반응형