728x90
반응형

1. 클라우드 컴퓨팅에 대해 설명해보세요.

클라우드 컴퓨팅은 사용자의 직접적인 활발한 관리 없이 특히, 데이터 스토리지 (클라우드 스토리지)와 컴퓨팅 파워와 같은 컴퓨터 시스템 리소스를 필요 시 바로 제공 (on-demand availability)하는 것을 말합니다. 일반적으로는 인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술을 의미합니다.

 

2. 멀티스레드와 멀티프로세스의 차이점은?

멀티스레딩 (Multithreading)하나의 프로세스 안에서 여러 개의 실행 흐름 (스레드)을 두는 방식으로 여러 실행을 동시에 실행하도록 하나의 프로세스를 운영하는 방식입니다. 멀티 프로세싱 (Multiprocessing)다수의 프로세서로 다수의 "프로세스"를 협력적으로 동시에 처리하는 것입니다.

멀티스레딩은 프로세스 내에서 데이터, 힙, 코드 영역을 공유하기 때문에 자원의 관점과 문맥 교환 관점에서 멀티프로세싱 방법보다 효율적입니다. 멀티 프로세싱은 프로세스를 여러 개 실행할 수 있는 환경을 제공하는 것입니다.

 

멀티프로세스의 장점
- 안정성: 하나의 프로세스가 죽어도 다른 프로세스에 영향을 미치지 않습니다.
- 보안: 각 프로세스는 자신의 메모리 공간을 가지고 있어 다른 프로세스의 메모리에 접근할 수 없습니다.

 

멀티프로세스의 단점
- 시스템 자원 소모: 각 프로세스는 자신만의 메모리 공간을 가지므로, 메모리를 많이 소모합니다.
- IPC(Inter-Process Communication)가 필요합니다.

 

멀티스레드의 장점
- 시스템 자원 소모가 적습니다.
- IPC가 필요하지 않습니다.

 

멀티스레드의 단점
안정성: 하나의 스레드가 죽으면 전체 프로세스가 영향을 받습니다.
보안: 각 스레드는 자신이 속한 프로세스의 메모리 공간을 공유하므로, 다른 스레드가 메모리에 접근할 수 있습니다.

 

크롬(멀티프로세스) VS IE(멀티스레드)

 

728x90
반응형
728x90
반응형

1. 모듈이란 무엇인가요? Node.js에서 모듈을 사용하는 방법은 무엇인가요?

모듈이란 관련 코드를 단일 코드 단위로 캡슐화하는 것입니다. 
Node.js에서 모듈을 사용하는 방법은 require() 함수를 사용하여 모듈을 가져오는 것입니다. 
require() 함수를 사용하여 다른 파일의 exports 객체를 가져와서 사용할 수 있습니다.

 

2. 테스트에 대해 어떤 것을 알고 있나요?

테스트는 소프트웨어 개발의 중요한 부분입니다. 프로그래머가 알아야 할 테스트의 종류로는 단위 테스트(Unit Test), 통합 테스트(Integration Test), 시스템 테스트(System Test), 인수 테스트(Acceptance Test) 등이 있습니다.

단위 테스트는 응용 프로그램에서 테스트 가능한 가장 작은 소프트웨어를 실행하여 예상대로 동작하는지 확인하는 테스트입니다. 일반적으로 클래스 또는 메소드 수준으로 정해집니다.

통합 테스트는 단위 테스트보다 더 큰 동작을 달성하기 위해 여러 모듈들을 모아 이들이 의도대로 협력하는지 확인하는 테스트입니다. 통합 테스트는 단위 테스트와 달리 개발자가 변경할 수 없는 부분 (ex. 외부 라이브러리)까지 묶어 검증할 때 사용합니다.

시스템 테스트는 전체 시스템이 요구사항을 충족하는지 확인하는 테스트입니다. 시스템의 기능, 성능, 안정성 등을 검증합니다.

인수 테스트는 사용자 스토리 (시나리오)에 맞춰 수행하는 테스트입니다. 앞선 두 테스트들과 달리 비즈니스 쪽에 초점을 둡니다. 프로젝트에 참여하는 사람들 (ex. 기획자, 클라이언트 대표, 개발자 등)이 토의해서 시나리오를 만들고, 개발자는 이에 의거해서 코드를 작성합니다.

