본문 바로가기

전체 글294

멀티 프로세스와 멀티 스레드의 차이 멀티 프로세스(Multi Process) : 하나의 응용프로그램을 여러 개의 프로세스로 구성하며 여러 개의 프로세스가 협력하여 작업을 병렬처리 하는 것이다. 각 프로세스 간 메모리 구분이 필요하거나 독립된 주소 공간을 가져야 할 때 사용한다. 장점 독립된 구조이기 떄문에 안정성이 높다. 여러 프로세스 중 하나가 죽는다 해도 문제가 확산되지 않는다. 여러 개의 프로세스를 처리할 때 동일한 데이터를 사용하기 때문에 비용이 적게 든다. 단점 멀티 스레드보다 많은 메모리 공간과 CPU를 차지한다. 독립된 구조이기 때문에 작업량이 많을수록 오버헤드로 인한 성능 저하가 발생할 수 있다. 멀티 스레드(Multi Thread) : 하나의 작업을 위해 프로세스에서 여러 스레드를 생성해 자원을 공유하며 작업을 나누어 수행.. 2023. 1. 15.
프로세스(Process)와 스레드(Thread)의 차이 프로세스(Process) : 운영체제로부터 자원을 할당받는 작업의 단위로, 코드의 집합으로 이루어진 프로그램이 실행되는 것이다. ex) 컴퓨터를 키고 깃허브와 티스토리에 접속하는데 이는 각각의 프로세스를 실행하는 것 프로세스는 각각 독립된 메모리 영역(code, data, stack, heap)을 할당받는다. 프로세스당 최소 1개의 스레드를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 스레드(Thread) : 프로세스가 할당받은 자원을 이용하는 실행단위로, 프로세스 내에 여러 개가 생길 수 있다. 스레드는 프로세스 내에서 각각 stack만 따로 할당받고 code, data, heap 영역은 공유한다. 같은 프로세스 안에있는.. 2023. 1. 15.
SQL 과 NoSQL 의 차이 SQL (Structured Query Language) : SQL 은 RDBMS(관계형 데이터베이스 관리 시스템) 의 데이터를 관리하기 위해 설계된 프로그래밍 언어로, NoSQL 보다 오래전부터 사용되어 왔으며 MySQL, PostgreSQL 등이 있다. SQL 에서는 엄격한 스키마(데이터 저장 구조)를 원칙으로 하기 때문에 스키마에 맞지 않는 형식의 데이터는 저장할 수 없다. SQL 은 데이터 사이의 관계를 지정하기 쉬워 각 테이블 간의 관계 지정을 통해 테이블에 접근할 수 있고, 중복 없이 해당 데이터만을 다룰 수 있다. SQL 은 일반적으로 수직정 확장(vertical scale)만을 지원해서, 하드웨어를 업그레이드 하거나 추가하여 서버의 성능을 향상시킬 수 있다. NoSQL(Not Only St.. 2023. 1. 8.
SQL Injection SQL Injection : 악의적인 사용자가 보안상의 취약점을 이용하여 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위이다. 공격이 비교적 쉬운 편이고 공격 성공 시 큰 피해를 입힐 수 있다. 공격 종류 1. Error based SQL Injection 논리적 에러를 이용한다. 에러가 발생하는 사이트에서 에러 정보들을 이용하여 DB 및 쿼리 구조 등의 정보를 추측할 수 있다. 2. UNION based SQL Injection UNION : 두 개의 쿼리문에 대한 결과를 통합해 하나의 테이블로 보여주는 키워드 정상적인 쿼리문에 하나의 추가 쿼리를 삽입하여 원하는 정보를 획득한다. UNION Injection 이 성공하기 위해 필요한 두 가지 조건 : (.. 2023. 1. 8.