전체 글 208

컨테이너와 가상머신의 차이점

1. 가상 머신(Virtual Machine) 가상 머신은 하드웨어 기반의 여러 게스트 운영 체제로, 하이퍼바이저를 통해 에뮬레이션 된다. 쉽게 설명을 하면 Host OS위에 Guest OS를 가상화 하는 방식이다. 2. 컨테이너(Container) 컨테이너는 애플리케이션 수준 구성이며 커널 하나를 공유하는 여러 가상 환경을 에뮬레이션 한다. 가상머신의 가상화 방식은 무겁고 성능 문제가 발생하기에 프로세스를 격리하는 방안이다.아래 그림에서 비교할수 있는것처럼, VM의 중간 Guest OS와 하이퍼바이저 부분을 도커 엔진이 담당해준다.OS overhead가 없으니 Start Time도 빠르고 자원 효율성이 높다. 가장 큰 장점으로는 Host OS가 어느것이든지 상관없이 도커 엔진만 있으면 배포될 수가 있다..

Cloud 2021.08.12

(네트워크 장비) 허브, 스위치, 라우터의 특징

허브, 스위치, 라우터, 공유기는 모두 네트워크를 구축하는데에 사용하는 장비들이다. 그러나 각각의 기능이나 용도가 다르므로, 이에대해 정리해보고자 한다. 1. 허브(Hub) 허브는 단순 분배를 하는 중계 장치로써, 여러대의 컴퓨터를 연결하여 네트워크를 만들어 줄 수 있다. 데이터 패킷을 받으면 연결된 모든 장치들에게 보낸다. 모든 장치들이 데이터 패킷을 받고, 자신에게 온 데이터 패킷인지 확인하고 필요하면 취득한다. 2. 스위치(Switch) 위치는 연결된 장치들의 IP와 MAC 주소를 모두 테이블 형태로 가지고, 원하는 목적지에 데이터 패킷을 전송하는 장치이다. 허브와 달리 스위치는 무작정 데이터 패킷을 뿌리는 것이 아니라, IP와 MAC 주소를 기반으로 필요한 장치에게만 데이터 패킷을 전송해준다. 3..

Network 2021.08.01

루트 권한 사용 - sudo와 su의 차이점

1. 개요 만일 root권한으로 curl을 설치해야할 일이 생겼다고 가정해보자. sudo apt install curl su (계정전환) → apt install curl 이런 여러 방법으로 설치할 때가 있는데, 이들의 각각 차이점을 알아보고자 한다. 2. sudo와 su의 차이점 sudo → 현재 계정에서 단순히 root의 권한만 빌린다. root권한을 이용하여 접근 권한을 얻고 명령어를 실행할 수 있도록 슈퍼유저로서의 액세스를 돕는다. su → root계정으로 전환한다. su(substisute user) 명령어는 로그아웃 없이, 다른 사용자로 로그인을 가능하게하는 리눅스 명령어로, 파라미터가 없이 "su" 를 입력하면 "su root"와 동일하다. su와 su - 는 root계정으로 전환한다는 점에..

Server/Linux 2021.08.01

서브넷 마스크 의미 ('/24', '/32') ?

1. 개요 IP 주소 뒤에 24, 32... 이렇게 쓰여있는데 이건 어떤 의미일까? ex) 192.168.1.0/24 ex) 192.168.1.0/32 2. 서브넷 마스크에 대해 위의 표기법은 IP 주소의 범위를 표현하기 위한 방식이다. 뒤에 '/24'는 0~ 255까지 ( 192.168.1.0 ~ 192.168.1.255) 까지의 범위를 표현하는것이다.) '/32' 의 경우는 192.168.1.0 하나만 표현하는 것이다. IP주소는 2^32 비트 숫자이다. 255.255.255.255는 이진수 11111111 11111111 11111111 11111111이 되는것. 24나 32는 이진수의 몇자리까지 으로 두는지에 대한 정의이다. 24라고 하면, 앞에서부터 24비트가 고정이 되는것이다. 서브넷마스크는 ..

Network 2021.07.23

OPEN STACK 구성요소

