목록전체 글 (119)
철학과 학생의 개발자 도전기

1. PCB 개념 운영체제가 프로세스를 관리하기 위해 사용하는 자료구조 PCB는 각 프로세스마다 생성되며, 해당 프로세스의 상태 정보와 제어 정보를 저장 Context Switching 발생 시 프로세스의 상태 유지를 위해 사용되며, 프로세스가 종료되면 PCB도 함께 제거 구성요소 Process ID : 프로세스의 고유 식별자 Process State : 프로세스의 상태 (new-ready-running 등) Program Counter : 다음 명령어의 주소값 Register : SP 등의 CPU 레지스터 값 CPU Scheduling Information : 프로세스 우선순위, 최종 실행시간, CPU 점유시간 등 Memory management information : 해당 프로세스의 주소 공간 정보..

1. 인터럽트란 시스템의 내부 또는 외부에서 발생하는 예기치 못한 사건에 의해, 프로세서가 실행 중인 프로그램의 작업을 중단시키고 다른 프로그램을 수행하도록 하는 명령어 입출력, 에러, 타임아웃 등에 발생 하드웨어 인터럽트와 소프트웨어 인터럽트로 분류 인터럽트 핸들러는 인터럽트를 실제로 처리하는 프로그램 CPU 자원을 최대로 활용하기 위한 방안 2. 인터럽트 실행 과정 인터럽트 신호에 의하여 현재 실행 중인 명령어를 종료 레지스터의 모든 정보를 스택 영역(또는 프로세스 제어 블록/PCB)에 전송 프로그램 카운터에 인터럽트 처리 프로그램(인터럽트 핸들러/서비스 루틴)의 시작 위치를 저장 제어권이 인터럽트 처리 프로그램을 실행 4번이 완료되면 스택 영역(또는 PCB)에 위치한 내용을 다시 레지스터에 저장 프..

1. 프로세스란 메모리에 올라와 실행 중인 프로그램 운영체제가 관리하고 자원을 할당하는 단위 일종의 자료구조 프로세스 구조 1. Text - 기계어로 변환된 프로그램 코드를 저장한다. 2. Data & BSS - 전역 변수, 정적 변수, 상수를 저장한다. - 초기화된 변수는 Data, 초기화되지 않은 변수는 BSS에 저장한다. - 데이터 영역은 프로그램의 시작 시 초기화되며, 프로세스가 종료될 때까지 유지된다. 3. Stack - 지역 변수, 매개 변수, return 주소값 등을 저장한다. - 함수가 호출되면 stack 공간이 생성되며, 함수가 종료되면 제거된다. 4. Heap - 동적으로 생성되는 자료구조 및 객체를 저장한다. - 프로세스가 실행 중에 동적으로 메모리를 할당받고 해제하는데 사용된다. 프..
1. 운영체제란 하드웨어를 안전하고 효율적으로 사용하기 위한 프로그램 시스템 자원을 관리하고 다른 프로그램이 필요로 하는 공통된 서비스 제공 2. 운영체제의 목적 처리능력 : 일정시간동안 처리하는 일의 양 응답시간 : 작업 의뢰 후 시스템에서 결과가 얻어질 때까지의 시간 신뢰도 : 주어진 문제를 얼마나 정확하는가에 대한 정도 사용가능도 : 시스템을 얼마나 빠르게 사용할 수 있는가에 대한 정도 위 4가지 지표를 향상시키는 것을 목적으로 한다. 3. 주요 기능 프로세스 관리 프로세스 생성과 소멸 프로세스 스케줄링 프로세스 간 공유자원 및 통신 관리 저장장치 관리 메모리의 할당과 해제 가상 메모리 기능 파일 시스템 관리 네트워킹 TCP/IP 기반의 인터넷 연결 지원 응용프로그램의 네트워크 프로토콜 지원 사용자..