728x90
반응형
728x90
반응형

1. 프로미스(Promise)와 async/await에 대해 설명해보세요.

프로미스(Promise)비동기 처리를 위한 것이고 async/await프로미스를 좀 더 간결하게 사용되기 위한 문법입니다. async 키워드는 함수 앞에 붙는 키워드로, 해당 함수가 비동기 함수임을 의미합니다. async함수는 항상 Promise를 리턴하죠. await 키워드는 async 함수 내부에서만 사용 할 수 있으며, Promise가 resolved 또는 reject될 때까지 기다립니다.

에러핸들링의 차이점으로 프로미스를 활용할 때는 .catch ()문을 통해 에러를 핸들링 하지만 async await는 에러핸들링을 따로 하지 않고 try-catch문을 활용해야 합니다. 코드의 가독성 차이도 있습니다. 프로미스는 콜백지옥은 벗어났지만 .then의 지옥에 빠지는 가능성이 있습니다. 또한 코드가 길어질수록 async/await를 활용한 코드가 가독성이 좋습니다. async/await는 비동기 코드를 동기처럼 읽히게 해줍니다.

2. 스코프와 클로저란 무엇인가요?

 

스코프

스코프변수에 접근하거나 참조할 수 있는 위치를 의미합니다.

자바스크립트에서는 전역스포크와 지역스코프가 있습니다.

엘라의 Scope & Closure - 우아한 테크톡

 

엘라의 Scope & Closure - 우아한 테크톡

 


클로저

클로저함수 안에 또 다른 함수가 있을 때, 안쪽의 함수가 바깥쪽의 함수의 변수에 접근할 수 있도록 해주는 기능입니다. 이를 통해 안쪽의 함수는 바깥쪽의 함수가 끝나고 사라진 후에도 그 변수를 계속 사용할 수 있습니다.

이렇게 클로저를 사용하면 변수를 보호하거나 데이터를 숨기는 등의 기능을 구현할 수 있습니다. 

클로저에 의해 참조된 변수를 자유변수라고 합니다. 

<클로저 예제>

const x = 1;

function outer() {
  const x = 10;
  const inner = function () {
    console.log(x);
  };
  
  return inner;
}

const ella = outer();
ella(); //10

ella라는 함수에 outer를 집어넣으면서 실행 컨텍스트 스택에서 x = 10;은 사라진 것으로 보입니다.

그러나 실행결과를 보면 x = 10으로 나옵니다.

이유는 아우터 실행 컨텍스트는 종료되었지만, ella함수에서 outer함수를 참조하고,

그 안에 있는 변수까지 참조하고 있기 때문에 자유변수로써 참조하여 사용할 수 있습니다.

이런 현상을 클로저라고 합니다.

 

728x90
반응형
728x90
반응형

1. 보안 (Security)과 관련된 문제들은 어떤 것이 있나요?

인증 및 권한 부여: 사용자 인증 및 권한 부여를 통해 민감한 데이터에 대한 접근을 제어해야 합니다. 이를 위해 일반적으로 사용자 이름과 비밀번호를 사용하여 사용자를 인증하고, 권한 부여 시스템을 통해 사용자의 권한을 관리합니다.

데이터 암호화: 전송 중이거나 저장된 데이터를 암호화하여 데이터 유출을 방지해야 합니다. 이를 위해 SSL/TLS와 같은 프로토콜을 사용하여 데이터를 전송하고, AES와 같은 암호화 알고리즘을 사용하여 데이터를 저장합니다.

SQL 인젝션: 악의적인 SQL 쿼리가 실행되지 않도록 쿼리를 검증하고 필터링해야 합니다. 이를 위해 Prepared Statement와 같은 기술을 사용하여 쿼리를 안전하게 생성하고 실행합니다.

더보기

SQL 인젝션 공격을 방지하기 위해서는 다음과 같은 방법들이 있습니다:
Prepared Statement: Prepared Statement를 사용하여 쿼리를 생성하고 실행합니다. 

Prepared Statement는 쿼리 템플릿과 변수값을 분리하여 처리하므로, SQL 인젝션 공격이 불가능합니다.
입력값 검증: 사용자로부터 입력받은 값에 대해 검증 및 필터링을 수행합니다. 

정규식 등의 기술을 사용하여 입력값이 유효한지 확인하고, 유효하지 않은 경우 에러 메시지를 반환합니다.

 

