목록2024/10 (2)
장미정원

다소 자극적인 제목을 선정해보았지만 이 글을 끝까지 읽어봐주시면 좋은 인사이트를 하나라도 얻어가실 수 있을거라 생각합니다. 제가 프로젝트를 개발, 운영해보며 느낀 경험들을 꾹꾹 눌러담아 보았습니다. 이유 없는 기술 도입을 지양하자프로젝트에서 주어진 요구사항이나 문제를 해결하기 위해 기술을 도입해 본 경험이 있을 것입니다. 동적 쿼리를 편하게 작성하기 위해 QueryDSL 도입, 반복적인 조회 작업을 개선하기 위해 Redis 캐시 저장소 도입, 동시성 문제를 해결하기 위해 비관적 락 적용 등등... 하지만 이런 기술들을 도입하고 적용할 때 여러 기술을 비교해 보지도 않고 이유 없이 특정 기술을 도입하는 것은 지양해야 할 태도라고 생각합니다. 상황에 맞지 않는 기술이지만 단순히 관심이 있어서, 재밌어 보여서..

들어가며동기, 비동기, 블로킹, 논블로킹이라는 용어는 한 번쯤 들어봤거나 개념에 대해 조금은 알고 있을 것이라 생각됩니다. 순서대로 처리하는 것이 동기.. 그 반대가 비동기.. 작업 흐름이 끊기는 것이 블로킹.. 제어권.. 이렇게 머리속에 키워드만 생각나고 정확한 정의가 헷갈리며 개발을 할때 자주 등장하는 개념과 용어이기 때문에 정확히 정리해보는 시간을 가지려 합니다. 동기와 비동기 Synchronous, Asynchronous동기의 영단어의 어원은 Synchronous의 Syn은 '함께', chrono는 '시간'이라는 뜻입니다. 즉 함께 시간을 맞춰서 실행한다. 정도로 해석할 수 있습니다. 함께 시간을 맞춰서 실행한다는 말은 요청한 작업이 끝나야 남은 작업을 이어나간다라고 생각할 수 있습니다. 즉 작업..