전체 글 썸네일형 리스트형 [Spring] 스프링의 작동 원리 /* 서블릿 컨테이너와 스프링 컨테이너 WEB 요청이 들어올 때*/ 서블릿 컨테이너와 디스패처 서블릿 (DispatcherServlet)HTTP 요청이 들어오면 서블릿 컨테이너(예: Tomcat)가 이를 받아들이고, 스프링 MVC의 엔트리 포인트인 DispatcherServlet으로 요청을 전달합니다. DispatcherServlet은 스프링의 핵심 컴포넌트로, 모든 요청을 받고 필요한 처리를 이어가는 역할을 합니다.스프링 컨테이너와 빈 관리DispatcherServlet이 요청을 받으면, 요청을 처리할 **핸들러 매핑 (Handler Mapping)**을 찾아 알맞은 컨트롤러 (Controller) 빈을 결정합니다. 이 과정에서 스프링 컨테이너에 미리 정의된 빈 (Bean)들이 활용됩니다. 빈은 스프링.. 더보기 [DB] 트랜잭션 격리수준 Isolation Level /* 트랜잭션 격리수준*/트랜잭션의 격리수준 (Isolation Level) 이란 여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 여부를 결정하는 것이다. 트랜잭션의 격리 수준은 격리 수준이 높은 순서대로SerializableRepeatable ReadRead CommitedRead Uncomitted로 나뉘어 진다./* Serializable */Serializable 격리 수준은, 이름 그대로 트랜잭션들을 순차적으로 진행시킨다. 여러 트랜잭션이 동일한 레코드에 동시 접근할 수 없게 막으므로, 어떠한 데이터 부정합 문제도 발생하지 않는다. 하지만, 트랜잭션이 순차적으로 처리되어야 하므로 동시 처리 성능이 매우 떨어진다.Seriali.. 더보기 [HTTP] DNS /* DNS (도메인 네임 서버) */인터넷에서 모든 장치는 고유 IP주소를 가지고 있다. 하지만 우리는 정작 웹사이트에 접속을 할 때 IP주소를 이용하지 않고 도메인 이름을 사용한다. 이유는 도메인 이름을 더 쉽게 기억할 수 있기 때문이다. 따라서, 도메인을 실제 처리를 하기 위해서는 IP주소로 바꿔야 하는데 이를 가능하게 하는 시스템을 DNS라고 한다./* DNS 프로세스 과정 */1. 기지국 DNS 서버 (Local DNS Server)URL에 도메인 이름을 검색하면 해당 IP를 찾기위해 가장 먼저 찾는 DNS 서버입니다.컴퓨터의 LAN 선을 통해 인터넷이 연결되면, 인터넷을 사용할 수 있게 IP를 할당해주는 통신사 (KT, SKT, LG ..)에 해당하는 각 통신사의 DNS서버가 등록됩니다. ".. 더보기 [운영체제] 병행성 /* 병행성 Concurrency*/동시에 실행하는 것 처럼 보여진다. (실제로는 짧은 시간 동안 작업들이 번갈아 가며 실행되는 것처럼 보인다.)병렬성 (Parallelism) 은 실제로 동시에 실행이 된다. 멀티코어에서 멀티 스레드를 동작시킨다.스레드 들은 동시에 메모리에 접근하게 되는데 이를 조정하지 않으면 문제가 될 수 있다. 주요 개념프로세스: 운영체제에서 실행되는 프로그램. 각 프로세스는 독립적인 메모리 공간을 가진다.스레드: 프로세스 내부에서 실행되는 작은 실행 단위. 한 프로세스 내에 여러 스레드가 존재할 수 있으며, 메모리를 공유한다. 스레드 생성시 스택을 생성한다. 즉, 스택은 공유하지 않는다.두 스레드가 하나의 프로세스에서 실행 중이라면 Context Switch를 통해 교체 된다. (.. 더보기 [HTTP] OSI 7계층 /* OSI 7계층 */OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다. 예시)PC방에서 오버워치를 하는데 연결이 끊겼다. 어디에 문제가 있는지 확인하기 위해서는 모든 PC가 문제가 있다면 라우터의 문제(3계층 네트워크 계층)이거나 광랜을 제공하는 회사의 회선 문제(1계층 물리 계층) 한 PC만 문제가 있고 오버워치 소프트웨어에 문제가 있다면(7계층 어플리케이션 계층) 오버워치 소프트웨어에 문제가 없고, 스위치에 문제가 있으면(2계층 데이터링크 계층) 있다고 판단해 다른 계층에 있는 장비나 소프트웨어를 건들이지 않는것이다. (인용: https://shlee0882.tistory.com/110) .. 더보기 [운영체제] Paging 과 Multi-Level Paging /* Paging */페이징 (Paging)은 base and bound, segmentation과는 달리 address space (virtual memory)를 고정된 크기로 나눈다.한 단위를 page라고 한다. 첫번 째 그림처럼 총 64바이트 4개의 페이지가 있다고 가정하자. (1 페이지당 16바이트). 64바이트를 addressing하려면 6비트가 필요하다.페이지가 4개로 나뉘기 때문에 상위 2비트는 vpn (virtual page number)를 가리키고 나머지는 offset이다.physical address로 addressing 될때 offset은 그대로 가져오고 VPN -> PFN의 과정에서만 변환이 일어난다. paging을 사용하면 메모리를 고정된 크기로 나누어 할당하고 관.. 더보기 [운영체제] 메모리 가상화 - Segmentation /* 메모리 가상화 */메모리 가상화는 모든 프로세스들에게 별도의 가상 주소 공간을 제공해서 각각의 프로세스들은 자기가 전체 메모리를 다 사용하고 있는 것처럼 보이는 환상을 제공한다. 이를 통해 여러 프로그램이 동시에 실행될 때, 각각의 프로그램이 독립적인 메모리 공간을 갖는 것처럼 동작할 수 있다. 프로그램들은 가상 주소 (Virtual Address)를 사용하며, 운영체제와 하드웨어는 이를 물리 주소 (Physical Address)로 변환하여 실제 메모리로 접근한다. 주소 변환 (Address Translation)은 주로 CPU의 MMU (Memory Management Unit)에 의해 수행됩니다./* 세그멘테이션 Segmentation */세그멘테이션은 운영체제에서 메모리 관리를 위해 사용되는.. 더보기 [운영체제] Limited Direct Execution /* Limited Direct Execution */여러 프로그램을 동시에 작동하기 위해서는 CPU 가상화가 필요하다. 이는 Time Sharing 기법으로 구현할 수 있다. CPU 를 가상화를 구현하려면 Performance와 Control을 고려해야 한다. Performance: 오버헤드 없이 구현, Control: CPU에 대한 제어를 유지하면서 프로세스를 효율적으로 실행해야 한다. Limited Direct Execution 의 절차는 위와 같다.즉 컴퓨터가 부팅되면 CPU는 kernel mode 이므로 trap table을 만들어 예외나 인터럽트가 발생했을 때 하드웨어가 각각의 예외 별로 어떤 코드를 실행할지 그 위치를 알려주게 한다.User Mode에서 Program을 돌릴 때 I/O 작업.. 더보기 이전 1 2 3 4 ··· 7 다음