CORS란? 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 출처(Origin): https://developer.mozilla.org/ko/docs/Web/HTTP/CORS 교차 출처 리소스 공유 (CORS) - HTTP | MDN 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라 developer.mozilla.org..
Crontab? 크론탭은 특정 파일이 특정 시간에 정기적으로 실행될 수 있도록 도와주는 유틸이다. 매일 특정 시간에 실행시켜야 하는 파일이 있다면 크론탭을 통해 서버에 올려놓고 사용하는 식이 대부분이다. 명령어 # 크론탭 작업 목록 crontab -l # 크론탭 수정 crontab -e # 크론탭 작성 내용 삭제 crontab -r 작성 크론탭을 사용할 때는 파일이름과 해당 파일이 동작할 시간을 함께 작성해준다. 아마 초기 작성시에는 사용할 편집기를 고르게 하는데 nano든 vim이든 본인이 편한 걸로 사용해주자. * * * * * /home/mydir/someFileToExecute.sh * 은 첫 번째부터 - 분 (0~59) - 시 (0~23) - 일 (1-31) - 월 (1~12) - 요일 (0~7..
링크드 리스트 정리 https://seongonion.tistory.com/20?category=867075 링크드 리스트의 구현 및 연산 - 파이썬(Python) 링크드 리스트의 구현 (Node, __init__, __str__) 링크드 리스트를 구현하기 위해선, 각각의 데이터와 다음 데이터에 대한 주소(레퍼런스)를 저장할 '노드' 객체가 필요하다. class Node: def __init__(self, data. seongonion.tistory.com 우선, 단방향 링크드 리스트를 클래스를 통해 간단히 구현해보자. class Node: def __init__(self, data): self.data = data self.next = None 각 노드들은 data와 next를 속성으로 가질 수 있다...
프로세스와 스레드의 차이 프로그램(Program) 특정 작업을 위해서 실행할 수 있는 파일 (코드의 묶음) 보조기억장치에 저장되어 있음 (디스크 등) 정적인 형태 →디스크에 저장되어 있는 binary파일을 프로그램이라고 보면 된다. 프로세스(Process) 운영체제로부터 메모리를 할당 받아 실행 중인 프로그램 실행되면 주기억장치에 데이터가 적재됨 (RAM) 동적인 형태 → 프로그램이 RAM에 적재되어 실행중인 상태인 것을 프로세스라고 할 수 있다. 프로세스의 구성 요소 (Process Control Block) 1) PID (Process ID) 프로세스를 식별할 수 있는 고유번호 2) Process State 해당 프로세스가 현재 어떠한 상태인지를 나타내는 정보로, Ready, Waiting/Block..
HTTPS HTTPS란? HTTP 프로토콜의 보안버전 - S(Secure) HTTP의 약점 암호화가 되지 않은 평문 통신으로, 도청이 가능하다. 통신하려는 상대를 확인하지 않는다 HTTP의 약점을 보완하기 위해선 암호화가 필요하다 🔑 암호화 알고리즘 1. 대칭키 암호화와 복호화에 동일한 키를 사용하는 것 대칭키의 장점 송신자와 수신자가 동일한 키를 가지고 있기 때문에, 암호화 - 복호화 과정이 단순하며 속도가 빠르다. 대칭키의 단점 어쨌든 송신자와 수신자 간 키 교환이 이루어져야한다. 키 교환 과정에서 키가 노출되면 암호가 무력해진다. 수신자와 송신자가 늘어날수록 그만큼 관리해야할 키가 하나 씩 증가해 관리가 어려울 수 있다. 2. 비대칭키(공개키) 암호화와 복호화에 다른 키를 사용하는 것 비대칭키의 장..
HTTP HTTP란? HyperText Transfer Protocol의 약자로, HyperText 문서(HTML)의 리소스들을 가져오거나 보낼 때 사용하는 통신규약 TCP / IP 위에서 이루어짐 HTTP는 요청 & 응답 구조로 이루어져있다 Client가 Request & Server가 Response HTTP의 특성 ✅ Stateless하다! 각각의 요청(Request)와 응답(Response)는 독립적인 행위이다. Ex) 클라이언트가 요청을 보낸 후 응답을 받고, 얼마 후에 또 다른 요청을 보낼 때 클라이언트와 서버는 둘 다 이전에 보냈던 요청 / 응답에 대해 기억하지 못한다. Stateless하기 때문에 다수의 Request가 서버로 들어와도 부하를 줄일 수 있다. (연결 정보를 저장할 필요가 없..
TCP란 연결 지향형 프로토콜로, 연속성 있는 데이터 패킷을 주고 받을 때 사용한다. TCP 특징 전송되는 데이터의 신뢰성 보장 (흐름 제어, 혼잡 제어, 오류 제어) 파일전송에 주로 사용 가상 회선을 만들어 신뢰성을 보장 TCP 3 way handshake 연결하고자 하는 두 장치 간의 논리적 접속을 성립하기 위해 사용하는 연결 확인 방식으로, 3번의 확인 과정을 거친다고 해서 3 way handshake라고 부른다. TCP 3 way handshake를 간단히 표현하면 다음과 같다. A -> B : 내 말 들려? B -> A : 잘 들려. 내 말은 들려? A -> B : 잘 들려! SYN (synchronize sequence numbers) - 연결 확인을 위해 보내는 무작위의 숫자값 (내 말 잘 ..
힙이란? 힙은 트리 형태로 만들어진 자료구조 중 하나이다. 힙은 트리 중에서도 두 가지 조건을 만족해야 하는데, 첫 번째는 완전이진트리여야 한다는 것 두 번째는 부모 노드의 값이 항상 자신의 자식노드들보다 커야한다는 것이다. (힙의 예시) 위 트리는 트리의 높이 - 1 까지 모두 빈 노드 없이 차 있으며 마지막 높이의 데이터들 역시 왼쪽부터 오른쪽으로 차례대로 채워져있으므로 완전이진트리의 속성을 만족시킨다고 할 수 있다. 또한, 모든 노드들이 자신의 자식노드들보다 큰 값을 가지기 때문에 힙의 성질 역시 만족시킨다고 할 수 있겠다. 힙 자료구조의 구현 힙 자료구조는 기본적으로 완전이진트리이기 때문에, 특정 노드의 위치를 알면 그 노드의 부모 노드의 위치와 두 자식 노드의 위치를 알 수 있다. 이를 활용하면..