전체 글 59

이메일 전송 서버 구현하기(Redis Queue, Celery)

이 글은 FastAPI와 Celery를 이용한 이메일 전송 시스템을 설계하며 고민했던비동기 처리 구조, Redis 큐 분리, asyncio 사용 이유에 대해 정리한 기록입니다.🔗Github Repositoryhttps://github.com/kgh-codingWorld/email-server.git 개요홈페이지에서 사용자가 'Contact Us'를 통해 이메일을 보내면,지정된 담당자에게 메일이 전달되는 비동기 이메일 전송 서버를 구현했다.초기에는 Redis 리스트큐(rpush / blpop) 방식으로 직접 큐를 관리하려 했지만,이후 구조를 단순화하고 안정성 확보를 위하여 Celery의 내장 메시지 브로커 기능을 활용하는 방향으로 전환하였다. 구조 설계 목표이메일 전송은 비동기 큐로 분리사용자 응답은 즉..

카테고리 없음 2025.03.29

[컴퓨터공학/운영체제] 멀티프로세스 vs 멀티스레드, 기초부터 이해하기

🗂️ 개념 정리 및 실행 구조의 원리프로그램(Program)개념:실행 가능한 정적인 코드의 집합으로 아직 실행되지 않은 상태운영체제에 의해 실행되기 전까지는 단순한 데이터일 뿐임예시: .exe 파일, .py 스크립트, .class 파일 등특징: 자체로는 실행되지 않고, 운영체제의 명령 해석기(쉘, 커널 등)에 의해 프로세스로 만들어져야 함이 과정을 담당하는 주체가 바로 운영체제(Operating System) 운영체제(Operating System)역할:사용자가 프로그램을 실행하려고 하면, 운영체제가 그 요청을 받아들여 다음과 같은 일을 수행함프로그램 파일을 디스크에서 읽어와 메모리에 로드독립적인 메모리 공간을 할당프로세스 제어 블록(*PCB)을 생성하고 PID를 부여필요한 시스템 자원(파일, 입출력..

[AWS] AWS 기본 개념 완전 정복 | 서비스 종류, 용어, 조합 전략

AWS는 다양한 클라우드 서비스를 제공하며, 각각의 서비스는 용도에 따라 카테고리로 분류된다. 아래는 주요 서비스 분류와 자주 등장하는 용어들에 대한 정리다.1. 컴퓨팅 (Compute)EC2: 가상 서버 인스턴스를 생성하고 실행할 수 있는 핵심 컴퓨팅 서비스Lambda: 서버리스 방식으로 코드 실행 (이벤트 기반)ECS / EKS: 컨테이너 기반 애플리케이션 배포 및 관리Auto Scaling: 트래픽이나 부하에 따라 인스턴스를 자동으로 증감관련 용어: 인스턴스, 컨테이너, 서버리스, 스케일 인/아웃- 인스턴스: EC2와 같은 가상 서버, 실제 물리 서버 위에 만들어진 가상의 컴퓨팅 자원- 컨테이너: 애플리케이션과 그 실행환경을 패키징한 단위, 빠른 배포와 이식성 제공(예: Docker)- 서버리스: ..

AWS 2025.03.26

[AWS] AWS 기본 개념(3) - CloudWatch, Auto Scaling, API Gateway

모니터링 및 관찰성CloudWatchAWS 리소스 및 애플리케이션의 운영 상태를 실시간으로 모니터링하고, 로그를 수집 및 분석할 수 있는 통합 모니터링 서비스로, 를 통해 시스템의 성능, 가용성, 운영 상태를 효율적으로 곤리하고 자동화된 대응을 설정할 수 있다.  1) 지표(Metrics) 수집 및 시각화EC2, RDS, Lambda, ELB 등 다양한 AWS 리소스의 지표(예: CPU 사용률, 디스크 I/O, 네트워크 트래픽 등)를 실시간으로 수집하고 시각화할 수 있다.  2) 로그 수집 및 분석애플리케이션 및 시스템 로그를 수집하여 중앙에서 검색, 분석, 저장이 가능하다. 이를 통해 오류 원인 분석 및 보안 감사에도 활용된다.  3) 경보(Alarm) 설정설정한 임계값을 기준으로 경보를 생성할 수 있..

카테고리 없음 2025.03.25

[AWS] AWS 기본 개념(2) - 데이터베이스 서비스와 네트워킹 서비스

데이터베이스 서비스1. RDS(Relational Database Service)아마존이 제공하는 완전 관리형 관계형 데이터베이스 서비스로, 사용자가 데이터베이스 관리 및 유지보수에 대한 부담 없이 손쉽게 데이터베이스를 구축하고 운영할 수 있게 지원한다.  1) 완전 관리형 데이터베이스 서비스데이터베이스 설치, 유지 관리, 패치 적용, 백업, 모니터링 등 데이터베이스 운영에 필요한 작업을 AWS가 자동으로 수행한다.  2) 다양한 데이터베이스 엔진 지원MySQL, PostgreSQL, Oracle, SQL Server, MariaDB, Amazon Aurora 등  3) 자동 확장 및 성능 최적화성능 요구사항에 따라 인스턴스를 유연하게 변경할 수 있으며, 읽기 복제본(*리드 레플리카)을 활용해 읽기 성능..

카테고리 없음 2025.03.25

[AWS] AWS 기본 개념(1) - 컴퓨팅 서비스와 스토리지 서비스

