본문 바로가기

728x90

CS 지식

(5)
웹 서비스 아키텍처의 발전 (네트워크 관점) 1. 웹 서비스의 기본 구조 웹 서비스의 기본 흐름은 위의 그림과 같다. HTTP 트래픽은 Socket 수준에서 이뤄지고, Stream 단위로 전송한다. 웹 기술의 핵심은 HTTP와 HTML 문서이다. 웹 서비스의 흐름을 더 자세히 나타내면 아래와 같다. 2. 웹 서비스의 발전과정 1) 연결과 통신 TCP/IP로 연결하고, HTTP로 통신한다. HTTP는 STATELESS라는 특성을 가지고 있으며 현재에는 이런 특성이 각광받는 추세이다. 2) HTML 전송 URL에 입력을 하면 DNS를 통해 IP 주소를 물어보고, 그 IP 주소를 통해서 접속. 그다음 TCP 연결을 시도하고, 그 연결을 기반으로 HTTP 통신을 한다. 그러면 Request를 하는 데 GET 문서를 한다. Web Server는 reques..
데이터 직렬화(Serialization)의 정의와 용도 1. 직렬화(Serialization)란? public interface Serializable{ } Serializable 인터페이스를 보시면 안에 아무것도 없는 것을 보실 수 있습니다. 그럼 이게 왜 필요할까요? 생성한 객체를 파일로 저장하거나, 저장한 객체를 읽거나, 다른 서버에서 생성한 객체를 받을 때가 있습니다. 이럴 경우 필요한 게 Serializable입니다. 내가 만든 클래스를 파일에 읽거나 쓸 수 있게 하고, 아니면 다른 서버로 전송하고 받게 하려면 이 인터페이스를 구현해야 합니다. Serializble 인터페이스를 구현하면 JVM에서 객체를 저장하거나 다른 서버에 저장하게끔 만듭니다. 요약하자면 직렬화는 메모리를 디스크에 저장하거나, 네트워크 통신에 사용하기 위한 형태로 변환하는 것을 ..
캐시(Cache) 간단히 설명 1. memory 컴퓨터 안에는 CPU, MEMORY, DISK로 구성. DISK는 file들이 저장하고, cpu는 file들을 실행한다. file에 저장된 일부분이 memory에 올라오며 memory에 있는 데이터 중 일부가 cpu에 의해 명령어가 실행된다. CPU안에 cache라는 고속 메모리가 있다. 왜 이게 나왔냐? 메모리보다 더 빠르게 처리하기 위해서. 미리 데이터의 일부를 cpu 메모리에 탑재. 그러면 cpu에서 엄청 빠르게 실행된다. 캐시는 메모리 데이터의 일부를 미리 가져왔다가 또는 사용되고 있는 자체 데이터를 가져왔다 한다. 이때 cpu는 캐시 메모리를 사용함으로써 매우 빠르다. 2. file img라는 것은 크기도 txt보다 크고, 다시 불러올 가능성이 있어서. 브라우저가 구동되는 di..
컴퓨터 구조 + 운영체제 간략정리. 1. CPU 프로세서. ALU(수학적 산술 연산 계산을 해줌.)+ 레지스터로 구성. 메모리에 있는 명령들이 올라와서 계산을 통해서 연산을 해준다. 레지스터와 cpu 메인 메모리 사이에 캐시라는 저장공간이 있다. 2. MEM 메모리. 임시 저장공간을 뜻한다. 3. DISK 저장공간. 4. I/O 입출력 장치. 키보드와 마우스 같은 것들을 뜻한다. 5. 스케쥴링 개발자는 c, java, c++ 등으로 개발. 컴파일 되는 과정으로 .exe, .dll가 만들어진다. 여기서 개발자들이 프로그램을 만들기 위한 언어는 컴퓨터가 이해할 수가 없다. 컴퓨터는 binary파일들로 바뀌게 된다. 이 과정을 컴파일이라고 한다. 실행파일이 disk에 저장되면. 코드와 리소스로 구성이 되어있다. 이 일부 코드가 실행이 되면 메모..
프로그램 - 프로세스 - 프로세서의 차이점. (간략 정리) 1. 프로그램 윈도우/리눅스/유닉스 운영체제에서 실행되게끔 만들어진 게 프로그램. 예전에는 c로 만들거나 java, vc, sh로도 만들어졌다. 컴퓨터에서 무언가를 할 수 있게끔 다 동작되는 것. (ex 웹 브라우저, 워드 등등) 2. 프로세스 프로그램은 파일 같은 형태로 저장되어있다. 이것이 운영체제에 의해서 동작되고 있는 상황. 프로그램이 실행 중 혹은 죽어있다. 운영체제에서 많은 프로그램들이 수행이 되고 있다. 3. 프로세서 프로세스가 동작될 수 있게끔 하는 하드웨어(CPU를 말함).

728x90