본문 바로가기

분류 전체보기

(108)
[CS] 멀티스레딩(Multithreading)과 멀티프로세싱(Multiprocessing) 멀티 쓰레딩이란? 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상 시키는 것 하나의 프로그램에서 동시에 여러 개의 일을 수행할 수 있도록 해줌 (사실 분산처리를 통해 동시에 실행되는 것 처럼 보이는 것) 장점 응답성 : 프로그램의 일부분(스레드)이 중단되거나 긴 작업을 수행하더라도 프로그램의 수행이 계속 되어 사용자에 대한 응답성이 증가한다. ex) 멀티 스레드가 적용된 웹 브라우저 프로그램에서 하나의 스레드가 이미지 파일을 로드하고 있는 동안, 다른 스레드에서 사용자와 상호작용 가능 경제성 : 프로세스 내 자원들과 메모리를 공유하기 때문에 메모리 공간과 시스템 자원 소모가 줄어든다. 스레드 간 통신이 필요한 경우에도 쉽게 데이터를..
[CS] 클라우드(Cloud) 컴퓨팅 클라우드(Cloud) : 구름 광대한 네트워크를 통하여 접근할 수 있는 가상화된 서버와 서버에서 작동하는 프로그램과 데이터베이스를 제공하는 IT 환경을 의미합니다. 클라우드를 이용하면 필요한 컴퓨팅 자원을 인터넷으로 쉽게 이용할 수 있습니다. 클라우드 컴퓨팅은? 클라우드를 이용하여 컴퓨팅 자원을 사용하는 기술적인 방법입니다. 이는 서버, 스토리지, 네트워크 등의 자원을 가상화하여 사용자에게 제공하며, 필요에 따라 이를 확장하거나 축소할 수 있습니다. 클라우드 서비스 클라우드 컴퓨팅을 기반으로 제공되는 서비스를 의미합니다. 이는 다양한 형태로 제공될 수 있습니다. Infrastructure as a Service(IaaS) 인프라 기반 서비스 서버, 스토리지 및 네트워크 등과 같은 컴퓨팅 리소스(IT 인프..
[Node.js] 테스트(Testing) Test['시험','검사'] 테스트 코드 개발한 코드가 의도한대로 동작하는지 작성하는 코드 작성한 코드에 문제가 없는지 테스트 하기 위해 작성하는 코드 '내 코드가 멀쩡하다'고 증명하는 것이 아닌 '내 코드가 멀쩡하다면 이런 결과가 나와야 한다'고 생각해야 한다. 테스팅은 결함이 없는것이 아니라, 결함의 존재를 보여주는것 테스트 코드의 종류 단위 테스트(Unit Test) : 가장 작은 규모의 기능을 테스트 통합 테스트(Integration Test) : 여러가지 기능을 합쳤을 때 생기는 문제를 방지하기 위한 테스트 E2E 테스트(End-to-End Test) : 끝에서 끝(종단 간)을 의미하는 테스트로 백엔드부터 시작해서 최종적으로 웹 페이지가 원하는대로 동작하며 원하는 데이터를 잘 보여주는지 확인합니..
[Node.js] 모듈(module) 모듈(module) 프로그램을 구성하는 구성 요소로, 관련된 데이터와 함수를 하나로 묶은 단위 독립된 기능을 갖는 것(함수, 파일)들의 모임 보통 하나의 소스 파일에 모든 함수를 작성하지 않고, 함수의 기능별로 따로 모듈을 구성 모듈화 프로그래밍 : 프로그램 코드를 기능별로 나눠서 독립된 파일에 저장하여 관리하는 방식 Javascript 파일 단위로 분리된 코드 여기서 Javascript 파일은 특정한 기능을 가진 여러 개의 함수와 변수들의 집합 모듈이 필요한 이유 코드 베이스를 분리할 수 있으며, 이를 통해 코드를 구조적으로 관리할 수 있습니다. 코드를 재사용 가능하게 만들어줍니다. 즉, 모듈화(modularize) 됩니다. 모듈의 인터페이스(Interface)만 노출 시킬 수 있습니다. 즉, 인터페이..
[JavaScript] 클로저(closure) 클로저는 자바스크립트 고유의 개념이 아닌 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어에서 사용되는 중요한 특성이다. “함수가 선언됐을 때의 렉시컬 환경(Lexical environment)” function outerFunc() { var x = 10; var innerFunc = function () { console.log(x); }; return innerFunc; } /** * 함수 outerFunc를 호출하면 내부 함수 innerFunc가 반환된다. * 그리고 함수 outerFunc의 실행 컨텍스트는 소멸한다. */ var inner = outerFunc(); inner(); // 10 자신을 포함하고 있는 외부함수보다 내부함수가 더 오래 유지되는 경우, 외부 함수 밖에서 내부함수가 호출..
[JavaScript] Promise / async / awiat Promise 자바스크립트의 비동기 처리에 사용되는 객체로, 동기식 처리처럼 작업의 순서에 따른 실행을 가능하게 합니다. 자바스크립트에서 비동기 처리를 동기 처리로 할 수 있게 하는 Bulit-in(미리 내부적으로 정의된)객체 new Promise(executor); // 예제 화살표 함수 new Promise((resolve, reject) => { //명령문 }); Promise 생성자 인터페이스 executor에는 함수만 올 수 있으며 인자로 resolve, reject가 주입됩니다. executor는 Promise의 실행 함수라고 불리고, Promise가 만들어질 때 자동으로 실행됩니다. Promise가 연산을 언제 종료하는지 상관하지 않고, resolve, reject 중 하나를 무조건 호출해야..
[CS] 소프트웨어 개발 방법론 소프트웨어 개발에 필요한 반복적인 과정(절차, 방법, 산출물, 기법, 도구)들을 체계적으로 정리한 것 수 많은 소프트웨어 실제 개발 과정을 정리하여 체계적인 분석을 통해 각각의 상황에 맞는 개발 방법을 정의한 이론 소프트웨어를 생산하는 데 필요한 프로그래밍 개발 과정들을 정리하고 표준화하여 프로그래머들이 프로그래밍 개발 과정에서 각 개인이 개발과정에서의 일관성을 유지하고 프로그래머들 간의 효과적인 협업이 이루어질 수 있도록 돕기 위한 방법론 소프트웨어 개발 방법론 구성 요소 소프트웨어 개발 방법론의 종류 참조 소프트웨어 개발 방법론 소프트웨어 개발방법론
[CS] 보안 문제점 인증 정보 탈취 랜섬웨어 데이터 유출 메시징 서비스 공격 암호화폐 거래, 스마트 계약 등을 대상으로 한 사이버 공격 서비스 제공기업의 소프트웨어를 통한 침투 브라우저를 통한 공격 API를 통한 공격 비즈니스 프로세스의 약점을 분석해 공격 AL/ML을 이용한 공격 증가 참조 아크로니스, 2023년 사이버 위협 전망… 인증정보 탈취·랜섬웨어 등 주의보