목록IT/CS (6)
잡동사니
안녕하세요. yeTi입니다.오늘은 운영 체제(Operating System, OS)가 태동하게 된 배경을 알아본 것을 공유해 보고자 합니다.서론운영 체제란 무엇일지, 왜 만들어지게 되었는지, Operating System 이라는 말이 어떤 것을 어떻게 하겠다는 뜻일지 궁금하여 이를 알아보면서 알아차린 것들을 공유하는 글입니다.운영체제는 왜 필요하게 되었을까?컴퓨터는 운영체제가 없어도 작동할 수 있지만 기능에 상당한 제약이 있습니다. 초기 컴퓨터인 에니악(ENIAC)처럼 운영체제가 없는 경우 정해진 계산만 수행할 수 있으며 새로운 기능을 추가하기 위해서는 하드웨어를 직접 변경해야 하는 제약사항이 있습니다. 그리고 프로그램을 메모리에 올리거나 여러 프로그램을 동시에 실행하는 것이 불가능하며 자원을 효율적으로..
안녕하세요. yeTi입니다.클라우드 네이티브 애플리케이션의 발전과 함께, 경량 애플리케이션의 중요성이 점점 더 부각되고 있습니다. 동시에, 높은 동시성을 요구하는 현대 애플리케이션 환경에서는 컨텍스트 스위칭(Context Switching) 문제가 중요한 과제로 떠오르고 있습니다. 이번 포스팅에서는 클라우드 네이티브 애플리케이션에서 경량 애플리케이션의 중요성을 살펴보고, 컨텍스트 스위칭 문제가 대두된 원인을 분석하며, 프로그래밍 업계에서 이를 해결하기 위해 취하고 있는 방향을 논의하고자 합니다.경량 애플리케이션의 중요성자원 효율성클라우드 네이티브 애플리케이션은 확장성과 유연성이 중요한데, 이를 위해서는 자원을 효율적으로 사용하는 경량 애플리케이션이 필수적입니다. 경량 애플리케이션은 적은 메모리와 CPU ..
안녕하세요. yeTi입니다.현대 소프트웨어 개발은 클라우드 컴퓨팅의 발전과 함께 급격한 변화를 겪고 있습니다. 특히, 클라우드 네이티브 애플리케이션(Cloud Native Applications)은 이러한 변화의 중심에 서 있으며, 기존의 온프레미스(On-Premise) 환경에서 클라우드(Cloud) 환경으로의 전환을 촉진하는 중요한 개념으로 자리잡고 있습니다. 이번 포스팅에서는 클라우드 네이티브 애플리케이션의 탄생 배경부터 현재의 현황까지를 살펴보고, 이를 구현하기 위한 주요 원칙과 기술, 그리고 실제 적용 사례를 소개하겠습니다.클라우드 네이티브 애플리케이션이란?클라우드 네이티브 애플리케이션은 클라우드 환경의 특성을 최대한 활용하여 설계되고 개발된 애플리케이션을 의미합니다. 이는 클라우드의 유연성, 확..
안녕하세요. yeTi입니다.현대 소프트웨어 개발은 빠르게 변화하는 환경 속에서 지속적으로 적응하고 발전하고 있습니다. 특히, 온프레미스(On-Premise) 환경에서 클라우드(Cloud) 환경으로의 전환은 서비스의 구동 방식과 성능 최적화에 큰 영향을 미쳤습니다. 이러한 변화는 동시성(Concurrency)과 병렬성(Parallelism)에 대한 새로운 요구사항을 만들어냈으며, 이에 대한 효과적인 대응 방안으로 버추얼 쓰레드(Virtual Threads), 코루틴(Coroutines), WebFlux와 같은 최신 동시성 기법들이 등장하게 되었습니다. 이번 포스팅에서는 Context Switching의 개념과 온프레미스에서 클라우드로의 전환이 동시성 기법에 어떤 영향을 미쳤는지, 그리고 이러한 변화가 새로..
안녕하세요. yeTi입니다.프로그램의 효율성과 응답성을 극대화하기 위해 동시성(Concurrency)과 병렬성(Parallelism)은 필수적인 개념입니다. 이전 포스팅에서는 동시성과 병렬성의 기본 개념과 이를 구현하는 대표적인 방법인 멀티스레딩(Multithreading)과 멀티프로세싱(Multiprocessing)에 대해 알아보았습니다. 이번 포스팅에서는 동시성 문제를 더욱 깊이 있게 이해하기 위해 동기(Synchronous), 비동기(Asynchronous), 블로킹(Blocking), 논블로킹(Non-Blocking)의 개념이 동시성과 어떻게 연결되는지 살펴보겠습니다.동시성에서의 동기와 비동기동기(Synchronous) 프로그래밍이란?동기 프로그래밍은 작업이 순차적으로 실행되는 방식을 의미합니다...
안녕하세요. yeTi입니다.오늘은 동시성(Concurrency)과 병렬성(Parallelism)에 대해 알아보고 나아가 멀티스레딩(Multithreading)과 멀티프로세싱(Multiprocessing) 의 개념까지 알아보고자 합니다.개요프로그래밍에서 동시성(Concurrency)과 병렬성(Parallelism)은 성능 최적화와 효율적인 자원 활용을 위해 중요한 개념입니다. 이 두 개념은 종종 혼동되지만, 각각 고유한 특징과 적용 사례가 있습니다. 특히 멀티스레딩(Multithreading)과 멀티프로세싱(Multiprocessing)은 동시성과 병렬성을 구현하는 대표적인 방법들입니다. 이번 포스팅에서는 동시성과 병렬성의 기본 개념을 이해하고, 멀티스레딩과 멀티프로세싱의 차이점과 선택 기준을 살펴보겠습니..