회사에서 OPEN STACK (클라우드 컴퓨팅 오픈소스) 관련 프로젝트를 담당하게 되면서, 구성요소 용어정리를 하고자 포스팅 한다. 1. OpenStack이란? OpenStack은 풀링된 가상 리소스를 사용하여 프라이빗 및 퍼블릭 클라우드를 구축하고 관리하는 오픈소스 플랫폼입니다. OpenStack 플랫폼을 포함하는 툴, 일명 “프로젝트”는 컴퓨팅, 네트워킹, 스토리지, Identity 및 이미지 서비스의 핵심 클라우드 컴퓨팅 서비스를 처리합니다. 또한 수십 개 이상의 옵션 프로젝트를 번들로 묶어 배포 가능한 고유의 클라우드를 생성할 수도 있습니다. 가상화에서는 다양한 벤더별 프로그램에서 스토리지, CPU, RAM과 같은 리소스를 추상화해 하이퍼바이저를 통해 분할한 다음 필요에 따라 배포합니다. Open..

Cloud/Openstack 2021.07.21

2021년 상반기, KT에서 과제를 마치며..

2021년, 지난 2월 중순부터 6월말일까지 KT로 파견 되어 과제를 수행하였다. 정확한 과제내용은 보안관련 서약 내용때문에 기술할수 없고, Java Springframework로 구성된 WAS서버와 Vue로 구성된 웹페이지를 도맡아 하게 되었다. 처음 개발환경 세팅부터.. 과제 파악하는 과정에서 정말 정신없는 시간을 지냈던 것 같다. 어찌어찌 보면 다 작년에 했던 frontend, backend 작업들인데, 망분리 환경에서 오프라인 개발 및 빌드 환경을 세팅하는데 애를 참 많이 먹었던 것 같다. 몸과 마음은 고생을 많이 했지만, 그만큼 값진 경험들을 가질수 있었다. 이 포스팅에서는 내가 이번 기회에 배웠던 점 몇가지를 정리해보고자 한다. 1. 메일(전자매체)의 중요성 메일은 생각보다 훨씬 중요하고 의미..

Record/IT Diary 2021.07.11

소프트웨어, 누가 이렇게 개떡같이 만든거야

바로 이 책의 이름이다. 천안 알라딘 도서관 서점에서 책좀 둘러보다가 제목이 눈에 띄어서 샀다 ㅋㅋㅋ 비록 2008년에 지어진(무려 13년전...) 책이지만, 참 배울점이 많아 몇가지 적어보았다. 제어와 사용 편의성 저는 회사에서 강의를 할 때면 항상 수동변속기어 자동차를 모는사람(저처럼)이 얼마나 되는지 물어봅니다. 보통 수강생의 반 정도가 손을 듭니다. 그러면, 저는 부인이 동의한다거나 또는 저처럼 늙다리 퇴물이 되어 미니밴을 몰아야 할 처지가 되면 수동 기어 자동차를 몰 생각이 있는지 물어봅니다. 처음에 손을 들지 않았던 나머지 수강생들 중 대략 반 정도가 손을 듭니다. 이제 너는 다음과 같은 질문을 합니다. "수동 기어가 자동 기어에 비해 배우기도, 사용하기도 어렵지만 제대로만 조작한다면 마음대로..

Record/IT Diary 2021.07.11

Java로 간단한 콘솔 연락처 프로그래밍

1.개요 친한 형님께서 학원에서 숙제를 받으셔서 작은 도움을 요청하셨다. 도움을 드리는 김에 이 주제로 한번 포스팅을 해보고자 한다! 목표: 자바로 개발하여 콘솔에서 다룰수있는 간단한 연락처 (입력, 조회, 검색, 삭제) 기능 개발 2. 구현코드 2.1 Student Class Class의 이름은 Student이고, 멤버변수(속성) 으로 String type의 name, phone, birth가 있다. 각각의 getter, setter 메서드가 있고, showInfo()메서드를 호출하면 해당 멤버변수의 값들을 print로 출력한다. class Student{ //멤버변수 private String name, phone, birth; //생성자 Student(String name, String phone,..

Java 2021.07.09

[Angular] Angular v9.0.7 설치

1. 설치환경 본 문서는 다음과 같은 환경을 기준으로 작성되었다. 1) 운영체제 : 우분투18.04 버전 2) 사용자 계정 권한 : 관리자. 관리자 계정이 아닌경우 각 명령어 앞에 "sudo" 를 포함해서 실행. 2. 사전 조건 Angular 버전 v9.0.7 를 설치하기 위해서는 NodeJS(v10.13.0 이상)와 NPM(v6.11.0 이상)이 설치되어있어야 한다. 다음은 NodeJS와 NPM 설치를 설명한다. 1) NodeJS 설치 Angular공식 문서(https://angular.io/guide/setup-local) 에는 node 10.13.0 버전 이상 버전 사용을 요구 하고 있고, 본 문서에서는 12.16.1 LTS(Long Term Support) 버전을 설치하는 것을 기준으로 한다. 가..

반응형