본문 바로가기

Computer Science18

멀티 프로세스와 멀티 스레드 1. 프로세스란? 실행 중인 프로그램으로, 디스크에서 메모리로 적재되어 CPU의 할당을 받은 작업단위를 말한다. 별도의 메모리 영역(Code, Data, Stack, Heap)을 포함하여, CPU시간, 주소 공간등의 시스템 자원을 운영체제로부터 할당받는다. 단순하게 말하면, 메모리에 올라와 실행되고 있는 프로그램의 인스턴스이며, 일을 처리하는 일련의 과정을 말한다. ⇒ 자신만의 공간과 자원을 할당받아 사용하는 작업의 단위2. 스레드란? 스레드는 한 프로세스 내에서 동작되는 여러 실행 흐름으로 프로세스 내의 주소공간이나 자원을 공유할 수 있는 프로세스의 실행 단위이다. 스레드는 프로세스 내의 Code, Data, Heap 영역을 공유하고 Stack영역은 별도로 할당받는다. ⇒ 프로세스 안에서 실행의 흐름 .. 2021. 4. 27.
3-way-handshake와 4-way-handshake 1. 3 way Handshake란? TCP/IP 프로토콜을 이용하여 통신을 진행할 때, 두 종단 간 정확한 데이터 전송을 보장하기 위해 연결을 설정하는 과정이다. 연결 과정 : - 클라이언트가 서버에게 접속을 요청하는 SYN(a)패킷을 보냄 - 서버는 요청 수락 응답으로 ACK(a+1)패킷과 클라이언트도 포트를 열어달라는 SYN(b)패킷을 보냄 - 클라이언트는 ACK(a+1) 패킷과 SYN(b)패킷을 받고 응답으로 ACK(b+1)패킷을 보내여 연결 성립 ⇒ 양 쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 데이터를 전송하기 전에 한쪽이 다른쪽의 준비를 확인하는 과정이다.2. 4 way Handshake란? 3 way Handshake와는 반대로 통신연결을 해제하는 과정이다. 해제 과정 : -.. 2021. 4. 27.
Graph와 Tree란? 1. 그래프란? 정점(노드)와 정점을 연결하는 간선으로 구성된 자료구조입니다. 계층이 없는 네트워크 모델이며, 싸이클(순환)이 존재할 수도, 존재하지 않은 수도 있습니다. 연결되어 있는 객체간의 관계를 표현할 수 있느 자료구조입니다.2. 트리란? 그래프이 종류 중 하나로, 노드와 간선으로 이루어진 비선형 자료구조입니다. 루트 노트가 존재하고, 부모-자식 관계로 이루어진 계층적인 모델입니다. 노드와 노드는 단 하나의 간선으로 연결되어 있으며, 싸이클이 존재하지 않습니다.3. 그래프와 트리의 차이? 그래프 - 노드 사이에 둘 이상의 경로가 가능하다. (단방향, 양방향 가능) - self-loop와 circuit(순환)이 가능하다. - 루트노드와 부모-자식이라는 개념이 없다. - 순회는 BFS나 DFS로 이루.. 2021. 4. 27.
SQL Injection이란?? 1. SQL Injection은 무엇인가? SQL Injection 은 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격하는 방식을 말합니다. 즉, 보안상의 취약점을 이용하여 임의의 SQL문을 주입하고 실행되게 하여 서버의 데이터베이스에 비정상적 동작을 하도록 조작하는 행위입니다. 비교적 쉬운 공격이지만, 성공할 경우 큰 피해를 입힐 수 있는 공격입니다. 주로 서버가 사용자의 입력을 제대로 필터링하지 못했을 경우 발생합니다.2. 어떻게 공격이 이루어지고 어떤 피해를 발생시키는가? - 논리적 에러를 이용한 SQL Injection : 'OR 1=1 -- ⇒ 쿼리문의 where 절을 모두 참으로 만들고 뒤의 구문을 주석처리 시켜서 통과 로그인 시, User 테이블의 모든 정보를 조회할 수 있고.. 2021. 4. 27.