XSS (Cross-Site Scripting): 악의적인 스크립트가 실행되지 않도록 입력값을 검증하고 필터링해야 합니다. 이를 위해 입력값을 검증하는 정규식과 같은 기술을 사용하여 입력값을 필터링하고, 출력 시에는 HTML 인코딩과 같은 기술을 사용하여 스크립트가 실행되지 않도록 합니다.

더보기

XSS 공격을 방지하기 위해서는 다음과 같은 방법들이 있습니다:
출력값 인코딩: 사용자로부터 입력받은 값을 출력할 때 HTML 인코딩을 수행합니다. 

이를 통해 <, >, & 등의 문자가 HTML 태그로 해석되지 않도록 합니다.
입력값 검증: 사용자로부터 입력받은 값에 대해 검증 및 필터링을 수행합니다. 

정규식 등의 기술을 사용하여 입력값이 유효한지 확인하고, 유효하지 않은 경우 에러 메시지를 반환합니다.


CSRF (Cross-Site Request Forgery): 사용자가 의도하지 않은 요청이 전송되지 않도록 CSRF 토큰 등의 방법을 사용하여 요청을 검증해야 합니다. 이를 위해 CSRF 토큰을 생성하여 폼에 포함시키고, 요청 시에는 CSRF 토큰 값을 검증하여 유효한 요청인지 확인합니다.

더보기

CSRF 공격을 방지하기 위해서는 다음과 같은 방법들이 있습니다:
CSRF 토큰: CSRF 토큰을 생성하여 폼에 포함시킵니다. 요청 시 CSRF 토큰 값을 검증하여 유효한 요청인지 확인.
Referrer 검증: 요청의 Referer 헤더 값을 검증하여 요청이 유효한 페이지에서 전송되었는지 확인합니다.

 

2. 개발 방법론 (Development Methodology)에 대해 설명해보세요.

개발 방법론(Development Methodology)은 소프트웨어 개발 프로젝트를 수행하는 데 사용되는 일련의 프로세스와 절차를 말합니다. 이는 프로젝트의 일정, 예산, 품질 등을 관리하고 효율적으로 개발을 진행하기 위해 사용됩니다.

개발 방법론에는 여러 종류가 있습니다. 대표적인 예로는 다음과 같습니다:

Waterfall: 전통적인 개발 방법론으로, 각 단계가 순차적으로 진행됩니다. 요구사항 분석, 설계, 구현, 테스트, 유지보수 등의 단계로 구성됩니다.

더보기

장점: 각 단계가 명확하게 구분되어 있어 일정 관리가 용이하고, 문서화가 철저하여 프로젝트의 전체적인 흐름을 파악하기 쉽습니다.
단점: 각 단계가 순차적으로 진행되므로 유연성이 떨어지고, 고객의 요구사항 변화에 대응하기 어렵습니다. 또한 테스트 단계가 마지막에 위치하여 결함이 늦게 발견될 수 있습니다

 

Agile: 유연한 개발 방법론으로, 고객의 요구사항 변화에 빠르게 대응할 수 있도록 개발 프로세스가 짧은 주기로 반복됩니다. Scrum, Kanban 등이 이에 속합니다.

 

더보기

장점: 짧은 주기로 개발 프로세스가 반복되므로 고객의 요구사항 변화에 빠르게 대응할 수 있습니다. 또한 지속적인 테스트와 피드백을 통해 결함을 빠르게 발견하고 수정할 수 있습니다.
단점: 일정 관리가 어렵고, 문서화가 부족할 수 있습니다. 또한 고객과의 지속적인 소통이 필요하므로 고객의 참여가 활발하지 않으면 프로젝트 진행이 어려울 수 있습니다.


DevOps: 개발(Development)과 운영(Operations)의 협업을 강조하는 개발 방법론으로, 지속적인 통합(CI)과 지속적인 배포(CD)를 통해 빠른 배포와 높은 서비스 품질을 달성하는 것을 목표로 합니다.

 

더보기

장점: 개발과 운영의 협업을 강조하여 개발 속도를 높이고 서비스 품질을 개선할 수 있습니다. 지속적인 통합(CI)과 지속적인 배포(CD)를 통해 빠른 배포와 신속한 대응이 가능합니다.
단점: 개발과 운영의 역할 구분이 모호해질 수 있고, 새로운 도구와 기술의 도입이 필요하여 학습 비용이 발생할 수 있습니다.

