일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 타입스크립트
- cors
- 해시테이블
- APOLLO
- 릿코드
- 포인터
- RT scheduling
- alexnet
- RxJS
- C
- 프론트엔드
- 연결 리스트
- 자료구조
- 스택
- 큐
- 프로세스
- 배열
- 브라우저
- vue3
- Machine Learning
- 웹팩
- pytorch
- 이진탐색
- 코딩테스트
- 컨테이너
- 연결리스트
- 프로그래머스
- 자바스크립트
- GraphQL
- 알고리즘
- Today
- Total
목록전체 글 (164)
프린세스 다이어리
1. 쿠버네티스가 무엇인가요? 쿠버네티스란 리눅스 컨테이너 작업을 자동화하는 플랫폼이다. 이전까지 도커 컨테이너 기술이 무엇이고 왜 필요한지 알아보았지만, 현실에서는 웹 애플리케이션에서 수십, 수백 개로 세분화된 컨테이너와 컨테이너화 된 앱이 점점 더 많아지고 복잡성이 증가하게 되면 이 컨테이너들을 어떻게 관리할지 고민이 시작이 된다. 쿠버네티스는 이 컨테이너화 된 개별 애플리케이션들을 배포하고 확장하는 데 도움을 주기 위해, 자동으로 컨테이너를 그룹으로 묶고 적절한 서버에 배포되도록 한다. 여러 컨테이너를 묶은 것을 포드(Pod)라고 하고, 여러 대의 서버에 각 컨테이너를 적절히 배치하고 관리하는 것을 오케스트레이션(Orchestration)이라고 한다. 컨테이너를 관리하는 플랫폼은 이전에도 여러 개가..
도커 이미지는 불변의 내용과 업데이트한 내용이 각각 계층화되어 있다는 점에서 이미지 수정과 운영이 용이하다. 이 때문에 도커 허브에서 다양한 애플리케이션을 내려받아 바로 개발을 할 수 있다는 장점이 생긴다. 도커의 장점과 함께 정리해보았다. 1. 도커 이미지 레이어(layer) 앞서 도커 이미지에 대한 글에서, 도커 이미지란 컨테이너 실행에 필요한 설정값이 포함되어 있는 불변성(immutable)을 가진 기술이라고 언급했다. 도커 이전에도 LXC(리눅스 컨테이너, Linux Container)컨테이너 기술은 있었다. 도커 또한 LXC 기술을 기반으로 발전하였지만, 컨테이너를 실행하는 것 이상의 기능을 제대로 제공하지는 못했다. 컨테이너의 환경을 완전하고 효율적으로 복원하는 기능을 보완하여 이후에는 자체적..
최근 가장 많이 사용되고 있는 가상화 기술은 컨테이너다. 컨테이너를 관리하는 플랫폼 중에서 가장 많이 쓰이고 있는 도커에 대해서 공부해보았다. 1. 도커란? 도커는 컨테이너를 만들고 사용할 수 있도록 도와주는 컨테이너 플랫폼이다. 앞서 알아보았듯 컨테이너란 한 운영체제 여러 애플리케이션을 개별적으로 실행하고 관리하도록 도와주는 기술 중 하나다. 도커는 Cgroups나 Namespace, runC 등의 리눅스 커널이 제공하는 기능 위에 빌드되기 때문에, 독립적인 컨테이너들이 하나의 리눅스 인스턴스 안에서 커널을 공유하며 격리되어 실행할 수 있도록 한다. 여기서 커널이라는 것은 OS가 응용 프로그램을 실행하기 위해 필요한 여러 가지 기능을 제공하는 핵심 프로그램 중 하나다. 정리하면 도커는 한 OS 안에서 ..
가상 머신과 컨테이너는 부팅 속도, 메모리 사용량, 자원의 격리와 쿼터 제한, 호스트 OS 환경에 종속적인지 등에서 차이점이 있다. 1. 가상 머신 vs 컨테이너 기술 장단점 비교 컨테이너는 호스트OS의 커널을 공유하면서 격리된 컴퓨팅 자원을 제공하는 가상화 기술이다. 가상 머신은 하이퍼바이저와 같은 소프트웨어로 하드웨어를 에뮬레이팅 하고, 그 위에 게스트 OS를 설치하는 방식으로 격리된 컴퓨팅 자원을 제공하는 반면, 컨테이너는 호스트 OS만 필요로 하고, 커널을 공유하여 별도의 프로세스가 동작하는 기술이다. 1-1. 부팅 속도 차이 가상머신을 사용하면, 가상 하드웨어를 준비하고 그 위에 게스트 OS를 부팅하는 시간이 오래 걸린다. 반면 컨테이너는 게스트 운영체제라는 개념이 없고, 컨테이너 플랫폼 위에 ..
내가 공부하고 이해한 대로 쉽게 정리한 가상화의 의미와 가상화 기술 종류, 가상머신의 문제점에 대한 내용. 1. 가상화의 의미 가상화는 컴퓨터 리소스를 추상화한다는 광범위한 의미를 가진다. 위키백과에는 "물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 리소스와 상호작용하는 방식으로부터 감추는 기술"이라고 정의되고 있다. 물리적 하드웨어는 은폐하고, 사용자에게는 논리적인 리소스를 제공하여 사용자는 실제 컴퓨터처럼 보이는 것을 말한다. 말이 뭔가 막연하고 복잡하지만, 흔히 가상화라는 건 하나의 물리적 리소스 위에서 여러 OS를 동시에 실행할 수 있도록 한다는 의미로 통용되는 듯하다. 옛날옛적 인텔이 개발한 x86 아키텍쳐에서는 한 개의 x86 서버에 1개의 운영체제(Operat..
웹팩의 핵심 구성 요소 1. entry - 웹 애플리케이션이 App.js라는 파일 내부에 선언된 여러 모듈들로 실행이 된다면, App.js 가 웹팩의 Entry 파일인 것. 즉 각 모듈들이 바라보는 최상위 자바스크립트 파일(App.js)을 중심으로 번들링 된다고 보면 됨. - 선언 방법은 어플리케이션의 루트 경로(node_modules 있는 경로)에 webpack.config.js 파일을 만들고 그 내부에 정의하면 됨. module.exports = { entry: './src/index.js' } 또한 엔트리 포인트가 2개 이상일 경우도 있음. entry: { login: './src/LoginView.js', main: './src/MainView.js' } - React나 Vue 프레임워크로 작업한..
실무에서 Vue를 이용해서 개발하다 보니 프로젝트 생성 시부터 웹팩이 이미 포함되어 있었고, 기초를 모르니 원하는 설정을 인터넷에서 찾아 짜깁기하는 수준에 그치게 되었다. 그래서 추후 연관된 문제해결을 위해 웹팩 기초를 처음부터 공부하고자 한다. 웹팩이란 여러 개 파일을 하나의 파일로 합쳐주는 모듈 번들러. - 모듈 번들러란 html, css, js, json, svg, ... 등의 자원을 모두 각각의 모듈로 보고, 이를 조합해서 하나의 결과물로 번들링하는(빌드하는) 도구임. 모듈 번들러가 필요하게 된 이유는 최근 복잡한 웹 애플리케이션의 등장과 관련이 있음. - 거대한 자바스크립트 소스코드와 대규모 의존성 트리를 가지고 있는 대형 웹 애플리케이션이 등장함에 따라, 각각의 세분화된 모듈 파일이 무작위로 ..
오류의 종류를 나누는 이유 오류를 최대한 빨리 고치기 위해서. - 어디서 오류가 났는지 알면 빠르게 대처할 수 있음. 논리 오류가 난 소스에서 구문이 잘못되었는지 볼 필요는 없다. 1. 컴파일 에러(Compile Error) 문법오류(Syntax Error) 등이 해당됨. 파싱 에러(Parsing Error)라고도 불림. 컴파일하는 동안에 발생하기 때문에 다른 스레드에는 전혀 영향 주지 않음. - 컴파일러/인터프리터가 소스 코드를 바이트 코드로 변환하면서 발견한 오류를 출력함 - 컴파일 시에 에러 메시지로 오류의 위치를 알려주기 때문에 찾기 쉬운 에러임 - 수정되지 않으면 프로그램은 컴파일되지 않음 - 해당 오류 코드가 포함된 동일 쓰레드 상에만 오류 처리가 되고, 다른 쓰레드의 코드는 오류가 없는 것처..