CS Repo/프로그래밍 패러다임 3

스프링 + 비동기 프로그래밍

비동기 프로그래밍은 시스템의 처리 효율을 높이고 블로킹을 최소화하기 위한 핵심 기법이다. 동기 호출로 인한 블로킹 문제를 해결하기 위해 이벤트 드리븐 아키텍처와 같은 패러다임이 채택되며, 이를 통해 처리 흐름을 비동기로 전환하고, 데이터 흐름 제어(backpressure) 및 에러 처리를 체계적으로 관리할 수 있다.이벤트 드리븐 아키텍처이벤트 드리븐 아키텍처란, 상태의 변화가 직접적인 메소드 호출로 이루어지지 않고, 자신의 상태 변화를 외부에 알리는데 중점을 두는 아키텍처 형태를 의미한다.I/O 처리와 zip 요청I/O 작업 시 상류 스트림에서 zip 요청을 받는다. 내부에서 동기 호출이 이루어지면 블로킹이 발생하므로, 비동기 요청을 일관되게 사용하는 것이 바람직하다.이벤트와 콜백 메커니즘이벤트나 콜백을..

동기/비동기 관점에서 바라본 Java IO vs Java NIO

동기/비동기 통신 관련은 해당 글을 참고해주세요. 봉쇄/비봉쇄(Blocking/Non-Blocking), 동기/비동기(Sync/Async), 그리고 이벤트 드리븐 아키텍처통신(파일 I/O, 네트워크I/O) 개념에서 비동기와 논블로킹 개념은 매우 혼동하기 쉬운 주제이다.네트워크를 정확히 모른다는 것은 장님이 코끼리 만지는 격이니, 이번기회에 제대로 정리하고 넘go-gradually.tistory.com 동기 및 비동기 프로그래밍 방식의 관점에서 Java IO와 Java NIO를 살펴보면, 두 기술은 입출력 처리 방식과 구조적인 접근에서 본질적인 차이를 보인다. Java IO는 전통적인 스트림 기반 방식으로 설계되었으며, 모든 입출력 작업이 완료될 때까지 호출 스레드가 대기하는 블로킹 방식을 채택한다. 반..

"프로그래밍 패러다임" 이란?

프로그래밍 패러다임은 소프트웨어 설계와 구현 방법론을 구체화하는 개념이며, 각 패러다임은 문제 해결 접근 방식에 따른 특징과 이점을 갖는다. 다양한 패러다임이 존재하며, 아래와 같이 체계적으로 분류할 수 있다.명령형 프로그래밍 (Imperative Programming)컴퓨터에게 수행해야 할 작업을 명령어의 순차적 집합으로 지시하는 방식이다.절차적 프로그래밍 (Procedural Programming): 명령형 프로그래밍의 한 갈래로, 작업을 함수나 서브루틴 단위로 나누어 순차적으로 수행한다. 예를 들어, C 언어와 Pascal이 이에 해당한다.구조적 프로그래밍 (Structured Programming): 코드의 흐름을 제어 구조(조건문, 반복문 등)를 통해 명확하게 구성함으로써 가독성과 유지보수를 향..