728x90
반응형
728x90
반응형

자바스크립트에서는 원시 타입(primitive type)의 값은 call by value(값에 의한 호출)로 전달되고,

객체 타입(object type)은 call by reference(참조에 의한 호출)로 전달됩니다.

Call by value는 변수에 저장된 값을 복사해서 전달하는 방식입니다. 이 방식에서는 변수의 복사본이 전달되므로

함수 내부에서 전달 받은 값을 변경해도 원래 변수의 값은 변경되지 않습니다.

let x = 1;
function addOne(num) {
    num = num + 1;
}
addOne(x);
console.log(x); // 1


반면에 call by reference는 변수 자체가 전달됩니다. 이 방식에서는 해당 변수의 주소를 전달하므로 함수 내부에서 전달 받은 값을 변경하면 원래 변수의 값도 변경됩니다..

let arr = [1, 2, 3];
function addElement(array) {
    array.push(4);
}
addElement(arr);
console.log(arr); // [1, 2, 3, 4]

 

Call by value는 변수에 저장된 값을 복사해서 전달하는 방식입니다.

장점은 복사하여 처리하기 때문에 매개변수로 전달된 값이 보존되고 안전합니다.

단점으로는 복사를 하기 때문에 메모리 사용량이 늘어납니다.

call by reference는 변수 자체가 전달됩니다. 

장점복사하지 않고 직접 참조를 하기 때문에 실행 속도가 빠릅니다. 

단점직접 참조를 하기 때문에 원래의 값이 영향을 받습니다

 

728x90
반응형
728x90
반응형

1. 자료구조와 알고리즘 중에서 자주 사용되는 것들은 어떤 것이 있나요?

자료구조는 메모리를 효율적으로 사용하며 빠르고 안정적으로 데이터를 처리하는 것이 궁극적인 목표로 상황에 따라 유용하게 사용될 수 있도록 특정 구조를 이루고 있다. 

 

알고리즘은 특정 문제를 효율적이고 빠르게 해결하는 것이 궁극적인 목표로 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것을 말한다.

 

자료구조와 알고리즘은 프로그래밍에서 매우 중요한 개념입니다. 자주 사용되는 자료구조로는 리스트(List), 스택(Stack), 큐(Queue), 트리(Tree), 그래프(Graph) 등이 있습니다. 이러한 자료구조들은 데이터를 상황에 맞게 저장하기 위한 구조로 사용됩니다.

알고리즘은 자료구조에 있는 데이터를 활용해 어떠한 문제를 해결하기 위한 여러 방법들의 모임입니다. 자주 사용되는 알고리즘으로는 순환(Recursion), 정렬(Sorting), 검색(Search) 등이 있습니다.

 

간단히 말하면, 자료구조는 데이터를 저장하고 조직화하는 방법이며, 

알고리즘은 이러한 데이터를 활용하여 문제를 해결하는 방법입니다.

이러한 자료구조와 알고리즘은 프로그래밍에서 데이터의 집합, 관계, 연산을 정의하는데 사용됩니다.

 

2. 데이터베이스 (Database)와 ORM(Object Relational Mapping)에 대해 설명해보세요.

데이터베이스(Database)는 데이터를 저장하고 관리하는 시스템입니다. 데이터베이스는 데이터의 검색, 삽입, 삭제, 수정 등의 작업을 수행할 수 있습니다.

ORM(Object Relational Mapping)은 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 호환성을 높이기 위한 기술입니다. ORM은 데이터베이스의 테이블을 프로그래밍 언어의 클래스로 매핑하고, 테이블의 레코드를 해당 클래스의 객체로 표현합니다. 이를 통해 개발자는 SQL문을 직접 작성하지 않고도 데이터베이스와 상호작용할 수 있습니다.

더보기

데이터베이스는 데이터를 저장하고 관리하는 시스템입니다. ORM은 데이터베이스와 프로그래밍 언어 사이에서 중개자 역할을 합니다. 이를 통해 개발자는 SQL문을 직접 작성하지 않고도 데이터베이스와 상호작용할 수 있습니다.

 

 

728x90
반응형
728x90
반응형

