일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- nestjs
- 쿠버네티스
- 메모리구조
- 캐시서버
- CPU스케쥴링
- 글또
- 백엔드 개발자
- EKS
- AWS
- Alembic
- K8S
- SQLAlchemy
- gunicorn
- golang
- 멀티스레드
- 가비지컬렉션
- 싱글톤 디자인 패턴
- 로드밸런서
- 회고
- alb
- 스케줄링
- 스레드풀
- 분산처리
- uvicorn
- 쿠베네티스
- nodejs
- FastAPI
- Django
- 2022년
- Python
- Today
- Total
목록분류 전체보기 (26)
서버에서 살아남기

인강 들으면서 정리한 쿠버네티스 관련 내용입니다. Pod 쿠버네티스에서 deploy를 할 수 있는 가장 작은 컴퓨팅 유닛입니다. pod 안에는 하나 이상의 컨테이너를 넣을 수 있으며 이 컨테이너들은 storage와 network 를 공유합니다. 컨테이너 여러개를 하나의 pod에 넣으려면 그 컨테이너들은 서로 밀접하게 연관되도록 설정해야합니다. 그래서 확장과 유연함을 생각한다면 하나의 pod에 하나의 컨테이너를 권장합니다. 1. Pod 생성하는 법 커맨드 라인으로 작성해도 되지만 보통은 yml 파일로 작성합니다. 예시) apiVersion: v1 kind: pod metadata: // 태그 같은 개념 (서비스에 이름 붙이기) name : nginx spec: containers: // 어떤 컨테이너들을 ..

1) Statement 여러 정책들을 포함하는 요소입니다. 2) Sid 식별자이며 필수값은 아닙니다. 3) Effect 필수 요소이며 "Allow" 혹은 "Deny" 중에 설정가능합니다. 리소스 엑세스를 허용하려면 "Allow"로 두면 됩니다. 4) Principal 보안 주체를 지정합니다. (ex. aws 루트 사용자, IAM 역할, AWS 서비스 등) 5) Action 특정 작업의 허용 또는 거부를 지정합니다. 즉 사용하려는 서비스를 지정합니다. (ex. "Action": "sqs:SendMessage") 이 외에도 다양한 변수들이 있으며 aws 공식문서 에서 확인이 가능합니다.
python에 초점을 맞춘 디자인 패턴에 대해서 정리하겠습니다. 해당 내용은 책 에 있는 내용을 정리한 내용입니다. 프록시 디자인 패턴 프록시 디자인 패턴은 구조 디자인 패턴의 한 종류입니다. 프록시 디자인 패턴의 개요 프록시 : 요청자와 공급자 사이의 중재자를 일컫음 웹 관점에서는 프록시 서버가 프록시에 해당됩니다. 플라이언트가 특정 웹 사이트에 접속하면, 프록시 서버에 리소스를 요청하고 요청을 받아들인 프록시 서버는 서버에 요청을 보내고 결과를 받아 다시 클라이언트에게 보냅니다. 디자인 패턴 관점에서의 Proxy 클래스는 객체의 언페이스 역할을 합니다. 여기서 객체는 네트워크 연결, 메모리, 혹은 파일에 저장된 객체 등을 의미합니다. 프록시 디자인 패턴의 역할 1) 복잡한 시스템을 간단하게 표현할 수..
python에 초점을 맞춘 디자인 패턴에 대해서 정리하겠습니다. 해당 내용은 책 에 있는 내용을 정리한 내용입니다. 디자인 패턴 종류 GoF 디자인 패턴 책에서는 디자인 패턴을 다음의 3개의 범주로 분류합니다. 1) 생성 패턴 2) 구조 패턴 3) 행위 패턴 1) 생성 패턴 - 객체가 생성 되는 방식을 기반으로 작동합니다. - 객체 생성 관련 상세 로직은 숨긴다. 2) 구조 패턴 - 클래스와 객체를 더 큰 결과물로 합칠 수 있는 구조로 설계한다. - 구조가 단순해지고, 클래스와 객체 간의 상호관계를 파악 할 수 있다. 3) 행위 패턴 - 객체는 상호작용하지만 느슨하게 결합돼야 한다.싱글톤 디자인 패턴(생성 패턴) 특정 클래스의 인스턴스가 단 하나만 생성되도록 보장하고 어디서든지 이 인스턴스에 접근 할 수..
메모리 구조 컴퓨터의 메모리 구조는 크게 코드, 데이터, 스택, 힙 영역으로 나뉘며 각 영역의 특성은 다음과 같습니다. 코드 영역 실행할 프로그램 코드가 저장되는 영역으로 CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리합니다. 함수, 제어문, 선언문 등의 코드가 저장됩니다. 컴파일 언어의 경우, 개발자가 작성한 원시 코드(프로그래밍 언어로 작성한 코드)를 기계어로 번역한 결과가 저장되는 영역입니다. python과 같은 인터프리터 언어의 경우는 개발자가 작성한 원시 코드가 먼저 바이트 코드로 컴파일 되고, 이 바이트 코드가 저장되는 영역입니다. 바이트 코드는 python 인터프리터가 이해하고 실행할 수 있는 중간 단계의 코드로 원시 코드를 CPU가 직접 해석하고 실행하는 기계어 코드로 변환하는 ..

