전체 글
많은 것을 알고 싶고 변화하는 나의 과정을 기록하고, 공유 하는
-
지금까지 도커를 사용하는 방법에 대해 알아보았습니다. 가장 먼저 알아야 할 컨테이너부터 시작해서 컨테이너의 밑바탕이 되는 이미지, 이미지를 생성할 수 있는 Dockerfile을 알아보았습니다. 그렇다면 이제는 도커 자체를 다뤄볼 차례입니다. 도커 자체에 사용할 수 있는 여러 옵션을 익히면 컨테이너와 이미지를 좀 더 쉽게 사용할 수 있을뿐더러 도커를 이용한 개발이 수월해집니다. 도커의 구조 도커는 /usr/bin/docker 에 위치한 파일을 통해 사용되고 있습니다. 컨테이너와 이미지를 다루는 명령어는 /usr/bin/docker 에서 실행되지만 도커 엔진의 프로세스는 /usr/bin/dockerd 파일로 실행되고 있습니다. docker 명령어가 실제 도커 엔진이 아닌 클라이언트로서의 도커이기 때문입니다...
6. 도커 데몬지금까지 도커를 사용하는 방법에 대해 알아보았습니다. 가장 먼저 알아야 할 컨테이너부터 시작해서 컨테이너의 밑바탕이 되는 이미지, 이미지를 생성할 수 있는 Dockerfile을 알아보았습니다. 그렇다면 이제는 도커 자체를 다뤄볼 차례입니다. 도커 자체에 사용할 수 있는 여러 옵션을 익히면 컨테이너와 이미지를 좀 더 쉽게 사용할 수 있을뿐더러 도커를 이용한 개발이 수월해집니다. 도커의 구조 도커는 /usr/bin/docker 에 위치한 파일을 통해 사용되고 있습니다. 컨테이너와 이미지를 다루는 명령어는 /usr/bin/docker 에서 실행되지만 도커 엔진의 프로세스는 /usr/bin/dockerd 파일로 실행되고 있습니다. docker 명령어가 실제 도커 엔진이 아닌 클라이언트로서의 도커이기 때문입니다...
2023.12.07 -
미들웨어란, 운영 체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하며 분산 컴퓨팅 환경에서 컴퓨터와 컴퓨터간의 연결을 안전하고 용이하게 해주는 전반적 관리를 도와주는 소프트웨어입니다. 응용소프트웨어가 운영체제로부터 제공받은 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어입니다. 다시 말해, 서로 다른 기종의 하드웨어나 프로토콜, 통신환경 등을 연결하여, 응용프로그램과 그 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있게 하는 소프트웨어를 말하며, 특정 정보 시스템 환경에서 작동할 수 있도록 지원해주는 역할을 한다고 이해할 수 있습니다. OS는 기본적인 기능 밖에 없기 때문에, 단독으로 할 수 있는 일은 많지 않습니다. 미들웨어가 있으면 복잡한 처리가..
4. 질문 (Middleware)미들웨어란, 운영 체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하며 분산 컴퓨팅 환경에서 컴퓨터와 컴퓨터간의 연결을 안전하고 용이하게 해주는 전반적 관리를 도와주는 소프트웨어입니다. 응용소프트웨어가 운영체제로부터 제공받은 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어입니다. 다시 말해, 서로 다른 기종의 하드웨어나 프로토콜, 통신환경 등을 연결하여, 응용프로그램과 그 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있게 하는 소프트웨어를 말하며, 특정 정보 시스템 환경에서 작동할 수 있도록 지원해주는 역할을 한다고 이해할 수 있습니다. OS는 기본적인 기능 밖에 없기 때문에, 단독으로 할 수 있는 일은 많지 않습니다. 미들웨어가 있으면 복잡한 처리가..
2023.12.06 -
서버 자동 추가 및 제거 Amazon Ec2 Auto Scaling 기능을 사용하면 서버 추가 및 제거를 부하 상황에 맞게 수행할 수 있다. 서버를 추가하는 것을 스케일 아웃, 제거하는 것을 스케일 인이라고 한다. CPU사용률에 맞춰 서버를 추가하거나 CPU를 추가할 수 있다. 시작 템플릿에 AMI 정보와 서버가 추가될 조건을 설정하면 조건에 맞춰 서버가 자동으로 추가된다. 목표 사용률을 지정해 지정한 값을 유지하게끔 인스턴스 수를 자동으로 조절하는 대상 추적 조정 정책이라는 기능도 있다. 예를 들어 평균 CPU 사용률을 50%가 되도록 목표를 지정하면 대상 추적 조정 정책은 CPU 사용률을 감시해 50%를 넘으면 인스턴스를 추가한다. 반대로 CPU 사용률이 많이 내려가면 인스턴스를 줄인다. 서버 자원의..
3. 컴퓨팅 서비스(하)서버 자동 추가 및 제거 Amazon Ec2 Auto Scaling 기능을 사용하면 서버 추가 및 제거를 부하 상황에 맞게 수행할 수 있다. 서버를 추가하는 것을 스케일 아웃, 제거하는 것을 스케일 인이라고 한다. CPU사용률에 맞춰 서버를 추가하거나 CPU를 추가할 수 있다. 시작 템플릿에 AMI 정보와 서버가 추가될 조건을 설정하면 조건에 맞춰 서버가 자동으로 추가된다. 목표 사용률을 지정해 지정한 값을 유지하게끔 인스턴스 수를 자동으로 조절하는 대상 추적 조정 정책이라는 기능도 있다. 예를 들어 평균 CPU 사용률을 50%가 되도록 목표를 지정하면 대상 추적 조정 정책은 CPU 사용률을 감시해 50%를 넘으면 인스턴스를 추가한다. 반대로 CPU 사용률이 많이 내려가면 인스턴스를 줄인다. 서버 자원의..
2023.12.06 -
AWS뿐 아니라 어떤 시스템에서도 반드시 있어야 하는 것이 시스템 처리를 실행할 컴퓨터이다. AWS에서는 가상 서버인 EC2와 컨테이너 서비스인 ECS 등 폭 넓은 컴퓨팅 서비스를 제공한다. 네트워크를 데이터나 서비스를 제공하는 컴퓨터를 서버, 그 서비스를 이용하는 프로그램을 클라이언트라고 한다. 예로 웹 사이트를 제공하는 컴퓨터가 서버고, 웹 브라우저가 클라이언트다. 웹 서버 웹 서버는 웹 페이지 자체의 구조를 만드는 HTML 파일과 디자인을 정의하는 CSS 파일, 사이트에 표시되는 이미지 파일 등 서비스 제공에 필요한 데이터가 저장된다. 웹 사이트를 구성하는 데 필요한 데이터를 저장하고 시스템을 제어하는 프로그램을 설치한 서버를 웹 서버라고 한다. AWS에서 웹 서버를 구축하는 경우 EC2와 ECS로..
2. 컴퓨팅 서비스(상)AWS뿐 아니라 어떤 시스템에서도 반드시 있어야 하는 것이 시스템 처리를 실행할 컴퓨터이다. AWS에서는 가상 서버인 EC2와 컨테이너 서비스인 ECS 등 폭 넓은 컴퓨팅 서비스를 제공한다. 네트워크를 데이터나 서비스를 제공하는 컴퓨터를 서버, 그 서비스를 이용하는 프로그램을 클라이언트라고 한다. 예로 웹 사이트를 제공하는 컴퓨터가 서버고, 웹 브라우저가 클라이언트다. 웹 서버 웹 서버는 웹 페이지 자체의 구조를 만드는 HTML 파일과 디자인을 정의하는 CSS 파일, 사이트에 표시되는 이미지 파일 등 서비스 제공에 필요한 데이터가 저장된다. 웹 사이트를 구성하는 데 필요한 데이터를 저장하고 시스템을 제어하는 프로그램을 설치한 서버를 웹 서버라고 한다. AWS에서 웹 서버를 구축하는 경우 EC2와 ECS로..
2023.12.05 -
AWS는 Amazom.com에서 운영하는 클라우드 서비스이다. 어떠한 시스템을 구축하기 위해서는 컴퓨터와 DB 같은 기능이 필요한데, 이런 기능을 인터넷을 통해 이용할 수 있게 해주는 서비를 클라우드 서비스라고 한다. AWS처럼 누구나 사용할 수 있는 클라우드를 개방형 클라우드라 한다. 이외에 구글에서 운영하는 GCP, Microsoft Azure 등이 있다. 온프레미스란 사용자가 관리하는 시설 내에 서버 등의 기기를 설치해 운용하는 환경이다. AWS와 같은 클라우드 서비스가 등장하기 전에는 정보 시스템을 구축하기 위해 자체적으로 관련 기기를 준비하고 설정해야 했다. 이런 기기를 설치하고 운영하는 시설을 데이터 센터라한다. 클라우드는 클라우드 서비스 제공자가 서버 등의 기기를 준비하고 거기에 구축된 가상..
1. AWS 기초지식AWS는 Amazom.com에서 운영하는 클라우드 서비스이다. 어떠한 시스템을 구축하기 위해서는 컴퓨터와 DB 같은 기능이 필요한데, 이런 기능을 인터넷을 통해 이용할 수 있게 해주는 서비를 클라우드 서비스라고 한다. AWS처럼 누구나 사용할 수 있는 클라우드를 개방형 클라우드라 한다. 이외에 구글에서 운영하는 GCP, Microsoft Azure 등이 있다. 온프레미스란 사용자가 관리하는 시설 내에 서버 등의 기기를 설치해 운용하는 환경이다. AWS와 같은 클라우드 서비스가 등장하기 전에는 정보 시스템을 구축하기 위해 자체적으로 관련 기기를 준비하고 설정해야 했다. 이런 기기를 설치하고 운영하는 시설을 데이터 센터라한다. 클라우드는 클라우드 서비스 제공자가 서버 등의 기기를 준비하고 거기에 구축된 가상..
2023.12.05 -
신장 트리란? 그래프의 모든 정점과 간선의 부분 집합으로 구성되는 트리를 말합니다. 사이클이 안 생기는 조건 안에서 간선의 개수를 정점 - 1개로 골라 만드는 것으로, 정점 - 1의 수가 간선의 수가 되는 트리입니다. 최소 비용 신장 트리란? 신장 트리 중에서 간선들의 합이 최소인 트리입니다. 또한 무향 가중 그래프에서 만들어질 수 있고 사이클이 발생되지 않으며 비용의 합이 최소인 트리입니다. 최소 비용 신장 트리의 특징 무방향 가중치 그래프입니다. 가중치의 합이 최소입니다. 정점 n개에서 n - 1개의 간선을 가지는 트리입니다. 사이클이 포함되서는 안됩니다. 최소 비용 신장 트리의 사용 도로망, 통신망, 유통망 등 여러 분야에서 비용을 최소로 해야하는 경우에 유용하게 사용됩니다. 최소 비용 신장 트리를..
Kruskal vs Prim신장 트리란? 그래프의 모든 정점과 간선의 부분 집합으로 구성되는 트리를 말합니다. 사이클이 안 생기는 조건 안에서 간선의 개수를 정점 - 1개로 골라 만드는 것으로, 정점 - 1의 수가 간선의 수가 되는 트리입니다. 최소 비용 신장 트리란? 신장 트리 중에서 간선들의 합이 최소인 트리입니다. 또한 무향 가중 그래프에서 만들어질 수 있고 사이클이 발생되지 않으며 비용의 합이 최소인 트리입니다. 최소 비용 신장 트리의 특징 무방향 가중치 그래프입니다. 가중치의 합이 최소입니다. 정점 n개에서 n - 1개의 간선을 가지는 트리입니다. 사이클이 포함되서는 안됩니다. 최소 비용 신장 트리의 사용 도로망, 통신망, 유통망 등 여러 분야에서 비용을 최소로 해야하는 경우에 유용하게 사용됩니다. 최소 비용 신장 트리를..
2023.12.02 -
ADD vs COPY Copy는 로컬 디렉터리에서 읽어 들인 컨텍스트로부터 이미지에 파일을 복사하는 역할을 합니다. 사용하는 형식은 ADD와 같습니다. 하지만 COPY는 로컬의 파일만 이미지에 추가할 수 있지만 ADD는 외부 URL 및 tar 파일에서도 파일을 추가할 수 있다는 점에서 다릅니다. 즉 COPY 기능이 ADD에 포함되는 것 입니다. 그러나 ADD를 사용하는 것은 그다지 권장하지 않습니다. ADD로 URL이나 tar 파일을 추가할 경우 이미지에 정확히 어떤 파일이 추가될지 알 수 없지만, COPY는 로컬 컨텍스트로부터 파일을 직접 추가하기 때문에 빌드 시점에서도 어떤 파일이 추가될지 명확합니다. ENTRYPOINT vs CMD CMD는 컨테이너가 시작될 때 실행할 명령어를 설정합니다. 이는 d..
5. Dockerfile 명령어ADD vs COPY Copy는 로컬 디렉터리에서 읽어 들인 컨텍스트로부터 이미지에 파일을 복사하는 역할을 합니다. 사용하는 형식은 ADD와 같습니다. 하지만 COPY는 로컬의 파일만 이미지에 추가할 수 있지만 ADD는 외부 URL 및 tar 파일에서도 파일을 추가할 수 있다는 점에서 다릅니다. 즉 COPY 기능이 ADD에 포함되는 것 입니다. 그러나 ADD를 사용하는 것은 그다지 권장하지 않습니다. ADD로 URL이나 tar 파일을 추가할 경우 이미지에 정확히 어떤 파일이 추가될지 알 수 없지만, COPY는 로컬 컨텍스트로부터 파일을 직접 추가하기 때문에 빌드 시점에서도 어떤 파일이 추가될지 명확합니다. ENTRYPOINT vs CMD CMD는 컨테이너가 시작될 때 실행할 명령어를 설정합니다. 이는 d..
2023.12.02 -
Proxy : 일종의 대리자. 개발할 때 특정한 Interface를 노출시키지 않고, 외부로부터 감추고 싶을 때 사용하는 것이 바로 Proxy 패턴입니다. 하지만 Spring에서 지원하는 Proxy와 디자인 패턴에서의 Proxy 패턴은 다릅니다. 일반적으로 Proxy는 실제 Target의 기능을 대신 수행하면서, 기능을 확장하거나 추가하는 실제 객체를 의미한다. Proxy 패턴은 Target에 대한 기능을 확장하지는 않고, Client가 Target에 접근하는 방식을 변경해준다. Proxy를 사용하는 이유는 OCP, SRP를 지키키 위해서 입니다. 프록시 패턴을 통해 프록시 코드를 구현할 수 있다. 쉽게 말해 1) 클라이언트가 타깃에 접근하는 방법을 제어할 때 예로 JPA의 지연로딩 2) 타깃에 부가적인..
3. 질문 (Proxy & SpringBoot)Proxy : 일종의 대리자. 개발할 때 특정한 Interface를 노출시키지 않고, 외부로부터 감추고 싶을 때 사용하는 것이 바로 Proxy 패턴입니다. 하지만 Spring에서 지원하는 Proxy와 디자인 패턴에서의 Proxy 패턴은 다릅니다. 일반적으로 Proxy는 실제 Target의 기능을 대신 수행하면서, 기능을 확장하거나 추가하는 실제 객체를 의미한다. Proxy 패턴은 Target에 대한 기능을 확장하지는 않고, Client가 Target에 접근하는 방식을 변경해준다. Proxy를 사용하는 이유는 OCP, SRP를 지키키 위해서 입니다. 프록시 패턴을 통해 프록시 코드를 구현할 수 있다. 쉽게 말해 1) 클라이언트가 타깃에 접근하는 방법을 제어할 때 예로 JPA의 지연로딩 2) 타깃에 부가적인..
2023.11.30