컴퓨터 프로그램을 실행시킬 때 사용되는 기본적인 실행 단위
하나의 프로세스 안에 여러 개의 스레드 존재, 각각의 스레드는 독립적으로 실행
프로그램의 응답성 향상, 병렬 처리 구현 가능, 데이터 동시 처리해 처리 시간 단축
여러 스레드가 공유 자원에 접근할 때 동기화 문제 발생 가능 → 세마포어, 뮤텍스 등의 동기화 메커니즘 사용
하나의 프로세스 내에서 여러 개의 스레드가 동시에 실행되는 프로그래밍 기법
하나의 스레드가 블록되거나 작업 수행 중 대기할 때도 다른 스레드가 계속해서 실행될 수 있어 응답성 향상
병렬 처리 통해 작업 분산 시켜 프로그램의 전체 실행 시간 단축 가능
데이터 쉽게 공유하고 통신 가능, 협력적 작업 가능
프로그램을 더 작은 단위로 분할하여 모듈화 가능
웹 사이트나 이메일 서버 등을 식별하기 위해 사용
인터넷 상에서 도메인 이름을 IP 주소로 변환하거나 IP 주소를 도메인 이름으로 변환하는 역할을 하는 시스템
도메인 이름과 IP 주소 간의 매핑을 관리하여 사용자가 도메인 이름을 입력하면 해당 도메인에 대한 IP 주소 찾아주는 역할
도메인 이름을 계층 구조로 관리 (최상위 도메인부터 하위 도메인으로 구성)
도메인 이름의 등록 및 관리 담당
컴퓨터 네트워크나 통신 시스템에서 통신 규약이나 규칙의 집합
데이터의 전송과 관련된 규칙들을 정의하여 통신하는 장치들이 서로 원활하게 상호작용할 수 있도록 한다
통신 형식: 데이터의 형식과 구조 정의
오류 제어: 오류를 감지하고 처리하는 방법 정의
주소 지정 및 라우팅: 통신에 참여하는 각 장치 식별하고 데이터를 보낼 때 어디로 보낼지 결정하는 방법 제공
세션 관리: 통신 세션의 설정, 유지 및 종료 관리
비동기적으로 서버와 통신하여 데이터를 주고 받고, 웹 페이지의 일부분을 동적으로 업데이트하는 데 사용되는 기술
페이지 전체를 새로 고치지 않고도 서버로부터 데이터를 받아와서 웹 페이지의 일부분만 업데이트 가능
JavaScript와 XML 또는 JSON: AJAX는 JavaScript를 사용하여 서버와의 통신 처리, XML 또는 JSON 형식의 데이터 주고 받는다
DOM(Document Object Model) 조작: AJAX를 통해 받아온 데이터를 사용하여 웹 페이지의 DOM을 동적으로 변경 가능 → 사용자 인터페이스를 업데이트하거나 새로운 콘텐츠 추가