본문 바로가기

개발일지66

인증, 쿠키, 세션, JWT 인증, 쿠키, 세션, JWT Http 메시지를 보내는 것 헤더, 공백(헤더와 바디를 나누는 것), 바디 헤더 - 요청에 대한 정보가 들어감 바디 - 서버로 보내야할 데이터가 들어감 1. Session / Cookie 방식 순서는 요약하면 다음과 같습니다. 사용자가 로그인을 한다. 서버에서는 계정정보를 읽어 사용자를 확인한 후, 사용자의 고유한 ID값을 부여하여 세션 저장소에 저장한 후, 이와 연결되는 세션ID를 발행하고, HTTP 헤더에 실어 사용자에게 돌려보낸다. 사용자는 서버에서 해당 세션ID를 받아 쿠키에 저장을 한 후, 인증이 필요한 요청마다 쿠키를 헤더에 실어 보냅니다. (쿠키에 세션ID를 넣어 헤더에 실어 서버에 보낸다.) 서버에서는 쿠키를 받아 세션 저장소에서 (세션ID를) 대조한 후 대응되.. 2022. 4. 12.
Java - 멤버변수, 지역변수, 클래스변수, 인스턴스변수 변수를 선언위치에 따라 크게 구분하면 딱 2가지로 나눌 수 있다. 바로 멤버변수 / 지역변수 입니다. 멤버변수는 선언위치가 '클래스 영역' 이고, 지역변수의 선언위치는 '메소드나 생성자 내부' 이다 멤버변수는 다시 두 가지로 나누어진다 바로 클래스변수 / 인스턴스변수 이다 이 둘은 같은 멤버변수에 속하지만 필요한 상황이 굉장히 다르다 이해를 돕기 위해 예를 하나 들어보겠다. 우리가 게임을 처음 시작할 때, 캐릭터를 하나 만든다. 캐릭터를 만들 때 머리색깔을 블랙,골드,브라운 중에서 고를 수 있다고 하면, 머리색깔이라는 변수는 모든 캐릭터마다 다른 값을 가질 수 있다. 즉, 각각의 객체(=인스턴스)마다 개별적인 속성을 가져야 할 때, 우리는 인스턴스 변수를 선언해서 사용한다. 반대로 클래스 변수는, 모든 .. 2022. 4. 7.
힙(heap) 자료구조 힙(heap)이란 - 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. - 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조이다. - 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.) 힙의 종류 최대 힙(max heap) 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리 key(부모 노드) >= key(자식 노드) 최소 힙(min heap) 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진 트리 key(부모 노드) 2022. 3. 16.
경합 조건, 공유 자원 경합조건(Race Condition)이란? 다중 프로그래밍 시스템이나 다중 처리기 시스템에서 두 명령어(이상)가 동시에 같은 기억 장소를 엑세스할 때 그들 사이의 경쟁에 의해 수행 결과를 예측할 수 없게 되는 것 이와 같은 현상은 바람직하지 않으므로 운영 체제는 이것을 해소할 수 있어야 한다. 즉, 두 가지 이상의 명령어가 실행되는 순서를 명확하게 정해주지 않아서 어떤 명령어가 먼저 실행될 지 몰라서 그 결과를 알 수 없게 되는 것이라는 뜻이다. 올바른 결과 프로그램1 프로그램2 잔고 100만 원 100만 원 read 100만 원 read한 값에 10만 원 더함 100만 원 110만 원 write 110만 원 110만 원 read 110만 원 read한 값에 50만 원 더함 110만 원 160만 원 wr.. 2022. 2. 22.
마크업 언어 및 하드웨어를 다룰 때 주의할 점 마크업 언어 마크업(mark up)은 본문(텍스트)과 구분할 수 있느 마크(mark)를 추가할 수 있는 시스템이다. 마크를 어노테이션(annotation)이라고도 부른다. 마크업 언어(Markup Language)는 문서가 화면에 표시되는 형식을 나타내거나 데이터의 논리적인 구조를 명시하기 위한 규칙들을 정의한 언어의 일종이다. 데이터를 기술한 언어라는 점에서 프로그래밍 언어와는 차이가 있다 즉, “데이터의 논리구조를 명시하기 위한 규칙들을 정의한 언어의 일종”이라는 부분에 집중해야 한다. 어떠한 데이터를 가지고 그것을 수학적으로 가지고 놀겠다는 의미가 아니라, 데이터를 화면에 표시하기 위해서 사용하는 언어라는 것이다. 참고로 HTML(Hyper Text Markup Language)은 프로그래밍 언어가.. 2022. 2. 14.
CORS란 CORS (Cross-Origin Resource Sharing)란 도메인 또는 포트가 다른 서버의 자원을 요청하는 메커니즘 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 👉🏻 CORS 체제는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원한다. 최신 브라우저는 XMLHttpRequest 또는 Fetch와 같은 API에서 CORS를 사용하여 교차 출처 HTTP 요청의 위험을 완화 한다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요.. 2022. 2. 13.