분류 전체보기189 CKA 자격증 후기 있으면 있는 것이고 없어도 무방할 것이라 생각했었기에 CKA 접수를 1년 전에 해놓고 묵혀두고 있었다.미리 결제를 먼저 해놓고 있었던 이유는 CKA 자격증은 접수비가 비싼 편이라서 블랙 프라이데이에 반값 할인으로 결제했을 수 있었기 때문이다. 올해 43살(만 41살)이 되는 나이에 난이도가 그렇게 높지 않으며 누구나 취득할 수 있는 자격증이어서 이것을 딴다고 해서 지금 직장의 연봉에 영향을 미치거나 삶의 변화를 주진 않을 것이다. 하지만, 그럼에도 자격증을 취득하려고 하는 것은 내 삶의 일부에 동기부여를 다시 한번 불어넣고 목표 의식을 잡기 위해서가 컸었다. 기억은 안 나지만 10년도 넘는 시간 동안 느껴보지 못했었던 시험에 대한 공부와 일정 관리 능력을 수험생으로 다시 돌아가게 느끼게 해 주었다. 결과.. 2025. 1. 31. Good Retry, Bad Retry 장애 스토리 Good Retry, Bad Retry 장애 스토리정말 좋은 글이기에, 아래 블로그에 있는 내용에 대한 리뷰를 써보고자 한다.https://medium.com/yandex/good-retry-bad-retry-an-incident-story-648072d3cee6 Good Retry, Bad Retry: An Incident StorySometimes, a seemingly simple and obvious solution can lead to a series of problems later on. This is especially true when adding retries.medium.com리뷰를 하기에 앞서 초보자들도 이해를 돕기 위해 몇가지 예시는 임의로 추가를 하였고 교정하였음을 알려 드린다. .. 2024. 11. 27. FastAPI의 Uvicorn + Gunicorn 결합은 반드시 필요한 것인가? 개요 FastAPI는 비동기 프레임워크로 ASGI 서버를 지원하는 Uvicorn 과 함께 기동되어 사용된다. 다른 Flask, Django와 비교하여 성능이 2배정도 빠르다고 알려져있다. 하지만 성능이 빠르다고한들 개발자가 사용방법을 모르고 개발한다면 제대로 된 성능을 끌어올리기에는 어려움이 있을 수 있다. 우리는 정말 제대로 알고 사용하고 있는것인가? 이번 포스팅에서는 Uvicorn이 반드시 Guicorn과 결합이 필요한지에 대하여 알아보고자한다. 배경지식 Gunicorn이란 무엇인가? Gunicorn 은 WSGI 프로토콜을 사용하여 웹 애플리케이션과 상호 작용하는 서버이자 프로세스 관리자이다. Flask 또는 Django 와 같은 WSGI 동기식 웹 프레임워크로 작성된 애플리케이션을 제공한다. Gun.. 2024. 4. 10. FastAPI 동기/비동기 동작 방식 분해해보기 개요 회사에서 FastAPI 프레임워크로 개발해서 서비스 런칭하는 일이 잦아지면서 백엔드와 FastAPI 사용방법에 대한 지식이 부족하다는 것을 요즘 느끼고있다. 디테일하게 공부하고자하는 마음에 여러가지 실험한 결과에 대해 오랜만에 블로그에 포스팅하고자한다. 이론으로는 알지만 게을러서 실험해보지 못했던 FastAPI 동기/비동기 동작 방식 분해해보기 먼저 작성해보려고한다. 우선 FastAPI 동기/비동기 동작 방식을 알아보기 전에 동기식 웹 방식 vs 비동기식 웹 방식의 기본적인 배경 지식부터 알아보고 가자 동기식 (sync) 웹 방식 전통적인 WSGI (Web Server Gateway Interface) 프레임워크에서 1개의 요청당 1개의 스레드 (Worker)를 생성하여 처리하는 방식이었다. 비동기.. 2024. 4. 5. CPU 아키텍처에 따른 Docker Multi Architecture 빌드 구성하기 IT 회사에 입사하면 기본적으로 맥북을 주는 회사들이 많아졌다. 물론 안 주는 회사도 있겠지만 개인용으로도 맥북을 사용하는 것이 많이 일반화되었을만큼 개발자들에게는 필수품이 아닌 필수품이 되었다. 하지만 로컬에서 맥북 M1 (ARM 기반 CPU)에서 개발해서 정상동작을 하였으나 개발 (AMD 기반 CPU) 서버에 배포하면 기능이 정상적으로 동작을 하지 않거나 호환성 오류가 발생하는 경우를 경험해 보았을 것이다. 여러가지 호환성 오류가 많은데 그 중 일부분인 Docker 환경에서의 호환성 해결을 위한 Multi Architechture 빌드 전략에 대해서 소개해보고자 한다. 🚀 개요 로컬 (ARM 기반 CPU) 개발해서 배포는 Ubuntu (AMD 기반 CPU)에 Docker로 배포하는 빌드 전략에 대해 .. 2024. 2. 22. Prometheus (프로메테우스) 대해 알아보고 설치해보자 Prometheus (프로메테우스란)? 지표들을 시계열 데이터로 수집하고 측정하는 오픈 소스 모니터링 툴킷을 말한다. 여기서 지표라는 것은 예를 들어 웹 서버같은 경우 "요청수", "지연시간" 등이 될 수 있겠고 데이터 베이스 서버같은 경우에는 "커넥션 수", "쿼리 수" 등을 말할 수 있다. 이런 지표들을 통하여 서비스 부하, 통계등을 측정하는데 유용할 수 있다. 특징 측정항목 이름과 키/값 쌍으로 식별되는 다차원 데이터 모델 유연한 쿼리 언어인 PromQL 지원 분산 서버에 의존하지 않고 단일 서버 노드에 자율적 시계열 수집은 HTTP를 통한 풀 모델을 통해 발생 푸쉬 시계열은 중간 게이트웨이를 지원 다양한 그래프 및 대시보드 지원 언제 적합하고 적합하지 않은가? 프로메테우스는 빠르게 수집하고 모니터.. 2024. 1. 31. 🚚 티스토리에서 워드프레스로 이사하기 ✍ 블로그 마이그레이션 대비는 지금부터 하자 티스토리를 지금도 잘 사용하고 있지만 개인 호스팅이 아니다 보니 여태까지 포스팅 한 데이터도 소유하고 싶은 마음도 있고 여차저차해서 워드 프레스로 마이그레이션 하는 프로그램을 간단하게 개발해 보았다. 완전 자동은 아닌 반수동이다보니 데이터 마이그레이션 관점으로만 보면 될 것 같다. 🚨 주의하세요 워드프레스 마이그레이션 프로그램은 제 개인적인 용도로 사용하기 위해 심플하게 개발하였습니다. 이 프로그램은 자유롭게 다운로드하여 사용할 수 있지만, 사용 중 발생할 수 있는 오류나 다른 이슈에 대한 책임은 다운로드한 사용자에게 있습니다. 저는 어떠한 상황에서도 발생 가능한 문제에 대한 책임을 지지 않으며 해당 프로그램의 업데이트는 꾸준히 이루어지지 않을 수 있으니 사용.. 2023. 12. 27. Kubernetes::네트워킹 (Networking) 스위칭 (Switching) host system 의 interface 확인 $ ip link 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback ... 2: enp0s3: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether ... ... interface 의 IP Address 확인 $ ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback ... inet 127.0.0.1/8 scope.. 2023. 12. 19. Kubernetes::스토리지 (Storage) Persistent Volumes POD에서 Volume의 한계는 무엇인가? 대규모 환경에서는 많은 사용자가 많은 POD를 배포하므로 사용자는 각 포드에 대해 매번 스토리지를 구성해야 한다. 어떤 스토리지 솔루션을 사용하든 POD를 배포하는 사용자는 자신의 환경에 있는 모든 포드 정의 파일에서 이를 구성해야 한다. 변경할 때마다 사용자는 자신의 모든 POD에서 변경해야 한다. Persistent Volumes은 무엇인가? Persistent Volumes은 클러스터에 애플리케이션을 배포하는 사용자가 사용하도록 관리자가 구성한 클러스터 전체 스토리지 볼륨 Pool이다. 사용자는 Persistent Volumes Claim을 사용하여 이 Pool에서 스토리지를 선택할 수 있다. 시나리오 Persistent .. 2023. 12. 19. Kubernetes::클러스터 유지 (Cluster Maintenance) Cluster 업그레이드 방법 1. controlplane drain 걸기 (master node) drain은 지정된 노드에 있는 포드들을 다른곳으로 이동시키는 명령어이다. $ kubectl drain controlplane --ignore-daemonsets2. 패키지 목록 업데이트 (master node) $ apt update3. kubeadm 1.25 인스톨 (master node) $ apt-get install kubeadm=1.25.0-00 4. kubeadm 1.25 적용 (master node) $ kubeadm upgrade apply v1.25.05. kubelet 1.25 인스톨 (master node) $ apt-get install kubelet=1.25.0-006. 데몬 리로.. 2023. 12. 19. Kubernetes::어플리케이션 생명주기 (Application Lifecycle Management) 어플리케이션 내 ConfigMap 설정 (Configure ConfigMaps in Applications) ConfigMap 생성 명령어로 key-value 값을 인자 값으로 주어 생성하는 방법이다. $ kubectl create configmap app-config --from-literal=APP_COLOR=blue --from-literal=APP_MOD=prod properties 파일을 사용하여 생성하는 방법이다. ※ 파일을 사용하여 생성하게 되면 key 값이 파일 이름으로 설정되게 되니 주의하기 바란다. $ cat > app_config.properties APP_COLOR=blue APP_MODE=prod $ kubectl create configmap app-config --from-fi.. 2023. 12. 19. Kubernetes::로깅 모니터링 (Logging Monitoring) Metric Server 설치방법 $ git clone https://github.com/kodekloudhub/kubernetes-metrics-server.git $ cd kubernetes-metrics-server/ $ kubectl create -f . 사용방법 node 보기 $ kubectl top nodes kubectl top nodes NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% master.example.com 417m 13% 3706Mi 27% node1.example.com 44m 2% 485Mi 12% node2.example.com 59m 2% 613Mi 16% POD 보기 $ kubectl top pods kubectl top pods NAME .. 2023. 12. 19. Kubernetes::스케쥴링 (Scheduling) - 정적 파드 정적 파드 (Static Pods) 정적 파드는 특정 노드의 kubelet 데몬에서 직접 관리한다. kubelet은 각 정적 파드를 감시하고 실패하면 다시 시작한다. 정적 포드는 항상 하나의 특정 노드에서 바인딩된다. 파드 이름에는 앞에 하이픈이 있는 노드 호스트 이름이 접미사로 붙는다. 정적 파드 (Static Pods) 생성 방법 정적인 파드를 생성할 node에 접속 $ ssh node01 nginx 정적인 파드 node01에 생성 $ cat > /etc/kubernetes/manifests/static-web.yaml apiVersion: v1 kind: Pod metadata: name: static-web labels: role: myrole spec: containers: - name: web.. 2023. 12. 19. Kubernetes::스케쥴링 (Scheduling) - 데몬셋 데몬셋 (Daemon Sets) 개요 클러스터 전체 노드에 특정 파드를 실행할 때 사용하는 컨트롤러이다. 간략히 말해 각 노드에 항상 떠있는 데몬을 이야기한다. DaemonSet는 모든(또는 일부) 노드가 Pod의 복사본을 실행하도록 한다. 노드가 클러스터에 추가되면 Pod가 여기에 추가된다. 클러스터에서 노드가 제거되면 해당 포드는 가비지 수집된다. DaemonSet를 삭제하면 생성된 Pod가 자동적으로 삭제된다. 용도 다음과 같은 용도로 사용할 수 있다. 모든 노드에서 클러스터 저장소 데몬 실행 모든 노드에서 로그 수집 데몬 실행 모든 노드에서 노드 모니터링 데몬 실행 시나리오 Deamonset 생성 $ cat > daemonset.yaml apiVersion: apps/v1 kind: DaemonS.. 2023. 12. 19. Kubernetes::스케쥴링 (Scheduling) - Resource Limit Resource Limit 노드에서 사용할 수 있는 리소스가 충분하지 않은 경우 kubernetes는 pod 예약을 유지하고 Pending 상태가 된다. Describe로 조회를 해보면 어떤 리소스가 부족한지 이유를 알 수 있다. Resource Requirements 파드 내의 컨테이너에 0.5 CPU 및 256Mi 메모리가 필요하다고 가정하자. 이를 컨테이너에 대한 리소스 요청이라고 한다. 파드 내의 애플리케이션에 기본 리소스보다 더 많은 리소스가 필요한 경우 파드 정의 파일에서 설정해야 한다. apiVersion: v1 kind: Pod metadata: name: simple-webapp-color labels: name: simple-webapp-color spec: containers: - n.. 2023. 12. 19. Kubernetes::스케쥴링 (Scheduling) - Node Affinity Node Affinity Node Affinity란? 쿠버네티스 클러스터의 특정 노드에 노드 어피니티를 사용해 쿠버네티스 파드를 할당하는 방법을 말한다. 노드에 레이블 추가 클러스터의 노드를 레이블과 함께 나열하자. $ kubectl get nodes --show-labels NAME STATUS ROLES AGE VERSION LABELS master.example.com Ready control-plane,master 347d v1.22.3 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master.example.com,kubernetes.io/os=linux.. 2023. 12. 19. Kubernetes::스케쥴링 (Scheduling) 수동 스케쥴링 (Manual Scheduling) 클러스터에 스케줄러가 없을 때 수동으로 처리하는 방법이다. POD에는 기본적으로 설정되지 않은 NodeName이라는 필드가 있는데 이 필드를 설정하여 수동으로 스케쥴링 하는 방법이다. apiVersion: v1 kind: Pod metadata: name: nginx labels: name: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 8080 nodeName: node02 또 다른 방법 apiVersion: v1 kind: Binding metadata: name: nginx target: apiVersion: v1 kind: Node name: node02 api.. 2023. 12. 19. Kubernetes::핵심 개념 (Core Concepts) 핵심 개념 (Core Concepts) Kubernetes Architecture (쿠버네티스 아키텍처) Master Node 구성 설명 API Server ㆍ쿠버네티스 클러스터의 모든 작업을 제어하는 REST API Controller ㆍ클러스터를 설계한 상태로 유지 (파드 개수 유지) ㆍ백그라운드에서 클러스터 컨트롤러를 관리 ㆍAPI 서버를 이용하여 클러스터 상태를 모니터링 Scheduler ㆍ노드가 배정되지 않은 새로 생성된 Pod를 감지하고 그것을 어느 Node에서 실행될지를 선택 ㆍPod를 어떻게 Node에 배치할지를 예약 ETCD ㆍ클러스터의 모든 정보를 저장하는 데이터 저장소 ㆍ고가용성을 가진 Key-Value 저장소 구조 Worker Node 구성 설명 kubelet ㆍ노드에서 실행되는 에.. 2023. 12. 19. Python 클린코드 하루가 멀다하고 기초를 더 다져야겠다고 생각하면서도 느슨해진게 없지않아 있었다. Python 코드 품질에 대해 더 심층있고 공부하고 정리하고 싶어 정리하였다. 아래 링크를 타고 들어가보자 https://everytown.co.kr/index.html https://everytown.co.kr/index.html License This document is licensed under a creative-commons NC license, so you can use the text freely for non-commercial purposes and adapt it to your needs. The only thing we ask in return is the inclusion of a link to thi.. 2023. 12. 14. 좋은 코드 만들기::코드 품질 높이기 개발자는 매번 끊임없이 자기 자신에게 과연 "무엇이 좋은 코드일까?"라는 물음표를 던진다. 개발자라면 회사에서 코딩을 하고나서 회의에서 다른 사람들 앞에서 자신이 짠 코드 리뷰를 하면서 설명하고 업무를 진행한다. 코드 리뷰를 하지 않는 회사도 있지만 대개는 코드 리뷰를 진행하여 코드 품질을 높이려고한다. 하지만 여러사람들의 의견을 나누다보면 팀원, 팀장조차도 "애매하다", "모르겠다" 등 미온적인 태도를 갖는 것을 볼 수 있다. 과연 왜 이런 태도를 갖게 되는 것일까? 왜 코드 리뷰때마다 "애매하다"고 말하는 것인가? 정말 여러 방향의 길이 있고 패턴이 있다면 "정답"이란 것을 명확히 표현할 수 없기때문에 이렇게 말하는 경우도 있다. 이럴 경우라면 다행이겠지만 정말 자신이 작성한 코드에 대해서 코드 자체.. 2023. 12. 4. 2D 게임 캐릭터들은 어떤 방식으로 움직일까? 발단Flutter를 활용해서 앱을 개발하는 것이 요즘 대세인 언어이다. 그래서 요즘에 관심을 갖고 찾아보게 되었는데 그 중에 게임을 쉽게 개발할 수 있는 Flame이라는 게임 엔진을 발견하게 되었다. 이 엔진은 무척이나 흥미로운데 이전에는 한땀한땀 개발했다면 이 엔진은 게임에 필요한 애니메이션, 동작등을 기본적으로 제공하고 있어서 게임 개발을 더 쉽게할 수 있는 기회를 제공해준다. 게임 개발은 기회가 되면 나중에 만들어보도록 하고 이 글에서는 내가 어렸을부터 궁금했던 게임 캐릭터들을 어떻게 움직이는가에 알아보고 싶었다. 실제 게임 캐릭터가 어떻게 움직이는지 보자아래 보면 Flame 튜토리얼에 나와있는 Ember Quest의 게임의 한 장면이다. 노란 캐릭터를 몇 번 움직여보자. 앞뒤로 그리고 위로 점프도.. 2023. 12. 4. Code LLM 모델과 평가방식 개요 ChatGPT가 출현함으로써 개발자에게는 AI를 활용한 코드 생산성과 효율성을 증대시켰다. 번거로운 데이터 노가다 작업을 물론 코드 생성까지 해줌으로써 더 빠르고 효율적으로 사용할 수 있게하였다. LLM (Large Language Model) 모델 중 Code에 특화된 Model을 살펴보고 어떻게 평가를 하는지 알아보고자 한다. Code LLM 모델 아래 링크를 따라서 리더보드에 들어가보면 Code LLM 모델들과 평가방법에 따른 점수가 소개되어있다. https://github.com/huybery/Awesome-Code-LLM HumanEval, MBPP, HF 등은 여러가지 평가방식인데 예를 들어 MBPP은 "초급 프로그래머 수준의 Python 프로그래밍 문제" 이다. 자세한 설명은 아래의 평.. 2023. 10. 19. GitLab 업데이트 방법 GitLib 업데이트 GitLab 업데이트시 다른 패키지들처럼 14.xxx → 16.xxx 이런식으로 2단계를 건너 띄우고 업데이트를 하지못하고 순차적으로 진행해야한다. GitLib 업데이트 예시 여기 공식 사이트 CHANGELOG.md를 보고 최초, 최종 버전을 검색할 수 있다. https://gitlab.com/gitlab-org/gitlab/blob/master/CHANGELOG.md CHANGELOG.md · master · GitLab.org / GitLab · GitLab GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review,.. 2023. 8. 10. Certbot으로 Ubuntu의 Nginx 인증서 발급 Certbot란?Certbot은 수동으로 관리되는 웹사이트에서 Let's Encrypt 인증서를 자동으로 사용하여 HTTPS를 활성화하는 무료 오픈 소스 소프트웨어 도구이다. Certbot은 전자 프론티어 재단(Electronic Frontier Foundation, EFF) 에 의해 만들어졌다. 간단히 말해서 HTTPS 인증서를 커멘드 명령어만으로 Nginx등에 설정할 수 있는 도구라고 보면된다. Let's Encrypt 인증서는 신뢰할 수 있는 인증기관인가?Let's Encrypt는 무료로 SSL/TLS 인증서를 발급하는 오픈 소스 인증 기관 중 하나로 신뢰할 수 있는 인증기관이다. 설치방법Ubuntu 22.04 공식문서를 참조하면 좋을 것이다. 설치방법은 Snap 패키지 관리자를 통한 설치를 권장하.. 2023. 8. 10. MySQL Boolean 컬럼의 진실과 주의점 개요 MySQL에서 Boolean 컬럼 타입을 사용해서 테이블을 생성하게되면 내부적으로는 TINYINT(1) 값으로 생성되는 것을 볼 수 있다. 이렇게 생성된 테이블을 조회하기 위해서는 TRUE/FALSE 또는 1/0의 값을 사용할 수 있다. 사용방법 1. 테이블 생성 아래와 같이 테이블을 생성해보자 CREATE TABLE employee ( id INT(10) AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(50), enabled BOOL ); 위와 같이 테이블을 생성해도 실제로 DDL을 보면 TINYINT(1)으로 생성된 것을 볼 수 있다. 내부적으로는 Boolean 타입 자체가 없기때문이다. mysql> SHOW CREATE TABLE employee CREATE TABLE.. 2023. 8. 7. python __str__ vs __repr__ 차이점 개요 파이썬 클래스를 사용할때 __str__ 또는 __repr__ 정의하고 사용할 때가 많다. 시간이 없고 바빠서 빼놓고 코딩할 때도 있긴하지만 정의를 해두고 사용하면 디버깅을 하거나 출력할때 유용하게 사용할 수 있다. 이 둘은 비슷해 보이지만 목적과 사용 시점에 따라 약간의 차이점을 가질 수 있다. __str__ vs __repr__ __str__ "사람이 읽을 수 있는" 친화적인 형태의 문자열 표현식이다. 사용자가 객체를 문자열로 변환하거나 print() 함수로 출력할 때 호출된다. __str__ 메서드가 정의되지 않은 경우, 파이썬은 대신 __repr__ 메서드를 호출한다. __repr__ "개발자용"의 디버깅 용도로 작성된 문자열 표현식이다. 개발자가 객체를 재생성하거나 디버깅할 때 유용한 정보를.. 2023. 8. 5. ChatGPT 탈옥 (DAN 모드) 아직도 가능한가? DAN 모드란? 각종 제약을 풀기 위해 유저들은 ChatGPT 프롬프트를 생각해 냈었고 DAN(Do Anything Now) 모드 혹은 탈옥(jailbreak) 등의 명칭으로 불리는 프롬프트를 개발하게 되었다. 막는자 vs 뚫는자 정책에 위반되는 부도덕한 프롬프트에 대해서 ChatGPT 개발진들이 탈옥에 관한 패치를 계속 내놓고 있기도 하지만 탈옥의 프롬프트 또한 계속 업데이트되면서 나오고 있는 상태이다. 막는자 vs 뚫는자 의 싸움이다. 2023년 2월 13일자 버전을 기준으로 탈옥을 통해 DAN 모드로 진입하여 질문을 해도 "AI 모델로서 가이드라인에 어긋나는 질문에는 답할 수 없습니다."라는 말로 거절한다. 아직도 막혀있는가? 2023년 8월 4일자로 아래 프롬프트를 사용하여 실험을 해봤는데 아직까.. 2023. 8. 4. 효과적인 ChatGPT Prompt Engineering 방법 프롬프트(Prompt)란?Gradient Flow의 Ben Lorica는 "프롬프트 엔지니어링은 기초 모델에서 원하는 결과를 도출하기 위해 효과적인 입력 프롬프트를 만드는 기술입니다." 라고 한다. 프롬프트 자체는 모델 출력에 대한 영향을 나타내는 모델에 대한 입력 역할을 한다. 좋은 프롬프트는 모델이 원하는 결과를 생성하도록 하는 반면, 잘못된 프롬프트에서 반복적으로 작업하면 모델의 한계와 작업 방법을 이해하는 데 도움이 된다. Prompt Engineering MethodsAndrew Ng님이 강좌 내용의 일부이며 매우 효과적인 방법의 방법이라고 생각한다. 1. Guidelines (지침)원칙 1: 명확하고 구체적인 지침 작성전략 1: 구분 기호를 사용하여 입력의 고유한 부분을 명확하게 표시 아래와 .. 2023. 8. 2. Web 3.0에 대해 알아보자 Web 3.0은 무엇인가? Web 3.0은 탈중앙화, 검증 가능성, 보안성을 추구하는 개방적이고 공정한 웹을 지향하는 혁신적인 인터넷 세대이다. 사용자의 데이터를 소유하고, 사용자 간의 상호 운용성이 높은 P2P 네트워킹 모델을 채택하여 중개자를 제거하며, 검증 가능한 사용자 경험과 다양한 분산형 애플리케이션(DApp)을 지원한다. 이를 통해 안전하고 신뢰성 있는 온라인 환경을 제공하며, 스마트 계약과 프로토콜을 활용하여 효율적인 거래를 이루어낸다. 시멘틱 웹 시멘틱 웹(Semantic Web)이라고도 불린다.기존의 웹은 단순한 텍스트와 하이퍼링크로 구성되어 있었기 때문에 기계는 해당 정보의 의미를 이해할 수 없었습니다. 하지만 시멘틱 웹은 정보를 의미론적으로 표현함으로써 기계가 그 의미를 해석하고 자동.. 2023. 8. 2. Docker Container 리소스 할당 개요 Container는 Host의 리소스 사용 제한을 받지 않는다. 그러므로 사용 제한이 없으면 호스트 리소스를 마음대로 갖다 쓸 수 있다는 이야기이다. 제한 방법 RAM 옵션 설명 --memory, -m 컨테이너 사용할 최대 메모리 양을 지정한다. 512m 이런식으로 할당이 가능하다. --memory-swap 컨테이너가 swap할 사용 메모리 영역에 대한 설정이다. memory + swap으로 반드시 메모리가 포함된 값으로 설정해야한다. (예) memory가 200m, swap이 100m이라면 300m으로 설정해야한다.) 생략시는 memory의 2배로 설정된다. --memory-reservation --memory 작은 값으로 구성해야되며 이 값까지는 soft 제한을 하겠다는 뜻 --oom-kill-.. 2023. 7. 27. 이전 1 2 3 4 ··· 7 다음 728x90 반응형