본문 바로가기

개발 관련 지식/웹 프로그래밍8

리액티브 시스템 분산 시스템으로 구현되는 모든 비즈니스의 핵심 가치는 응답성이다. 시스템이 높은 응답성을 확보한다는 것은 탄력성 및 복원력 같은 기본 기법을 따른다는 의미이다. 탄력성은 많은 사용자가 작업을 시작할 때 시스템 처리량이 자동으로 증가하고 수요가 감소하면 자동으로 감소하는 것. 복원력은 시스템 실패에도 반응성을 유지할 수 있는 능력, 이는 시스템의 기능 요소를 격리해 모든 내부 장애를 격리하고 독립성을 확보함으로써 달성할 수 있다. 응답성, 탄력성, 복원력을 모두 확보하는 기본적인 방법의 하나는 메시지 기반 통신을 사용하는 것이다. 메시지 기반 통신 : 구성 요소들은 메시지 도착을 기다리고 이에 반응하며, 나머지 시간에는 휴면 상태에 있지만, 동시에 논블로킹 방식으로 메시지를 보낼 수 있어야 한다. 메시지 .. 2022. 6. 9.
멀티 쓰레드 클라이언트에서 요청을 하면 TCP/IP 연결이 되고 servlet이라는게 호출 된다. 이 서블릿을 누가 호출하냐. 바로 쓰레드라는 것이 호출한다. 쓰레드 애플리케이션 코드를 하나하나 순차적으로 실행하는 것을 쓰레드라고 한다. 즉 메인 메소드를 실행하면 main이라는 이름의 쓰레드가 실행되는 것. 그래서 쓰레드가 없다면 자바 애플리케이션을 실행할 수가 없다. 쓰레드는 한번에 하나의 코드 라인만 수행한다. 그래서 동시 처리가 필요하다면 쓰레드를 추가로 생성해야한다. 클라이언트 요청이 오면 WAS에서 쓰레드를 할당하고 그 쓰레드가 servlet 코드를 실행하는 것. 만약 다중 요청이 들어오는데 단일 쓰레드라면? 요청1에 대한 쓰레드를 할당하고 servlet을 실행하는데 어떤 이유에서 처리가 지연되고 있는 상황.. 2022. 2. 19.
멀티 쓰레드 클라이언트에서 요청을 하면 TCP/IP 연결이 되고 servlet이라는게 호출 된다. 이 서블릿을 누가 호출하냐. 바로 쓰레드라는 것이 호출한다. 쓰레드 애플리케이션 코드를 하나하나 순차적으로 실행하는 것을 쓰레드라고 한다. 즉 메인 메소드를 실행하면 main이라는 이름의 쓰레드가 실행되는 것. 그래서 쓰레드가 없다면 자바 애플리케이션을 실행할 수가 없다. 쓰레드는 한번에 하나의 코드 라인만 수행한다. 그래서 동시 처리가 필요하다면 쓰레드를 추가로 생성해야한다. 클라이언트 요청이 오면 WAS에서 쓰레드를 할당하고 그 쓰레드가 servlet 코드를 실행하는 것. 만약 다중 요청이 들어오는데 단일 쓰레드라면? 요청1에 대한 쓰레드를 할당하고 servlet을 실행하는데 어떤 이유에서 처리가 지연되고 있는 상황.. 2022. 2. 6.
동기 비동기, 싱글스레드 멀티스레드 스레드 : 프로세스 내에서 실제로 작업을 처리하는 주체 싱글스레드, 동기 작업 요청이 여러개 들어오면 하나의 스레드가 하나의 요청에 대한 결과가 나와야지 그 다음 요청을 처리하는 방식 멀티스레드, 동기 작업 요청이 들어온 만큼 스레드를 만들어서 처리한다. 100개의 작업이 들어오면 100개의 스레드를 만들어서 처리하는 방식. 싱글스레드, 비동기 여러 작업 요청이 들어오면 스레드 하나에서 작업을 받는다. 그리고 요청이 들어온 순서와 관계없이 먼저 처리된 요청에 대해서 작업을 완료한다. 멀티스레드, 비동기 여러 작업 요청이 들어오면 여러개의 스레드에서 비동기적으로 작업을 처리한다. 예를 들어, 100개의 작업 요청이 들어오면 스레드를 4개 정도만 만들어서 비동기로 처리한다면, 1개의 스레드당 작업을 25개씩.. 2021. 1. 29.
WAS Web Application Server 를 WAS(와스)라고 한다. 먼저 서비스를 제공하는 것은 서버, 그 서버에게 서비스를 요청하는 것은 클라이언트라고 한다. 웹 서버와 웹 브라우저가 대표적인 서버와 클라이언트의 관계이다. 다음은 DBMS와 클라이언트의 관계이다. DBMS는 다수의 사용자들이 데이터베이스 안의 데이터에 접근할 수 있게 해주는 소프트웨어이다. DBMS가 등장하기 전에 개발자들은 파일에 데이터를 저장하고 읽어들이는 기능을 모두 구현해야 했다. 이런 불편함을 개선하기 위해 DBMS가 등장하게 되었다. DBMS는 보통 서버 형태로 서비스를 제공하기 때문에 이런 DBMS에 접속해서 동작하는 클라이언트 프로그램이 많이 만들어졌다. 근데 이런 방식의 문제점은 클라이언트의 로직이 많아지고 클라이언트.. 2020. 6. 9.
웹서버 웹 서버는 웹 서버 소프트웨어를 말하기도 하고, 웹 서버 소프트웨어가 동작하는 컴퓨터를 말하기도 한다. 웹 서버의 가장 중요한 기능은 클라이언트가 요청하는 HTML 문서나 각종 리소스를 전달하는 것이다. 여기서 클라이언트란 웹 브라우저를 말한다. 웹 브라우저가 요청하는 리소스는 컴퓨터에 저장되어 있는 정적 데이터나 동적 데이터가 될 수 있다. 정적 데이터는 이미지, HTML 파일, CSS 파일, JavaScript 파일 처럼 컴퓨터에 저장되어 있는 파일을 의미한다. 동적 데이터는 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물을 말한다. 웹 브라우저와 서버 간의 통신 웹 브라우저는 웹 서버에 접속을 하고 해당 주소에서 기본으로 보이는 HTML 문서를 요청한다. 그러면 웹 서버는 클라이언트가 .. 2020. 6. 9.