전체 글 80

Express(Cookie, Session)

Express 프레임워크에서는 cookie와 session기능을 사용할 수 있다. 우선 쿠키와 세션은 비슷한 원리로 작동되지만, 보안성등에서 차이가 있다.쿠키는 브라우저 내에 저장되는 데이터이다. 이 쿠키는 브라우저가 자유롭게 수정하는 것이 가능하기 때문에 위변조가 매우 쉽다. 쿠키는 주로 로그인 상태 유지 등에 쓰인다. (왜 내 쿠키는 추적용이지...)세션은 쿠키의 이런 단점을 보완하여 서버 내에서 저장하여 위변조가 불가능하게 하는 기술이다. 이 세션은 민감한 정보여도 브라우저에서 접근할 수 없기 때문에(암호화 됨) 안전하다.(다만 키를 너무 쉬운 걸로 설정하면 위험하다.)Express에서는 cookie는 cookie-parser로, session은 express-session으로 설정할 수 있다.np..

Express, pug

Express 프레임워크는 Node.js에서 사용되는 웹 프레임워크이다. (프레임워크는 특정 분야에서 개발하는데 매우 유용한 툴이다)Express 프레임워크는 npm으로 설치가 가능하다.밑에서 부터는 Express 프레임워크를 사용해서 /의 get요청을 받고 응답하는 예제이다.우선 라이브러리를 설치해야한다. 다음 명령어로 설치할 수 있다.npm install express그 다음 라이브러리를 불러와야 한다. 둘 중 원하는 걸 사용하면 되나, package.json에 type이 모듈로 정의된 경우 두 번째 건 사용할 수 없다.import express from 'express'const express = require('express');그 다음 express를 사용하기 위한 앱을 하나 불러온다.const..

Node.js

Node.js는 구글의 V8엔진을 사용한 자바스크립트 언어 중 하나이다. 다만 웹 브라우저에서 동작하는 자바스크립트는 html을 다루기 위해 DOM객체를 지원하지만, Node.js는 웹 브라우저가 목적이 아니라서 document같은 객체는 동작하지 않는다.Node.js를 쓰기 위해서는 여러 과정이 필요하다. 우선 Node.js 홈페이지에 들어가서 Node.js파일을 다운 받는다.그 다음 터미널에서 원하는 프로젝트에 들어간 후, 다음 명령어를 실행한다.npm init그러면 json 파일이 생성되면서, 그 폴더는 Node.js작업 폴더가 된다.기본적인 문법은 이전에 다룬 웹 js랑 같다.(var, let, for 등등) 따라서 모듈을 위주로 설명하겠다.그러나 Node.js는 require나 import로 n..

API

API는 Application Programming Interface로 프로그램(클라이언트)과 프로그램(서버 등)이 정해진 방법으로 데이터를 주고 받는 것이다. API는 주로 서버에서 받아오는 용도로 사용되지만, 컴퓨터 내부에서도 사용될 수 있다. (예 macOS의 metal API 등)이 부분을 실습하기 위해 data.go.kr에서 js로 api로 데이터를 가져와 보겠다. 우선 사용할 api와 개인 토큰을 발급받는다.그 다음 js로 다음과 같은 형태로 전송하면 된다.var serviceKey, returnType, numOfRows, pageNo, year, itemCode, url;serviceKey = '';returnType = 'json';numOfRows = '100';pageNo = '1';..

JSON, XML

JSON은 JavaScript Object Notation으로 자바스크립트에서 쉽게 데이터를 저장하고 전송하기 위한 형식이다. 반면에 XML은 eXtensible Markup Language로써 HTML(Hyper Text Markup Language)와 유사한 마크업 언어이다.두 가지 모두 데이터를 저장하는 용도로 주로 사용되지만, json과 xml은 사용되는 분야가 조금 다르다.json은 웹 앱에서 주로 사용되며, 굳이 자바스크립트가 아닌 다른 언어여도 쉽게 사용할 수 있을 정도로 유명하다.xml은 프로그램의 설정들을 저장하는 용도로 사용된다. (과거에는 xml이 웹 기본 포맷이였지만, json이 등장하고 한물 갔다...)json은 일반적으로 다음과 같은 형식을 가진다.{ "key" : [ ..

입력 후 평균 계산

이 문제는 prompt로 그만을 입력받기 전까지 입력받은 수를 저장하고, 평균을 구하는 문제이다.이 문제를 풀기 전, 평균을 어떤 방식으로 구하는지 알면 더 쉽게 풀 수 있다.평균은 총합에 갯수를 나눈 결과값이다. 따라서 모든 입력값을 더하고, 갯수로 나누면 쉽게 풀 수 있다.let i = 0, sum = 0, num;while (true){ num = prompt(); if (num == '그만'){ break; }else { sum += parseInt(num); } i++;}여기서는 i로 갯수를 저장하고, sum으로 입력값을 더하는 변수를 만들었다.최종 코드let i = 0, sum = 0, num;while (true){ num = prom..

기타 2025.06.02

최대, 최소

이 문제는 최댓값을 구하는 max함수에서는 최댓값을 console에 출력하고, 최솟값을 구하는 min함수에서는 최솟값을 경고창에 출력하는 문제이다.max함수는 if로 첫 번째 값과 두 번째 값을 비교한 다음, 두 값 중 큰 것과 세 번째 값을 비교하면 풀 수 있다.max 함수function max(a, b, c){ let max; if (a min함수도 마찬가지로 if로 첫 번째 값과 두 번째 값을 비교한 다음, 두 값 중 작은 것과 세 번째 값을 비교하면 풀 수 있다.function min(a, b, c){ let min; if (a > b){ min = b; }else { min = a; } if (min > c){ min =..

기타 2025.06.02

DNS

DNS(Domain Name System)은 도메인을 받으면 ip주소등으로 변환해주는 시스템이다. 일반적인 가정용 공유기에서는 ISP(Internet Service Provider : 통신3사)의 DNS을 사용하여 도메인에 접속하게 된다.도메인은 다음과 같은 구조로 되어 있다.루트 네임서버 : 모든 도메인 을 관리하는 서버이다.TLD(최상위 도메인) 서버 : 특정 TLD(예 : .com, .net등)을 관리하는 서버이다.도메인 서버 : 도메인(예 : google.com, naver.com등)을 관리하는 서버이다.DNS 레코드는 DNS서버가 어떤 동작을 해야하는지를 정하는 표이다.일반적으로 6가지의 레코드가 주로 사용되며, 각각의 레코드는 ip주소, 다른 도메인등을 가르킨다.레코드설명AIPv4주소를 가르킨..

라우팅

라우팅은 라우터가 데이터를 목적기까지 보내는 최적의 경로를 선택하는 과정이다. 라우팅은 라우팅 테이블로 관리되며, 라우팅은 크게 2가지로 나뉜다.정적 라우팅라우터 관리자가 직접 경로를 설정하는 방식이다. 이 방식은 동적 라우팅에 비해 다소 복잡하고, 설정하기 어렵다. 따라서 일부 기업용 네트워크를 제외한 곳에서는 동적 라우팅을 사용한다.동적 라우팅라우터가 자동으로 경로를 설정하는 방식이다. 이 방식은 정적 라우팅과 달리 설정할 필요가 없기 때문에 편리하다.참고) 기본 라우팅정적 라우팅 방법 중 하나로, 기본적으로 모든 패킷을 다른 라우터로 전송하는 방식이다.이 부분을 실습하기 위해 cisco의 packet tracer를 사용할 것이다. 라우터 2개와 PC 2를 꺼낸다.(모든 장비는 왼쪽 아래에 있고, 라..