1. 로드밸런싱 EC2로 가는 부하를 분산시켜주는 역할을 합니다. 단일 DNS로 가게끔 노출시켜 줍니다. 인스턴스 헬스체크를 통해 장애 처리를 원활하게 할 수 있게 해줍니다. 클라우드 내의 개인 트래픽과 공공 트래픽을 분리합니다. 2. 종류 1) Classic Load Balancer 2009년에 만들어졌으며 HTTP, HTTPS, TCP, SSL, Secure TCP를 지원합니다. 하지만 곧 서비스 지원이 종료되기 때문에 AWS는 사용을 권장하지 않습니다. 2) Application Load Balancer 2016년에 출시됐으며 HTTP, HTTPS, 웹소켓 프로토콜을 지원합니다. 3) Network Load Balancer 2017년에 출시됐으며 TCP, TLS, secure TCP, UDP 프로토..
1. IP (Internet Protocol) 컴퓨터 네트워크 기기들이 서로를 식별하고 통신할 수 있도록 하는 규칙과 프로토콜의 집합 전세계적으로 분산된 거대한 네트워크 기기들이 서로 통신할 수 있게 해주는 것이 IP입니다. IP는 각 기기가 네트워크 상에서 가지는 고유한 식별 주소로 이 주소를 이용하여 데이터 패킷이 전송되고 받아집니다.인터넷에 연결된 장치들이 가지는 각각의 고유 주소❗️ 가장 많이 사용되는 IP 버전은 IPv4인데, 너무 많은 사용으로 주소가 고갈되어 IPv6 주소가 혼용되어 사용되고 있습니다. 2. 사설 IP 인터넷에서 사용 가능한 공용 IP주소가 아닌, 내부 네트워크 망에서만 사용되는 ip로서 외부의 접근으로부터 내부 네트워크를 보호합니다. 즉 우리 인터넷으로는 접근할 수 없고, ..
FastAPI를 사용함에도 FastAPI의 동작 원리에 대해 깊숙히 이해하지 못하고 있는 부분이 있어서 정리하려고 합니다. 1. FastAPI ASGI 서버와 함께 사용되는 비동기 웹 애플리케이션입니다. 2. ❓ ASGI란? 비동기 웹 서버와 웹 애플리케이션(ex. FastAPI) 간의 통신을 위한 표준 인터페이스 ASGI의 서버의 구현체인 uvicorn과 함께 사용됩니다. * 비동기는? 하나의 작업의 결과를 기다리지 않고 다른 작업을 동시에 진행하는 것 * 비동기 vs 병렬 비동기 : 하나의 스레드에서 여러 작업을 처리 병렬 : 여러 스레드나 프로세스에서 각각의 작업을 독립적으로 동시에 실행하는 것 3. ❓ uvicorn이란? ASGI 서버의 한 종류로서, ASGI 애플리케이션을 구동시켜 웹 서버로 동..