1. 동기/비동기 통신 2. 동기식 통신 요청(Request)을 보낸 후 응답(Response)을 받을 때까지 기다리는 방식. 요청과 응답이 동시에 일어나는 것처럼 순차적으로 처리됨. 장점 요청과 응답의 순서가 보장되어, 요청에 대한 명확한 처리 결과를 받을 수 있음. 데이터 처리에 있어 일관성과 신뢰성을 유지할 수 있음. 단점 응답이 지연될 경우 요청을 보낸 스레드는 다른 작업을 수행할 수 없는 블록 상태가 됨. 블록 상태로 인해 시스템의 성능 저하가 발생할 수 있음. 3. 비동기식 통신 요청을 보낸 후 응답을 즉시 기다리지 않고 다른 작업을 수행할 수 있는 방식. 요청과 응답이 비동기적으로 처리됨. 장점 응답을 기다리지 않고 즉시 다른 작업을 수행할 수 있어 높은 효율성과 성능을 제공함. 여러 요청을..
1. 로드 밸런싱이란 네트워크 트래픽을 여러개의 리소스 서버에 균등하게 분산하는 기술이다. 데이터가 중복되는 리소스 서버를 여러개 두어 대용량 트래픽에 대비한다. 모든 리소스 서버가 균등하게 사용되도록 트래픽을 제어한다. 2. 로드 밸런싱의 장점 애플리케이션 가용성 강화 서버 문제 자동 감지 및 트래픽을 정상 서버로 리디렉션 가동 중지 없이 유지 관리 및 업그레이드 가능 자동 재해 복구 및 상태 확인을 통한 문제 예방 애플리케이션 확장성 향상 트래픽 분산을 통한 병목 현상 방지 수요에 따른 서버의 유연한 추가 및 제거 지원 중복성 추가로 안정적인 시스템 보장 애플리케이션 보안 강화 트래픽 모니터링 및 악성 콘텐츠 차단 기능 DDoS 공격 대응으로 서버 장애 최소화 네트워크 방화벽을 통한 안전한 트래픽 라..

1. Java Servlet 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 HTTP 요청을 편리하게 파싱할 수 있다. HTTP 응답을 편리하게 생성할 수 있다. 2. Dispatcher Servlet 서블릿의 일종으로 스프링 MVC의 핵심 역할을 맡는다. 모든 HTTP의 요청을 중앙에서 처리하여 웹 애플리케이션의 요청-응답 흐름을 제어한다. 이를 프론트 컨트롤러 패턴이라고 부른다. 처리 과정 요청 분석: HTTP 요청을 분석하고 적절한 컨트롤러를 탐색한다. (Handler Mapping 사용) 요청 위임: 컨트롤러에게 작업을 위임하고 뷰 이름을 반환받는다. 이때 모델 값도 갱신된다. 뷰 렌더링: 뷰 이름으로 실제 뷰를 찾고 모델을 전달하여 결과를 렌더링한다. (View Resolver 사용..
1. 빈 생명주기 빈의 생성, 초기화, 사용, 소멸의 과정을 의미한다. 스프링은 특정 시점에 사용자가 정의한 로직을 수행하는 콜백 메서드를 지원한다. 초기화 콜백, 소멸전 콜백이 있다. 초기화 콜백 빈 객체가 생성되고 의존관계 주입이 완료된 후 호출되는 메서드 @PostConstruct 어노테이션으로 지정 가능 소멸전 콜백 빈 객체가 소멸되기 전 호출되는 메서드 @PreDestory 어노테이션으로 지정 가능 2. 빈 스코프 빈이 유지되는 기간을 의미한다. 사용자가 빈 스코프를 수동으로 설정할 수 있다. 싱글톤 기본값 스프링 컨테이너의 시작과 종료를 함께 하는 스코프 하나의 인스턴스만 생성됨을 보장 프로토타입 빈이 조회될 때마다 새로운 인스턴스 생성 스프링 컨테이너는 빈 생성, 의존관계 주입, 초기화까지만..