AWS(Amazon Web Services) 아마존이 제공하는 클라우드 서비스로, 전 세계적으로 가장 널리 사용되는 클라우드 플랫폼 중 하나이다.IT *인프라 구축에 필요한 컴퓨팅, 스토리지, 데이터베이스, 네트워크, 보안 등 다양한 서비스를 제공한다.*인프라: IT 분야에서 주로 정보 시스템을 운영하기 위해 필요한 기반 시설이나 자원(하드웨어, 소프트웨어, 네트워크 등 서비스를 제공하는 데 필수적인 구성 요소 포함) 1. 클라우드 컴퓨팅이란?인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어 등의 IT 리소스를 주문형으로 제공받아 사용할 수 있는 기술이다. 사용한 만큼 비용을 지불하며, 필요에 따 빠르게 확장 또는 축소할 수 있는 유연성이 장점이다. 2. AWS의 주요 서비스 컴퓨팅 서..

AWS 2025.03.24

[컴퓨터공학/운영체제] 운영체제 기초 | CPU, 메모리, 파일 시스템 관리

운영체제란 무엇인가?운영체제(Operating System, OS)는 하드웨어와 소프트웨어 사이에서 중재 역할을 하는 핵심 시스템 소프트웨어다.사용자가 프로그램을 실행하거나 파일을 저장하는 것처럼 단순한 행동을 하더라도, 그 이면에서는 운영체제가 CPU, 메모리, 저장 장치 같은 자원을 알맞게 배분하고 관리하고 있다. 운영체제가 필요한 이유CPU - 연산을 수행하는 두뇌메모리(RAM) - 프로그램과 데이터를 임시로 보관파일 시스템(디스크) - 영구 저장 공간여러 프로그램이 동시 실행될 때, 이 자원들을 아무 통제 없이 쓰게 되면 충돌, 속도 저하, 보안 문제가 발생한다. 이 자원들을 효율적이고 안전하게 분배하는 역할을 운영체제가 수행한다. 운영체제의 주요 목적자원 관리(Resource Management..

[컴퓨터공학] 컴퓨터 개념 기초 | 메모리 계층 구조

"RAM이 느려서 CPU가 기다린다"는 말의 진짜 의미는 무엇일까?본문에서는 CPU와 메모리 간의 병목을 해결하기 위한 계층적 메모리 구조를 분석한다.왜 다양한 메모리가 필요한가?CPU는 점점 빨라지는데, 메모리는 그 속도를 따라가지 못한다.*물리적 제약의 차이: CPU는 집적도가 높은 소수의 회로에 초고속 연산을 집중시키는 구조다. 반면 메모리는 데이터를 많이 담는 게 우선이므로 회로를 촘촘하게 배치할 수 없다.*기술 발전 속도의 차이: CPU는 고속화에 특화된 설계 개선이 매년 이루어졌지만 메모리 기술은 발전 속도가 느리고 대부분 용량 증가 위주로 발전한다.이로 인해 CPU는 데이터를 기다리느라 멈춰서는 상황이 빈번하게 발생한다. 이 문제를 해결하기 위해 컴퓨터는 속도와 용량, 가격 사이에서 균형을 ..

[컴퓨터공학] 컴퓨터 개념 기초 | CPU가 명령어를 실행하는 방법 - Fetch, Decode, Execute 사이클 완전 정복

CPU는 단순한 회로 집합이 아니라, 수많은 명령어를 처리하는 정교한 기계다.이 글에서는 명령어 사이클을 기반으로 CPU의 동작 구조를 이해한다.명령어 실행의 전체 흐름컴퓨터에서 실행되는 모든 프로그램은 결국 CPU가 해석하고 실행하는 기계어 명령어들의 연속이다.고급 언어로 작성된 코드도, 컴파일 혹은 인터프리팅을 거쳐 기계가 해석 가능한 명령어 단위로 변환된다.CPU는 이 명령어들을 하나하나 처리하며 프로그램을 수행한다. 이 일련의 과정을 명령어 사이클(instruction cycle) 또는 Fetch-Decode-Execute 사이클이라고 한다.사이클을 알아야 하는 이유프로그래밍이든, 하드웨어를 공부하든 CPU가 명령어를 실행하는 과정을 이해하는 것은 정말 중요하다.이걸 모르면 메모리가 왜 필요하고,..

[컴퓨터공학] 컴퓨터 개념 기초 | 컴퓨터가 숫자를 표현하는 방법(2의 보수, 고정소수점 등)

컴퓨터가 숫자를 저장하고 처리한다는 것은, 결국 비트 단위의 전기 신호 조합으로 숫자의 의미를 부여한다는 것이다. 숫자라고 해서 별다른 형태가 있는 것이 아니라, 이진수로 변환된 일련의 0과 1이 특정 규칙에 따라 해석될 뿐이다.본문에서는 컴퓨터가 정수, 음수, 소수를 어떻게 이진수로 표현하는지 살펴보며, 2의 보수, 고정소수점, 부동소수점과 같은 핵심 개념을 다룬다.정수 표현의 기본: 부호 없는 정수가장 단순한 숫자 표현은 양의 정수만을 다루는 것이다. 예를 들어, 8비트 공간에서 0~255까지의 수를 다음과 같이 표현할 수 있다.10진수 : 0 1 2 3 ... 254 2552진수 : 00000000, 00000001, 00000010, ..., 11111110, 11111111이..

반응형