전체 글 107

[CS] 멀티스레딩(Multithreading)과 멀티프로세싱(Multiprocessing)

멀티 쓰레딩이란?하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상 시키는 것하나의 프로그램에서 동시에 여러 개의 일을 수행할 수 있도록 해줌 (사실 분산처리를 통해 동시에 실행되는 것 처럼 보이는 것)장점응답성 : 프로그램의 일부분(스레드)이 중단되거나 긴 작업을 수행하더라도 프로그램의 수행이 계속 되어 사용자에 대한 응답성이 증가한다.ex) 멀티 스레드가 적용된 웹 브라우저 프로그램에서 하나의 스레드가 이미지 파일을 로드하고 있는 동안, 다른 스레드에서 사용자와 상호작용 가능경제성 : 프로세스 내 자원들과 메모리를 공유하기 때문에 메모리 공간과 시스템 자원 소모가 줄어든다. 스레드 간 통신이 필요한 경우에도 쉽게 데이터를 주고 받을..

CS 2023.05.17

[CS] 클라우드(Cloud) 컴퓨팅

클라우드(Cloud) : 구름광대한 네트워크를 통하여 접근할 수 있는 가상화된 서버와 서버에서 작동하는 프로그램과 데이터베이스를 제공하는 IT 환경을 의미합니다. 클라우드를 이용하면 필요한 컴퓨팅 자원을 인터넷으로 쉽게 이용할 수 있습니다.클라우드 컴퓨팅은?클라우드를 이용하여 컴퓨팅 자원을 사용하는 기술적인 방법입니다. 이는 서버, 스토리지, 네트워크 등의 자원을 가상화하여 사용자에게 제공하며, 필요에 따라 이를 확장하거나 축소할 수 있습니다.클라우드 서비스클라우드 컴퓨팅을 기반으로 제공되는 서비스를 의미합니다. 이는 다양한 형태로 제공될 수 있습니다.Infrastructure as a Service(IaaS) 인프라 기반 서비스서버, 스토리지 및 네트워크 등과 같은 컴퓨팅 리소스(IT 인프라)를 제공하..

CS 2023.04.27

[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 2023.04.20

[JavaScript] Promise / async / awiat

Promise 자바스크립트의 비동기 처리에 사용되는 객체로, 동기식 처리처럼 작업의 순서에 따른 실행을 가능하게 합니다. 자바스크립트에서 비동기 처리를 동기 처리로 할 수 있게 하는 Bulit-in(미리 내부적으로 정의된)객체 new Promise(executor); // 예제 화살표 함수 new Promise((resolve, reject) => { //명령문 }); Promise 생성자 인터페이스 executor에는 함수만 올 수 있으며 인자로 resolve, reject가 주입됩니다. executor는 Promise의 실행 함수라고 불리고, Promise가 만들어질 때 자동으로 실행됩니다. Promise가 연산을 언제 종료하는지 상관하지 않고, resolve, reject 중 하나를 무조건 호출해야..

JavaScript 2023.04.20

[CS] 소프트웨어 개발 방법론

소프트웨어 개발에 필요한 반복적인 과정(절차, 방법, 산출물, 기법, 도구)들을 체계적으로 정리한 것 수 많은 소프트웨어 실제 개발 과정을 정리하여 체계적인 분석을 통해 각각의 상황에 맞는 개발 방법을 정의한 이론 소프트웨어를 생산하는 데 필요한 프로그래밍 개발 과정들을 정리하고 표준화하여 프로그래머들이 프로그래밍 개발 과정에서 각 개인이 개발과정에서의 일관성을 유지하고 프로그래머들 간의 효과적인 협업이 이루어질 수 있도록 돕기 위한 방법론 소프트웨어 개발 방법론 구성 요소 소프트웨어 개발 방법론의 종류 참조 소프트웨어 개발 방법론 소프트웨어 개발방법론

CS 2023.04.19

[DB] DataBase와 ORM

DB(DataBase)란여러 사람에 의해 공유되어 사용될 목적으로 관리되는 데이터의 집합ORM(Object Relational Mapping)이란(객체 - 관계 매핑)의 약자로 객체와 데이터베이스의 관계를 매핑해주는 도구프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도구ORM은 MVC 패턴에서 모델(Model)을 기술하는 도구이다.ORM은 객체와 모델 사이의 관계를 기술하는 도구이다.DB와 ORM의 관계객체와 DB테이블을 Mapping 시켜 RDB테이블을 객체지향적으로 사용하게 해주는 것, 객체로 관계형 데이터베이스를 관리하는 기술입니다.

[CS] 자주 사용하는 알고리즘과 자료구조

프로그램 = 자료구조 + 알고리즘 자료구조 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조 어떤 자료구조를 사용하느냐에 따라서 코드의 효율이 달라진다. 자주 사용하는 자료구조 배열(Array) 링크드 리스트(Linked List) 스택(Stack) 큐(Queue) 해시 테이블(Hash Table) 그래프(Graph) 트리(Tree) 알고리즘 어떤 문제를 풀기 위한 절차 혹은 방법 특정한 '입력'을 넣으면 원하는 '출력'을 얻을 수 있도록 만드는 프로그래밍 자주 사용하는 알고리즘 정렬 알고리즘 선택 정렬 삽입 정렬 병합 정렬 퀵 정렬 탐색 알고리즘 순차 탐색 이진 탐색 그래프 알고리즘 그래프 탐색 깊이 우선 탐색 너비 우선 탐색 경로 탐색

CS 2023.04.18