Computer Science/CS
-
[CS] DTO EntityComputer Science/CS 2024. 5. 6. 12:32
DTO : 클라이언트와 서버 간 데이터 전송을 위해 설계된 객체Entity : 데이터베이스에 저장되는 데이터 객체로, 데이터베이스와 직접적으로 연결 DTOData Transfer Object 데이터 전송 객체프로세스 간에 데이터를 전달하는 객체이다.원격 인터페이스로 작업을 할 때 호출에 따른 비용이 비싸기 때문에 요청의 횟수를 줄여야 하고, 이를 위해 한 번의 요청에 더 많은 데이터를 전송해야 한다.외부와 통신하는 프로그램에게 호출은 큰 비용이며, 이를 줄이고 더욱 효과적으로 값을 전달할 필요가 있다.이를 위해 데이터를 모아 한 번에 전달하는 클래스를 DTO라고 한다. API 사용을 할 때 DTO를 만들어서 작업API스펙에 맞춰서 @ResponseBody Entity를 사용하는 것이 아니라 DTO를 만..
-
[CS] DispatcherServlet, filter, interceptorComputer Science/CS 2024. 4. 29. 15:54
Servlet서블릿은 자바 언어를 웹 애플리케이션에서 개발하기 쉽게 하기 위해 만든 API이다.자바 웹 페이지를 접근하기 위한 API를 제공한다. DispatcherServletDispatcher는 "급파자", "보내다" 라는 의미이다.→ 가장 먼저 요청 받고, 처리할 컨트롤러를 찾아서 정해주는 역할이다. 클라이언트로부터 어떠한 요청이 오면 톰캣과 같은 서블릿 컨테이너가 요청을 받게 된다.그리고 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 된다. 그러면 디스패처 서블릿은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야하는 컨트롤러를 찾아서 작업을 위임한다. FrontController는 주로 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리..
-
[CS] Load balancingComputer Science/CS 2024. 4. 10. 10:42
로드 밸런싱 부하분산 트래픽을 분산시켜주는 컴퓨터 네트워크 기법 여러 서버가 분산 처리하는 것 사용자가 많아져 트래픽이 하나의 서버로 몰리지 않도록 적절하게 분배시키는 역할 로드 밸런싱의 종류 ● L4 Transport계층을 사용, IP주소와 포트 번호 부하 분산이 가능 ▷장점 - 패킷의 내용을 확인하지 않고 로드를 분산하므로 속도가 빠르고 효율이 높음 - 데이터의 내용을 복호화할 필요가 없기에 안전 - L7 로드 밸런서보다 가격이 저렴 ▷ 단점 - 패킷의 내용을 살펴볼 수 없으므로, 섬세한 라우팅 불가 - 사용자의 IP가 수시로 바뀌는 경우라면, 연속적인 서비스를 제공하기 어려움 ● L7 Application계층을 사용, URL 또는 HTTP헤더에서 부하 분산이 가능 - L4로드밸런서의 기능을 더하여,..
-
[CS] Proxy PatternComputer Science/CS 2024. 4. 9. 16:07
프로그래밍에서 프록시 패턴은 소프트웨어 설계 패턴이다. 프록시 패턴은 대상 원본 객체를 대리하여 대신 처리하게 함으로써 로직의 흐름을 제어하는 행동 패턴이다. 객체 지향 프로그래밍에 접목해보면 클라이언트가 대상 객체를 직접 쓰는 것이 아니라 프록시(대리인)을 거쳐서 쓰는 코드 패턴이라고 보면 된다. 따라서 대상 객체(subject)의 메소드를 직접 실행하는 것이 아닌, 대상 객체에 접근하기 전에 프록시 객체의 메서드를 접근한 후 추가적인 로직을 처리한뒤 접근하게 된다. 구체적으로 인터페이스를 사용하고 실행시킬 클래스에 대한 객체가 들어갈 자리에 대리자 객체를 대신 투입한다. 클라이언트 쪽에서 실제 실행시킬 클래스에 대한 객체를 통해 메서드를 호출하고 반환 값을 받는지, 대리자 객체를 통해 메서드를 호출하..
-
[CS] polling push pullComputer Science/CS 2024. 4. 2. 15:04
방식 Pull ex) http request 클라이언트가 서버에게 데이터를 요청하는 것 Polling ex) ajax 하나의 장치(프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식 (주기적으로 서버에 연산을 요청) Loop 및 while문 내에서 반복적으로 외부 입력을 감시하는 문법으로 구현된다. Real-Time 웹을 위한 기법으로, 일정한 주기를 가지고 서버와 응답을 주고 받는 방식 (RealTime : 사용자가 즉시라고 느낄 정도로 충분히 빠르거나, 컴퓨터 외부에서 진행되는 처리에 빠르게 동작하는 컴퓨터 반응 수준) polling은 http의 단점을 보완하기 위해 고안된 기법이다. 웹이..