웹 서버 (Web Server)와 웹 애플리케이션 서버 (Web Application Server)의 차이점 기능 웹 서버 웹 서버: 웹 서버는 HTTP프로토콜을 사용하여 클라이언트(브라우저)의 요청을 처리하고, 정적 웹 페이지 (HTML ,CSS)를 제공하는 역할을 수행 기본적으로 정적 콘텐츠를 제공하는 역할 웹 애플리케이션 서버 동적인 컨텐츠를 생성하고, 비즈니스 로직을 처리하며 데이터베이스와의 상호작용을 통해 동적인 웹 애플리케이션을 구동하는 역할 수행 웹 애플리케이션 서버는 웹 서버와 함께 사용됨 기술 웹 서버 웹 서버는 주로 정적 파일을 처리하는데 특화되어 있으며, 일반적으로 Apache, Nginx 등 사용 웹 애플리케이션 서버 웹 애플리케이션 서버는 웹 애플리케이션을 실행하는데 필요한 동적 ..
정규표현식 문자열에서 패턴을 찾고 검색, 치환, 유효성 검사 등의 작업을 수행하는 도구 RegExp 객체를 사용하여 정규표현식을 생성하고 문자열에 대해 매칭을 수행할 수 있음 예시1 const regex = /apple/; // "apple"이라는 문자열과 정확히 일치하는 패턴 const str = "I like apples."; console.log(regex.test(str)); // true 예시2 i : 대소문자를 구분하지 않음 g : 모든 일치하는 문자열을 찾음 m : 여러줄을 찾음 const regex = /apple/i; const str = "I like Apples."; console.log(regex.test(str)); // true 호이스팅 호이스팅이랑 자바스크립트를 실행했을때 선언..
클라우드 (Cloud) 컴퓨팅 인터넷을 통해 컴퓨터 리소스와 서비스를 제공하는 기술 CPU, RAM, 네트워크 ,스토리지 등을 고객에게 임대해주고 고객이 사용한 만큼 돈을받는 서비스 클라우드 컴퓨팅의 특징 온디맨드 서비스 : 사용자는 필요에 따라 컴퓨팅 리소스를 즉시 사용할 수 있으며, 필요 없을 때 해지 할 수 있음 => 유연성, 리소스를 효율적으로 사용가능 자가 서비스 : 사용자는 IT관리자의 도움 없이도 자신의 요구에 따라 컴퓨팅 리소스를 관리하고 제어할 수 있음 네트워크 접근성 : 클라우드 서비스는 인터넷을 통해 언제 어디서나 접근할 수 있음, 사용자는 다양한 기기를 사용하여 데이터와 어플리케이션에 접속할 수 있음 리소스 공유 : 여러 사용자가 하나의 물리적 리소스를 공유함으로써 비용을 절감하고 ..
자주 쓰는 자료구조와 알고리즘 자료구조와 알고리즘은 각각 상황에 맞는 문제를 해결하기 위한 데이터 자주쓰는 자료구조 해시테이블 해시함수를 사용하여 변환한 값을 색인으로 삼아 key와 value로 저장하느 자료구조, 조회, 삽입 ,삭제가 있음 낮은 확률로 같은 해시값이 나오는 경우가 있는데 이때 해시 충돌 발생 빠른 검색속도로 조회시 시간복잡도는 O(1)를 가짐 키와 값을 연관시키기 때문에 빠른 검색속도 검색이 많이 필요한 경우 효율적인 자료구조 배열 속성이 비슷한 데이터들을 연속된 메모리 구조에 할당하는 자료구조 인덱스에 대한 조회 시간 복잡도는 O(1)이고 값에 대한 조회 시간복잡도는 O(n)이다 삽입, 수정, 삭제에 대한 시간복잡도는 O(n)이다 배열 중간에 데이터를 삽입,수정,삭제할때마다 각 데이터..
HTTPS 기존의 http사이트에 보안성을 추가함 ex) 로그인시 아이디와 비번을 입력하고 네이버 서버로 전송시 http로 요청시 제 3자가 정보를 볼 수 있었음 HTTPS역할 https는 입력한 중요한 정보를 서버로 보낼때 보낸 정보를 암호화하여 서버로 전송하는 역할 데이터를 보내는 정보가 안전한 사이트로 전송되는지 확인하는 역할 = 사이트를 검증하는 역할 내가 사이트에 보내는 정보들을 제3자가 확인할 수 없도록함 대칭키 요청을 보내는 쪽과 받는 쪽이 같은 키를 가짐, 데이터 전송시 가지고 있는 키로 데이터 암호화 => 대칭키를 가지고 알고리즘 복호화하여 데이터 해석 대칭키를 제 3자가 확인하면 대칭키의 의미가 없어짐 비대칭키(공개키) A키로 암호화하면 B키로 복호화 , B키로 암호화하면 A키로 복호화..
동기와 비동기 동기 동기는 코드를 순서대로 처리하는 방식을 의미합니다. 프로그래밍 언어는 기본적으로 위아래로, 왼쪽에서 오른쪽으로 읽히면서 실행되는데, 이때 처리가 오래걸리는 코드를 만나면 작업을 전부 처리할때 까지 기다렸다가 작업이 처리가 완료되면 다음코드로 넘어가 코드를 실행하는 방식을 의미합니다. 동기적 처리는 코드를 이해하는데 직관적이지만 다음 코드 실행까지 시간이 걸렸을때 응답시간이 지체되어 사용성이 떨어진다는 단점이 있습니다. 자바스크립트 동기적 코드 function synchronousFunction() { console.log("첫 번째 작업"); console.log("두 번째 작업"); console.log("세 번째 작업"); } synchronousFunction(); //첫 번째 ..
자료구조, 알고리즘 데이터를 효율적으로 저장하고 관리하는 방법을 제공하는 컴퓨터 과학 분야 자료구조는 데이터를 조직화하고 액세스하며 수정하는데 사용 자료구조는 데이터를 저장하는 방법과 데이터에 접근하는 방법을 결정 데이터를 효율적으로 관리하기 위해 적절한 자료구조를 선택하는 것이 중요함 선형자료구조 데이터가 일렬로 배열된 형태 ex) 배열, 스택, 큐 비선형자료구조 데이터가 계층적 구조로 구성된 형태 ex) 트리, 그래프 변수 cpu에 계산을 시키려면 메모리에 값이 존재해야함 변수를 이용해서 메모리에 값을 저장할 수 있음 변수는 어떤 값을 메모리에 쉽게 저장하기 위한 이름있는 공간 배열 변수를 많이 선언하기 않고 같은 종류의 데이터를 쉽고 효율적으로 메모리에 저장할 수 있는 자료구조 같은 종류의 데이터를..
CPU 스케줄링 CPU의 자원을 프로세스에 배분하는 것 대부분의 프로세스들은 CPU와 입출력장치를 모두 사용하며 실행 => 프로세스는 실행 상태와 대기상태를 반복하며 실행 실행(CPU사용) -> 대기(입출력 장치사용) -> 실행(CPU사용) -> 대기(입출력 장치사용) -> 실행(CPU사용) -> 대기(입출력 장치사용) CPU 스케줄링이 필요한 이유 : 프로세스마다 CPU를 할당받아야 하는 우선순위가 다르기때문 입출력 집중 프로세스와 CPU 집중 프로세스로 나뉘는데 비교적 CPU의 점유율이 적은 입출력 집중 프로세스의 우선우뤼를 높이고 CPU 집중 프로세스의 우선순위를 후순위로 지정하여 입출력 집중 프로세스의 작업을 먼저 처리하고 나머지 CPU 집중 프로세스를 처리함 => 문맥교환의 오버헤드를 줄임 스케..