동기 vs 비동기 / 블로킹 vs 논블로킹 실습 코드로 이해하기
·
CS
📍 배경2024.10.15 - [CS] - 동기vs비동기 , 블로킹vs논블로킹예전에 포스팅한 CS 지식을 체화하기 위해 동기vs 비동기 , 블로킹 vs 논블로킹 실습 코드를 작성을 해보았습니다.현재 제가 진행중인 그룹 스터디에서 주제를 정하고 각자 공부하는걸 발표하는 시간을 가졌었는데요. 저는 이때 실생활에서 볼 수 있는 동기 vs 비동기 , 블로킹 vs 논블로킹 시나리오를 생각하고 이를 java 코드로 구현해 보았습니다.면접때 질문이 들어와도 곧바로 대답할 수 있는 수준이 되기 위해 쉽게 이해하기 쉬운 시나리오와 코드를 포스팅해보겠습니다📍 동기 vs 비동기`동기 vs 비동기` 로 만들어 본 시나리오의 상황은 카페에서 발생할 수 있는 상황들 입니다. 동기는 한 작업이 완료될 때까지 다음 작업은 대기한..
MSA 환경에서 서비스별 Swagger UI를 GitHub Pages로 배포하기
·
CS
🔎 개요개인프로젝트를 MSA구조로 설계하고 각 마이크로서비스마다 주요 기능 개발이 완료된 후, 개발한 API를 한 눈에 볼 수 있는 문서화 페이지가 필요했습니다.Spring Boot와 우수한 호환성으로 기존 코드로 손쉽게 API 스펙을 정의할 수 있어서 Swagger를 선택했습니다또한, 무료 정적 사이트 호스팅을 제공하고 Git 기반으로 쉽게 배포할 수 있어서 GitHub Pages를 사용했습니다 참고 블로그를 찾아보던 중 GitHub에 Swagger API 문서를 공유하기 글을 보게 되었고, 해당 내용을 바탕으로 구현했습니다 🛠️ 백엔드 환경 각 마이크로서비스의 기술 스택은 다음과 같습니다Java : 17Spring Boot : 3.3.5Build Tool : GradleAPI 문서화 : Sprin..
동기vs비동기 , 블로킹vs논블로킹
·
CS
📍 동기와 비동기동기 ; Synchronous동기는 작업을 순차적으로 실행하며 한 작업이 완료될 때까지 다음 작업은 대기한다.한 작업이 완료될 때까지 대기하는 이유는 결과값 혹은 순서가 중요하기 때문.비동기 ; Asynchronous비동기 처리는 병렬적으로 실행하며 여러 작업을 동시에 처리할 수 있는 방식이다.다른 작업의 완료를 대기하지 않아도 되며, 결과의 순서를 예측하기 어렵다.그래서 끝났을 때 결과 이벤트 처리를 위해 콜백함수를 사용한다.피호출 함수의 작업이 완료되어도 호출 함수가 결과값에 대해 바로 처리하지 않아도 된다.비동기 프로그래밍의 방법멀티쓰레드논블로킹 IO비동기와 논블로킹 관계성에 대해 궁금해졌는데 비동기라는 개념이 더 크게 잡혀있다.동기와 비동기는 결과를 돌려주었을 때 결과값과 순서에..