1. HTTP와 HTTPS의 차이점은 무엇인가요?

HTTP와 HTTPS의 가장 큰 차이점은 보안입니다. HTTP란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜입니다. 이 HTTP에는 3가지 문제가 있습니다. 첫 번째 HTTP 는 평문 통신이기 때문에 도청이 가능하다. 두 번째 통신 상대를 확인하지 않기 때문에 위장이 가능하다. 세 번째 완전성을 증명할 수 없기 때문에 변조가 가능하다. 이 3가지 문제를 해결하기 위해 HTTPS는 SSL(Secure Socket Layer) or TLS(Transport Layer Security)와 같은 프로토콜을 사용하여 공개키/개인키 기반으로 데이터를 암호화하고 있습니다. 데이터는 암호화되어 전송되기 때문에 임의의 사용자가 데이터를 조회하여도 원본의 데이터를 보는 것은 불가능하고, 완정성 또한 증명할 수 있습니다.

 

2. RESTful API에 대해 설명해보세요.

RESTful API란 Representational State Transfer (REST) 아키텍처 스타일을 따르는 API입니다. 

REST는 Representational State Transfer의 줄임말이다. 자원을 자원(resource)의 표현(representation) 으로 구분하여 

해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.
REST는 웹 서비스에서 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 제공합니다. 
RESTful API는 HTTP 메소드를 사용하여 CRUD (Create, Read, Update, Delete) 작업을 수행합니다.

더보기

REST의 장단점

장점

1. 별도의 인프라 구축 필요x

- HTTP를 사용하기 때문에 별도의 인프라를 구축할 필요가 없습니다.

2. 클라이언트와 서버의 분리

- 클라이언트와 서버는 REST API를 통해 정보를 주고 받기 때문에 둘 간의 역할이 명확하게 분리됩니다.

3. 플랫폼에 독립적

- HTTP를 사용 가능한 환경이라면 플랫폼에 상관없이 사용 가능합니다.

4. 쉬운 사용

- 메세지가 자체적으로 무엇을 의미하는지 표현하고 있기 때문에 사용이 쉽습니다.

단점

1. 표준이 존재하지 않음

- 명확한 표준이 존재하지 않습니다. 따라서 REST의 특징을 따르지 않으면서 REST API로 설계되는 이상한 API가 탄생할 수 있으며 관리가 어렵습니다.

2. HTTP Method의 한계

- HTTP Method를 사용하기 때문에 CRUD라는 단순한 행위의 Method만 지원합니다.

3. RDBMS와 맞지 않음

- REST에서는 리소스를 JSON, XML등의 형태로 표현하는데 이는 RDBMS와는 맞지 않는 형태입니다. 그래서 NoSQL쪽이 더 선호되는 추세입니다.

 

 

 

728x90
반응형
728x90
반응형

1. 동기와 비동기 코드 실행방식에 대해 설명해보세요.

동기는 청을 보낸 후 응답을 받아야지만 다음 동작이 이루어지는 방식이다.

어떠한 태스크를 처리할 동안 나머지 태스크는 대기한다.

실제로 cpu가 느려지는 것은 아니지만 시스템의 전체적인 효율이 저하된다고 할 수 있다.

(작업을 동시에 수행, 동시에 끝남, 끝나는 동시에 시작함을 의미)

 

반면에 비동기는 요청을 보낸 후 응답의 수락 여부와는 상관없이 다음 태스크가 동작하는 방식이다.

자원을 효율적으로 사용할 수 있다. 이때, 비동기 요청시 응답 후 처리할 콜백 함수를 함께 알려준다.

(시작, 종료가 일치하지 않으며, 끝나는 동시에 시작을 하지 않음을 의미)

 

하지만 비동기 처리를 위해 여러개의 콜백함수를 중첩시키면 콜백지옥이 발생한다.

이를 해결하기 위해 Promise를 도입하였고, Async / Await 추가로 도입되었다.

추가내용 : https://pyoja.tistory.com/243

 

[1회 - 데일리과제] 이벤트 루프와 콜백함수

1. 이벤트 루프 (Event Loop)에 대해 설명해보세요. 이벤트 루프는 작업이 들어오길 기다렸다가 작업이 들어오면 이를 처리하고, 처리할 작업이 없는 경우엔 잠드는, 끊임없이 돌아가는 자바스크립

