본문 바로가기

전체 글

(133)
(에러핸들링) (클라이언트 측면)https 통신의 response 결과값 axios 라이브러리 post 메소드 사용하여서 https 통신을 구축했다. post 요청 후에 결과값을 콘솔로 찍어 보았다. 결과값의 변수명은 result이고 result를 찍어 보았다. 서버 영역에서 post의 요청에 대한 설정한 데이터는 data 영역이고 객체 형태로 { message: 'ok' } 로 기재가 되어 있다. reponse 객체의 data라는 key에 res.send 혹은 res.json의 정보가 담겨지는 것을 알 수 있다. 그렇기 때문에 클라이언트에서 해당 데이터에 접근하려면 result.data.message로 할 수 있다.
(에러핸들링) sesState에서 2개 이상의 객체를 요소로 가지는 경우 state주기 이런 로그인창이 있고 Username와 Password를 줄 때마다 해당 요소의 값을 동적으로 변화시켜주려고 한다. 그리고 Username와 Password가 입력될 때마다 onChange 되는 이벤트 함수는 inputHandler로 동일하다. 현재 this.state의 초기값은 아래와 같다. 자! 모든 전제를 다 살펴보았다. 다시 정리하자면 Login 컴포넌트(지금 작업하려는 컴포넌트 이름이다)는 Username, password 이렇게 2의 상태값을 갔는다. 2개의 상태값은 onChange 이벤트 함수 inputHanlder를 발생시킨다. 문제는 inputHandler의 함수가 실행될때마다 상태값이 변경되게 만들어야 한다는 것이다. state 안에 각 요소는 key:value가 쌍으로 들어가 있다. ..
(에러핸들링) im-sprint-auth-session 세션 객체 저장 클라이언트에서 서버로 로그인을 요청할 경우 권한을 얻게 되는 사용자의 경우에 session을 이용하는 경우 session객체에 세션ID가 저장되어 클라이언트에 반환되게 된다. req.session.save 모듈을 사용하면 session 객체에 userId를 저장할 수 있다. post 요청을 통해 session 객체를 콘솔로 찍어 보았다. 서버에서 설정한 session안의 cookie 정보가 요청(req)과 함께 들어온 것을 알 수 있다. req.session.save모듈을 통해 session 객체에 userId 를 저장해 보았다. req.session.save는 인자로 콜백함수를 갖는다. 다시 session 객체를 콘솔로 찍어보니 userId가 잘 저장된 것을 알 수 있다.
(HTTP) Server(Backend) 측면에서 CORS (Cross-Origin Resource Sharing). 교차 출처 자원 공유 Cors는 HTTP 헤더를 사용하여 특정 Origin에서 자원을 받아서 실행 중인 웹 애플리케이션이 다른 origin(domain, scheme, port)에서 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체계이다. 웹 애플리케이션은 preflight시에 자원이 자신의 origin과 다를 때 Cors HTTP 요청을 하게 된다. JS의 통신에서 XMLHttpRequest 객체나 fetch API는 same-origin 정책을 따르기 때문에 웹 애플리케이션은 자신의 origin과 동일한 origin의 자원만 요청할 수 있다. 만일 다른 origin에서 자원을 요청하려면 요청 받은 다른 origin에서 올바른 Cors 헤더를 포함한 응답을 반환해야 한다. 이는 브라우저가 자발적으로 브..
(보안) 정보보안 영역에서의 해시함수 정보보안 영역에서는 기밀성과 무결성을 위해 해시함수를 사용한다. 비밀번호를 해시함수에 통과시키면 고정길이의 해시값으로 출력된다. 해시함수의 필요조건 1. 해시함수를 통과히기 전의 입력값을 다시 알아낼 수가 없다(복호화의 어려움) 2. 아무리 긴 입력값이라하더도 정해진 길이의 값으로 출력(문서 축약) 3. 입력값의 아주 작은 변화가 출력값 전체를 변화(위변조 여부 검증) 해시함수의 특징은 비밀번호 암호화, 전자서명, 블록체인 등의 기반 기술로 이용 정보보안에서 사용되는 해시함수는 MD5, SHA1, SHA-256 MD5와 SHA1은 안전성이 낮아 사용 금기 안정성을 논하는 기준은 '무차별 대입을 통해 해시값과 일치하는 값을 찾을 수 있느냐'인데, MD5와 SHA1은 다시 해시알고리즘에 비해 경우의 수가 적..
(Express.js) Express 란? Express는 Express.js 또는 간단히 Express라고 한다. Node.js를 위한 웹 프레임워크의 하나이다. Node.js의 사실상의 표준 서버 프레임워크라고 불리고 있다. MongoDB, AngularJS, Node.js와 함께 MEAN 스택의 벡엔드 구성 요소이다. (스택의 집합체 - MEAN Stack, MERN Stack) express 사이트(https://expressjs.com)에 보면 express는 'Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크' 라고 한다. 자바스크립트로 서버 사이드에서 작업을 한다는 것 자체가 JS의 기술적인 진보를 느끼면서 진입장벽이 낮지 않은 네트워크 처리를 Express를 통해 좀 더 쉽게 처리할 수 있게 하는 것이 장점이라고 할 수 있..
(네트워크/통신) HTTP 구조 HTTP Request 메소드 클라이언트가 웹 서버에게 사용자 요청의 목적/종류를 알리는 수단 최초의 HTTP에서 메소드는 GET밖에 존재하지 않았고 응답은 무조건 HTML문서 였다. HTTP 메소드 종류 전송 형태 설명 GET GET [request-uri]?query_string HTTP/1.1\r\n Host:[Hostname] 혹은 [IP]\r\n URI(URL) 형식으로 서버 측 리소스(데이터) 요청 POST POST [request-uri]?query_string HTTP/1.1\r\n HOST:[Hostname] 혹은 [IP] \r\n Content-Lenght:[Lenght in Bytes] \r\n \r\n [query-string] 혹은 [데이터] URI(URL)에 폼 입력을 처리하기 ..
(SQL) JOIN - JOIN, LEFT JOIN, RIGHT JOIN, FULL 헷갈리는 JOIN을 W3SCHOOL 의 그림으로 쉽게 알아보자. (INNER) JOIN: Returns records that have matching values in both tables LEFT (OUTER) JOIN: Returns all records from the left table, and the matched records from the right table RIGHT (OUTER) JOIN: Returns all records from the right table, and the matched records from the left table FULL (OUTER) JOIN: Returns all records when there is a match in either left or r..