본문 바로가기

전체 글

(133)
CS - 동시성 vs 병렬성 Concurrency와 Parallelism은 헷갈리기 쉬운 개념입니다. 이름도 Concurrency(동시성)과 Parallelism(병렬성)으로 이름만 들었을 때는 이 둘의 차이를 구분하기 어렵습니다. Concurrency와 Parallelism의 특징을 정리하면 다음과 같습니다. Concurrency (동시성) Parallelism (병렬성) 동시에 실행되는 것처럼 보이는 것 실제로 동시에 실행되는 것 논리적인 개념 물리적인 개념 싱글코어, 멀티코어에서 가능 멀티코어에서만 가능 표만 봤을 때는 내용이 잘 와닿지 않습니다. Concurrency와 같은 경우 "동시에 실행되는 것처럼 보이는 것은 뭐지?"라는 생각이 들 수 있습니다. 그림과 함께 그리고 동기화 관점에서 Concurrency가 왜 동시에 실..
Redis - Redis 란? 인메모리 데이터 저장소 Redis 개발을 하다보면 트랜잭션이 많이 발생하는 화면에서 느껴지는 느림(?) 같은 것을 느끼곤 했다. 자주사용되는 하지만 세션에 담고 있기에는 뭔가 모호한 것들을 조회하기 위해 DB를 몇번이나 갔다와야 하니.. 어떻게 하면 속도를 줄일 수 있을지 고민했다. 처음에는 한방에 union all로 가져와? 같은 .. 별로인 생각도 해봤는데 검색하다 보니 redis라는 캐시? 데이터베이스?의 존재를 알게 되었다. 쭉 찾아보니 꽤나 유용한 기술이라고 생각되고 실제로 유명한 곳에서 많이 사용되고 있음을 알고 한번 정리해 보려고 한다. 소개 redis의 어원 redis는 단어의 의미에서 보면 외부에 key-value를 저장하는 서버를 말한다. redis.io 에는 다음과 같이 redis를 ..
쿠버네티스 - 쿠버네티스란? 1. 쿠버네티스란 단일 서버에서 컨테이너를 사용한다면 쿠버네티스를 사용하지 않아도되겠지만 서버가 10대로 늘어나게 된다면 어떤 서버에 어떤 컨테이너를 생성해야할지 서버마다 들어가서 일일이 자원을 확인하고, 실행하고나서는 컨테이너의 상태를 체크하고, 필요에따라 재가동하고, 삭제하고 등등 모든 작업을 10대에 서버에 접근해서 한땀한땀 해야하는 불편한 상황이 생기게 됩니다. 이러한 불편함을 해결하기 위해 컨테이너 오케스트레이션이 등장합니다. 모든 서버에 접근하여 한땀한땀 작업하는것을 하나의 클러스터로 구성하여 마치 하나의 컴퓨터에서 작업하는것처럼 개발 배포 관리를 단순화 시켰습니다. 쿠버네티스는 그중 가장 대표적인 컨테이너 오케스트레이션 오픈소스입니다. 2. 쿠버네티스 아키텍쳐 쿠버네티스는 클러스터는 크게 C..
기술 선정 1.프로젝트의 필요성 이해: 모든 기술 선택은 프로젝트의 실질적인 필요성에 기반해야 합니다. 무슨 문제를 해결하려는지, 그리고 이에 대한 최적의 해결책이 무엇인지 명확하게 인식하는 것이 가장 중요합니다. 2.기술 성숙도 확인: 신기술은 매력적일 수 있지만, 베타 단계의 기술은 종종 불안정하며 필요한 지원을 제공하지 못할 수 있습니다. 따라서, 공식 문서를 분석하고, 커뮤니티의 의견을 살펴보고, 다양한 사례 연구를 검토함으로써 기술의 성숙도를 꼼꼼히 평가해야 합니다. 3.강력한 커뮤니티와 지원의 존재: 도입하려는 기술이 큰 개발자 커뮤니티의 지원을 받고 있는지 확인하는 것이 중요합니다. 이것은 문제가 발생했을 때, 해결책을 찾는데 큰 도움이 됩니다. 활발한 커뮤니티는 해당 기술이 계속해서 성장하고, 발전할..
컴파일러, 인터프리터 차이 컴파일(compile)의 역사 컴파일 이야기를 하기전에 어셈블리어에 대해서 간단하게 짚고 넘어가야 한다. 어셈블리어란 무엇인가? 어셈블리어를 위키에서 검색하면 정의를 알 수 있는데, 이 정의에 다음과 같은 문구가 있다. 어셈블리어(영어: assembly language) 또는 어셈블러 언어(assembler language)는 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어이다. 컴퓨터 구조에 따라 사용하는 기계어가 달라지며, 따라서 기계어에 대응되어 만들어지는 어셈블리어도 각각 다르게 된다. 볼드 처리를 한 이 문장이 앞으로 다루게 될 모든 내용들의 이유이다. 그렇다면 이 문장이 컴파일과 무슨 상관인가? 조금 쉽게 예를 들어보자. 초기 컴퓨터 프로그램들은 모두 어셈블리어로 작성했다. 그러나 ..
AWS - Step Function AWS Step Functions란 무엇입니까? ‍ AWS Step Functions는 작업을 수행하기 위해 여러 AWS 서비스를 보다 쉽게 ​​오케스트레이션할 수 있도록 Amazon Web Services에서 제공하는 서비스입니다. Step Functions를 사용하면 시각적 워크플로우 편집기를 사용하여 한 단계의 출력이 다른 단계의 입력이 되는 프로세스의 단계를 생성할 수 있습니다. Step Functions는 자동 재시도 처리, 각 워크플로 단계에 대한 트리거 및 추적, 단계가 올바른 순서로 실행되도록 보장하는 편리한 기능을 제공합니다. 이 목록이 처음에는 별거 아닌 것처럼 보일 수 있지만 수십 개의 단계와 수백 개의 병렬 실행이 포함된 워크플로에서 이러한 모든 일이 올바르게 발생하는지 확인하는 것..
네트워크 - URI ,URL ,URN 출처) https://danielmiessler.com/study/difference-between-uri-url/ ▶ URI (Uniform Resource Identifier) 통합 자원 식별자는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본 조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. URI의 하위개념으로 URL, URN 이 있다. ▷ 인터넷에 있는 자원을 나타내는 고유식별자로 유일해야 함. 웹사이트 주소를 https://lxxyeon.tistory.com/라고 했을 때, 위치를 말하는 것이 아닌 구분자로 보는 것! 네트워크 상에 존재하는 자원을 구분하는 식별자(ID), URN, URL은 URI에 포함. ▶ URL (Uniform Resource Loc..
AWS - API Gateway 📌 API Gateway API gateway는 api 가 지나다니는 통로다. 이게 왜 필요할까? 오늘은 API gateway 가 왜 필요한지에 대해서 공부해보았다. 📍 AWS API Gateway 란 ? API Gateway 는 개발자가 API 를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있는 서비스다. AWS에서 제공하고 있으며, EventBridge, Lambda와 함께 사용할 수 있다. MSA 아키텍처로 구현된 로튼 토마토 도메인들 나는 API Gateway를 이해하기 위해 로튼 토마토(미국 영화 평점 사이트)가 마이크로 서비스 아키텍처로 구현되어있다고 상상했다. 여러 개로 흩어져 있는 서비스 가운데 service 2(토마토TV 서비스의 도메인) 의 모든 기..