분류 전체보기(326)
-
Javascript Closure
클로져를 알기위해서는 실행 컨텍스트에 대해 알아야 한다. https://muyeon95.tistory.com/317 실행 컨텍스트실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체이다. 이는 자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념이다. 자바스크립트는 어떤 실행 컨텍스트muyeon95.tistory.com 클로져는 무엇이고 어떻게 활용할 수 있을까?정의 MDN : 함수와 함수가 선언된 어휘적 환경의 조합 ????????????확실히 MDN 이 만능은 아니다. 코어 자바스크립트 : 어떤 함수 A 에서 선언한 변수 a 를 참조하는 내부 함수 B를 외부로 전달할 경우 A 의 실행 컨텍스트가 종료된 이후에도 변수 a 가 사라지지 않는 현상 ex code 1)functio..
2024.04.29 -
https
https 는 http 에 보안이 추가된 것이다.이는 너무 단순하며, 이렇게만 알고있으면 https 를 설명하기 어렵다. https 암호화 및 인증을 위해 SSL/TLS 프로토콜을 사용하는 http 의 보안 버전이다.기본적으로 443 포트를 사용한다. https 프로토콜을 사용하면 웹 사이트 사용자가 신용 카드 번호, 은행 정보, 로그인 자격 증명과 같은 민감한 데이터를 안전하게 전송할 수 있다.이러한 이유로 https 는 웹사이트를 보호하는데 특히 중요하기에 모든 웹사이트의 표준 프로토콜로 자리잡고 있다. https / http https 는 http 프로토콜에 암호화, 인증 및 무결성을 추가한다. 1. 암호화 http 는 원래 일반 텍스트 프로토콜로 설계되었기 때문에 중간자 공격에 취약하다. SSL/..
2024.04.26 -
argon2 vs bcrypt
언젠가 당연하게 bcrypt 를 이용해 비밀번호를 해싱했다.과연 bcrypt 가 최선이 맞을까? 암호화 암호화는 평문을 암호문으로 바꾸는 과정이다.암호화는 가장 기본적인 정보보안 방법으로 그 자체로 데이터의 유출 등을 막지는 못하지만 데이터에 담긴 정보를 알 수 없게 하는 것이 목적이다.bcrypt 가 무엇인가 단방향 암호화를 위해 만들어진 해시 함수 bcrypt 는 sha256 같은 해시 함수들의 문제점을 해결하기위해 설계되었다.sha256 는 원래 암호화를 위해 설계된 것이 아니라 짧은 시간 데이터를 검색하기 위한 자료구조로 설계가 되었다.이 때문에 빠른 속도가 장점이지만 취약점의 원인이 되기도 한다. 그래서 미리 해시값들을 계산해놓은 테이블을 가지고 해시 함수 반환값을 역추적하는 레인보우 테이블 공..
2024.04.25 -
리엑트의 불변성
리엑트의 가장 중요한 특징이라고 하면 불변성일 것이다. 아래의 궁금증을 가지며 글을 작성해본다.리엑트는 왜 불변성을 가질까?불변성을 지켜 어떤 이점을 가져갈 수 있고, 그에 따른 단점이 무엇일까?불변성 불변성은 메모리에 있는 값을 변경할 수 없는 것을 말한다.하지만 우리는 변수의 값을 곧 잘 변경했었다. 편의상 변경이라고는 하지만 내부적으로는 변하지 않는다.변수는 기존 값을 참조하고, 변수의 값을 변경시 새로운 값이 생성되고 변수는 새로 생성된 값을 참조하게 된다. 아무런 참조가 없는 값은 가비지 콜렉터가 처리하게 된다. 원시 데이터(string, number, boolean, null, undefined, Symbol) : 불변성이 있다. 원시 데이터는 수정시, 메모리에 저장된 값..
2024.04.24 -
자바스크립트의 역사
학습할때 과거, 역사를 아는 것은 굉장히 중요하다. 역사를 모른다면 왜 현재의 Javascript 를 사용하게 되었는지 알 수 없다. Javascript 가 왜 이렇게 발전했고 변화했는지 알아보고자 한다. Javascript 의 등장 (1995~1997) 1990 년대 초중반은 인터넷의 중요한 시기였다. 넷스케이프와 마이크로소프트와 같은 큰 기업들은 브라우저 전쟁을 벌이고 있었다. 이때 사용자들은 동적이고 상호작용적인 웹 페이지를 원하게 되었다. 1995 년에 브랜던 아이크가 브라우저에서 사용할 수 있는 정말 간단한 스크립트 언어를 개발했다. 원래 이름은 mocha 였지만 이를 넷스케이프 커뮤니케이션즈에서 LiveScript 로 릴리즈했고, 1997년 넷스케이프 2.0 에서 Javascript 로 이름이..
2024.04.23 -
토큰에 대한 고민
인증 및 인가를 할 때 선택지는 쿠키, 세션, 토큰 정도가 있다. 주로 토큰방식을 사용하며 JWT 를 사용한다. 왜 토큰을 사용할까? 토큰이 정말 안전할까? 등 나의 생각을 정리해보려고 한다. JWT 는 어떻게 구성이 되어 있을까? 점(.)을 기준으로 헤더.페이로드.시그니쳐 로 구분된다. 헤더에는 토큰의 유형 + 해싱 알고리즘이 들어있다. 페이로드는 토큰에서 사용할 정보(클레임)이 들어있다. 이 클레임은 json 객체이다. 클레임은 토큰 정보를 표현하기 위해 정해진 종류의 데이터이다. 물론 사용자가 정의해 비공개 클레임을 만들 수도 있다. 시그니쳐는 토큰을 검증하기 위한 것들이 들어간다. 헤더와 페이로드를 base64로 인코딩한 후 비밀키를 이용해 헤더에서 정의한 알고리즘으로 해싱해 다시 base64 로..
2024.04.22