목록principle (7)
도당탕탕
Intro MultiThread 문제점에 대하여 Synchronous vs Asynchronous Blocking vs Non-Blocking Non-Blocking vs Asynchronous Synchronous vs Blocking MultiThread 문제점 MultiThread 전체 프로세스의 영향을 줄 수 있다. 성능 저하가 동반된다. 동기화의 주의를 해야한다. 교착 상태가 발생 할 수 있다. 각 쓰레드가 효율적으로 고르게 실행될 수 있도록 해야 한다. Synchronous vs Asynchronous 통신 매커니즘을 설명한다. System call의 완료를 기다리면 synchronous 이다. 어떠한 것도 리턴하지 않는다. 즉 함수에서 해당 결과 값이 나올 때까지 기다려야 한다. Synchr..
INTRO Process 란? Thread 란? Multi Process vs Multi Thread Process 운영체제로부터 시스템 자원을 할당 받는 작업의 단위이다. 쉽게 말해 실행된 프로그램을 의미한다. 프로그램이란? 명령어, 코드 및 정적인 데이터의 묶음 코드들의 집합 어떤 작업을 위해 실행할 수 있는 파일을 의미 Code, Data, Stack, Heap의 구조로 이루어져 있다. Code(Text): 프로그램의 코드 Data: 전역 변수 Heap: 동적으로 할당 되는 메모리 Stack: 매개변수, 지역 변수 등 임시적인 자료 Process의 특징 기본적으로 한개의 프로세스당 최소 한개의 쓰레드를 가지고 있다. 각 프로세스는 별도로 실행된다. 즉, 프로세스끼리 자원을 공유할 수 없다. 즉, 한..
INTRO 데이터 전송 방식 TCP? UDP? 작동 원리 및 차이 데이터 전송 방식 네트워크란 두대 이상의 컴푸터를 연결하고 서로 통신 할 수 있는 것을 말한다. 즉 어떤 연결을 통해 컴퓨터의 자원을 공유하는 것이다. 전송 계층에서 신뢰성 있는 데이터 전송을 담당한다. 신뢰성 : 데이터를 순차적으로 안정적으로 전달 전송 : 포트 번호에 해당하는 프로세스에 데이터를 전달 전송 계층이 없다면? 데이터 순차 전송이 원할하지 않는다. 송수신자 간의 데이터 처리 속도가 차이가 나서 수신자의 처리할 수 있는 데이터량을 초과 할수 있는 문제가 일어날 수 있다. 네트워크가 혼잡하여 데이터 처리 속도가 느려지는 문제가 일어난다. 즉 데이터 손실이 발생 OSI 7계층, TCP/IP 4계층 http에서 데이터를 어떻게 송수..
INTRO Scale up? Scale out? 둘의 장,단점 및 적용법 SPOF? Scale Up 서버 자체의 성능을 늘려 처리 능력을 올려주는 것이라고 생각하면 된다. 기존 서버에서 고성능의 서버로 변경을 시키는 것을 의미한다. 다른 말로 수직 스케일이라고 불린다. Scale Up의 장,단점 장점 하드웨어의 성능을 향상시키기 때문에 인프라를 따로 건들 필요가 없어 구축, 설계가 쉽다. 스토리지 컨트롤러나 네트워크 인프라 비용은 별도로 발생하지 않는다. 단점 확정성의 한계가 있다. 즉 추가할 수 있는 디스크나 RAM 용량이 한정되어 있기 때문에 확장에 대해 제약이 있다. 스토리지 컨트롤러가 확장의 한계에 다달았을 경우, 다른 스토리지를 추가할경우 이미그레이션 비용이 발생한다. 가격이 엄청 비싸다. 트래..
INTRO MVC 패턴에 대해 알기 Spring MVC 프레임워크에 대해 알기 Spring MVC 아키텍쳐를 이해하기 둘의 차이 살펴보기 MVC 디자인 패턴 MVC패턴이란? 디자인 패턴 중에 하나다. Model, View, Controller 로 구성하여 세가지 역할로 구분한다. 사용자가 controller를 조작하여 controller는 model를 통해 데이터를 가져오고 그정보를 바탕으로 view에 시각적인 표현을 나타냅니다. Model 애플리케이션의 정보, 데이터 즉 상태를 가지고 있다. 모델에서는 정보, 데이터들의 가공을 책임지고 있다. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다. 모든 정보들을 가지고 있어야 한다. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다. UI를 직..
Intro Http프로토콜에 대해서 알기 HttpRequest의 구조를 알아보기 HttpResponse의 구조를 알아보기 요청 흐름 구조 알아보기 HTTP 프로토콜이란? HTTP 프로토콜이란 인터넷 상에서 데이터를 주고 받기위한 상호간의 규칙을 정의하고 특정 기간내에 데이터를 송수신을 할 수 있는 규약이라고 보면 된다. 웹상에서는 서버와 클라이언트가 서로 데이터를 주고 받기위한 방식으로 Http프로토콜을 사용하고 있다. Http는 어떤 종류의 데이터 이든지 전송 할 수 있다. OSI 7계층중 응용계층 프로토콜이며 TCP/IP위에서 작동하도록 되어있다. 일반적으로 포트번호 80을 가진다. Http Request 구조 POST /user/create HTTP/1.1 Host: localhost:8080 Co..
이번 포스팅에서 WebServer와 WAS의 개념 및 차이의 대해 써보려고 한다. Intro Static Page와 Dynamic Page의 개념을 이해하기. WebServer와 WAS차이 이해하기. Web Server 클라이언트가 서버에 페이지에 요청하면 그 요청을 받아 정적(.html, .css, .js, ...) 컨텐츠를 제공하는 서버다. 클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답한다. HTTP 프로토콜을 기반하여 클라이언트의 요청을 수행하는 기능을 담당한다. Web Server가 정적인 파일을 처리할 때 정적인 컨텐츠를 바로 제공 WAS를 거치지 않고 바로 자원을 제공 Web Server가 동적인 파일을 처리할 때 클라이언트의 요청을 WAS에 보내고, WAS가 처리한 결과를 ..