pyoja.tistory.com


따라서 Node.js에서는 비동기 코드 실행 방식을 사용하여 I/O 작업을 처리하고, 

이를 통해 더 높은 처리량과 더 빠른 응답 시간을 달성합니다.

동기/비동기는 결과를 돌려주었을 때 순서와 결과에 관심이 있는지 아닌지로 판단할 수 있다.

 

 

<추가공부> 블로킹 vs 논블로킹

블로킹 : 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 작업이 끝날 때 까지 기다렸다 작업(동기)

논블로킹 : 다른 주체의 작업에 관련없이 자신의 작업을 하는 것(비동기)

 

다른 주체가 작업을 할 때 자신의 제어권이 있는지 없는지로 볼 수 있다.

멍토의 Blocking vs Non-Blocking, Sync vs Async - 우아한테크톡(유튜브)
작업의 흐름

 

출처 : https://bit.ly/3KzKwPt

 

2. 프로세스와 스레드의 차이점은 무엇인가요?

면접질문시에 간단하게 이정도면 답하면 될 것 같다.

더보기

프로세스는 운영체제로부터 자원을 할당받아 독립적으로 실행되는 작업 단위입니다. (실행중인 프로그램)

이에 반해 스레드는 프로세스 내에서 실행되는 여러 실행 흐름 중 하나로, 

프로세스 내에서 Stack 메모리 영역을 제외한 Code/Data/Heap 메모리 영역을 공유합니다.

 

프로세스는 실행 중인 프로그램을 의미하며, 메모리 상에서 독립적으로 할당되며 각각의 프로세스는 자신만의 고유한 주소 공간(메모리)을 갖고 있습니다. 즉, 다른 프로세스에 영향을 받지 않고 독립적으로 실행될 수 있는 단위입니다.

반면에 스레드(Thread)는 프로세스 내에서 실행되는 여러 실행 흐름 중 하나입니다. 

스레드는 프로세스 내에서 Stack 메모리 영역을 제외한 Code/Data/Heap 메모리 영역을 공유합니다. 

이러한 특성 때문에 스레드는 프로세스보다 더 가볍고 빠르게 생성 및 소멸할 수 있습니다.

또한 스레드는 프로세스 내에서 생성되기 때문에 프로세스 내의 데이터를 모두 공유할 수 있습니다. 

이를 통해 스레드 간의 데이터 전달이 더욱 쉬워지며, 이를 통해 더욱 복잡한 작업을 수행할 수 있습니다.

예를들어 웹 브라우저는 하나의 프로세스입니다. 그리고 웹 페이지를 로딩하는 것은 하나의 스레드입니다. 이때 웹 페이지를 로딩하는 스레드는 다른 스레드와 데이터를 공유하며, 이를 통해 더욱 복잡한 작업을 수행할 수 있습니다.

 

 

코다의 Process vs Thread - 우아한테크(유튜브)

<추가설명>

더보기

멀티프로세스의 장점
- 안정성: 하나의 프로세스가 죽어도 다른 프로세스에 영향을 미치지 않습니다.
- 보안: 각 프로세스는 자신의 메모리 공간을 가지고 있어 다른 프로세스의 메모리에 접근할 수 없습니다.

 

멀티프로세스의 단점
- 시스템 자원 소모: 각 프로세스는 자신만의 메모리 공간을 가지므로, 메모리를 많이 소모합니다.
- IPC(Inter-Process Communication)가 필요합니다.

 

멀티스레드의 장점
- 시스템 자원 소모가 적습니다.
- IPC가 필요하지 않습니다.

 

멀티스레드의 단점
안정성: 하나의 스레드가 죽으면 전체 프로세스가 영향을 받습니다.
보안: 각 스레드는 자신이 속한 프로세스의 메모리 공간을 공유하므로, 다른 스레드가 메모리에 접근할 수 있습니다.

멀티프로세스안정성과 보안성이 높지만 시스템 자원 소모가 크고 IPC가 필요하며,

멀티스레드시스템 자원 소모가 적고 IPC가 필요하지 않지만 안정성과 보안성이 낮습니다.

크롬(멀티프로세스) VS IE(멀티스레드)

이미지 출처 : https://www.youtube.com/watch?v=1grtWKqTn50 (우아한테크톡)

728x90
반응형

+ Recent posts