본문 바로가기
반응형

목록362

도커의 Image layer 이 글을 작성하게 된 계기는 Container를 띄울 때 Container에 생성한 파일과 디렉토리들이 어디에 저장되고 관리되는지 궁금해서 찾다가 작성하게 되었습니다. 우리는 Docker를 사용할 때 아무생각 없이 Image를 pull받아서 Docker container를 실행합니다. Docker Image를 받아오면 sha 256으로된 hash값들이 보이고 이를 pull하면서 받오게 됩니다. 저런 hash값들의 정체가 무엇인지, Container에서 파일과 디렉토리를 생성하면 어디에 저장되는지 등을 알아보려 합니다. 1. Docker image layer Docker image는 layer로 이루어져 있으며, 각 layer 계층은 모두 Read only로 구성됩니다. 그 후 마지막 layer 위에 Co.. 2023. 3. 13.
도커 볼륨/마운트 설명과 차이점. Docker를 실행하게 되면 프로세스 위에 Container가 돌아가게 됩니다. 이런 Conatainer들은 Docker image를 기반으로 만들어지고 실행됩니다. 이러한 Container들은 Image layer위에 write형식으로 데이터들을 저장하게 됩니다. 그리고 이러한 것들을 sha256 digest 형태로 저장하고 관리하게 됩니다. 저 layer는 Overlay2 드라이버로 저장되며, /var/lib/docker/image/overlay2/layerdb/sha256 경로에 저장되게 됩니다. 여기에 Container에 작성되고 저장된 모든 데이터와 파일들이 담겨있습니다. 단, Container가 지워지면 기존에 write형식으로 저장되었던 layer도 지워지게 됨으로, Image로 해당 Con.. 2023. 3. 12.
JavaScript의 Garbage Collection Garbage collection Garbage collection은 다음과 같은 형태로 발전해 왔습니다. Reference-counting garbage collection 단순한 알고리즘 방식으로 객체의 참조 횟수를 counting하여 0이 되면 메모리에서 release시키는 방식입니다. 하지만 해당 알고리즘은 순환참조(circular references)에 취약합니다. 서로가 서로를 참조해버리면 메모리에서 release가 안되며 이는 메모리 누수(Memory leak)이 발생되는 원인이 됩니다. Internet Explorer 6 and 7에는 이러한 알고리즘 방식이 사용되어 Memory leaks가 발행한다고 알려져있습니다. 최신 Garbage collection에는 해당 알고리즘을 사용하고 있지.. 2023. 2. 22.
V8 Engine의 integer, string이 메모리 어디에 할당 되는가? JavaScript는 debug하기가 어렵습니다. 때문에 node에서 컴파일러로 사용되는 V8 engine의 docs를 보거나, 여러 사람들이 작성한 Reference를 봐야합니다. 책 JavaScript Deep Dive에서 간략하게 JavaScript메모리에 대해 설명하고 있는데, 이를 좀 더 파보려고 합니다. 1. V8 Engine 메모리 구조 V8 Engine에는 기본적으로 Stack과 Heap메모리가 있으며, Literal을 저장하기위한 Constant pool이 있습니다. 2. Integer가 저장되는 방식. Integer는 기본적으로 V8 engine의 stack pointer에 저장됩니다. 저장되는 영역은 SMI(Small Integer)라는 곳에 저장되는데, 운영되는 OS에 따라 32Bi.. 2023. 1. 23.
Docker에서의 -i -t의 의미 Docker를 사용할 때, 도커 컨테이너를 실행 후 해당 컨테이너에 접근하기 위해서 위 옵션을 붙여서 사용합니다. 물론 -d(Detached)로 실행한다면 위 옵션은 필요하지 않겠죠. 그럼 -i와 -t는 무슨 역할을 하며 이거 2개의 옵션이 없으면 도커 컨테이너 내부에 접근해서 명령어를 실행하지 못할까요? 이것을 설명하기에 앞서 UNIX는 다음과 같은 말을 합니다. "everything is a file". 이 글을 읽고 저 문장이 무엇을 뜻하는지 이해하시면 성공한 겁니다~ 1. -i (STDIN) https://docs.docker.com/engine/reference/commandline/exec/ docker exec docker exec: The `docker exec` command runs a.. 2023. 1. 15.
스트리미 입사 후 회고 오랜만에 글을 작성하는 것 같습니다. 2021년 10월 31일 이후로 작성된 글이 없는 걸 보니 대략 1년 정도 블로그 활동을 안한 것 같습니다. 블로그 활동을 안한 이유는 "바쁘다" 라는 핑계를 대면서 하지 않았습니다. 어느순간 반복적인 일과 일상, 새로운 것을 배워도 반짝이고 끝, 어느 정도 여유가 생기니 발전 하는 것이 싫어졌던 것 같습니다. (배부른 돼지가 되어버렸습니다....) DevOps라는 직군으로 입사하였지만, 막상 DevOps가 무엇을 위주로 하는지는 찾아보지도 않고, 시키는 일만 열심히 했거든요. 그리고 입사전, 입사 후 간절함과 노력, 성장에 대한 욕심이 많았지만 근래 들어서 그러지 못한 것 같습니다. 물론 노력과 성장에 대한 욕심은 지금도 갖고 있지만... 예전만치 못하다?? 입니다.. 2022. 11. 13.
Part 3. DevOps vs SRE ?(공통점과 차이점) 앞선 글에서 DevOps와 SRE가 하는 역할에 대해 간략하게 적어봤습니다. DevOps : https://hwan-shell.tistory.com/361 Part 1. DevOps 란 무엇일까? DevOps란 무엇일까?... 이 글을 작성하고 있는 지금 시점에서 저는 Streami 회사에서 1년 4개월 동안 DevOps Engineer로 근무를 하고 있습니다. 하지만 아직까지도 DevOps의 정의를 설명해 보라고 누군가 질 hwan-shell.tistory.com SRE : https://hwan-shell.tistory.com/362 Part 2. SRE란 무엇일까? DevOps에 대해 공부하는 도중에 SRE란 개념이 나왔고 이 개념이 저를 햇갈리게 했습니다. DevOps == SRE 인 것 같았거든.. 2022. 10. 2.
Part 2. SRE란 무엇일까? DevOps에 대해 공부하는 도중에 SRE란 개념이 나왔고 이 개념이 저를 햇갈리게 했습니다. DevOps == SRE 인 것 같았거든요. 그래서 이 둘의 차이점을 알아내려고 이것저것 알아봤습니다. 이 둘이 의미하는 뜻은 명백히 다르지만 하는 역할은 비슷합니다. https://bcho.tistory.com/1325 블로그에서 설명을 인용하자면 "SRE implements DevOps" 입니다. 즉, 광범위한 DevOps의 문화중 일부분을 구현하는 것이 SRE입니다. SRE SRE는 Site Reliability Engineering의 약자로 처음 이 개념을 제시한 곳은 Google입니다. 해당 개념은 DevOps와 굉장히 밀접해 있으며, 추 후 DevOps vs SRE에 대해서 다룰 예정입니다. SRE의.. 2022. 9. 24.
Part 1. DevOps 란 무엇일까? DevOps란 무엇일까?... 이 글을 작성하고 있는 지금 시점에서 저는 Streami 회사에서 1년 4개월 동안 DevOps Engineer로 근무를 하고 있습니다. 하지만 아직까지도 DevOps의 정의를 설명해 보라고 누군가 질문 한다면 정확히 말할 자신이 없습니다. (단순 개발과 운영을 합친 포괄적인 의미로 설명하고 싶지 않습니다.) 하여 이 글을 통해 생각을 정리해보고자 합니다. DevOps DevOps는 Development & Operations의 합성어로 전채적인 개념을 보자면 개발과 운영을 합쳐놓은 것입니다. 또한 해당 용어는 Engineer의 뜻도 가질 수 있지만, 철학적인 뜻으로 설명되는 경우도 많습니다. 우선 철학적인 뜻으로 설명을 하자면... 지속적 통합 / 지속적 배포(CI/CD).. 2022. 9. 4.
IPad로 Vscode 작업하기. (code-server를 EC2로 띄우기) 이번에 회사에서 IPad를 받게되었는데, vscode를 설치할 수 없어서 찾다가 code-server라는 걸 발견하게 되어, 글을 작성합니다. 이 글은 AWS Cloudformation으로 VPC, Subnet, EC2, InternetGateway를 자동으로 구축합니다. 소프트웨어는 code-server를 사용했습니다.(https://github.com/cdr/code-server) GitHub - cdr/code-server: VS Code in the browser VS Code in the browser. Contribute to cdr/code-server development by creating an account on GitHub. github.com ※ 제가 설명드린 순서대로 안하면 ng.. 2021. 10. 31.
pagoda 3-week 나는 모르겠어. : i don't know / i'm not sure / (i have) no idea + (where he is). / i'm so lost. 맛집 : famous restaurant 시험 5개 쳤고, 1개 남았어~ : five down, one to go! = what do you do (for a living)? 동사가 ch, k + ed 라면, 발음은 /t/ 로 발음. ex) Watched, Talked, Walked 왜 이렇게 차려 입었어? : Why are you dressed up? 1시간 반 : one and half hours. 보통 3시간 반정도 걸린다. : It usually takes three and half hours. 내가 저번에 말한 것 처럼: As I tol.. 2021. 10. 24.
pagoda 2-week Commonly used expressions. 1. need to + V : ~해야 한다. When do you need it by? 언제까지 필요해? When do you need it by? Would it be okay if I give you Monday Morning? 언제까지 필요해? 내가 월요일 오전에 줘도 될까? 2. There is no need to + V : ~할 필요가 없다. There is no need to feel sorry. I'm the one who wanted! 미안해할 필요 없어. 내가 원해서 한건데 뭘. - one who wanted! 는 강조의 의미. 3. Needy : 애정 결핍, 절실한. I don't want to look so needy. 엄청 원하는 것처.. 2021. 10. 24.
프로그래머스] C++ 위클리 챌린지 9주차 해당 문제는 프로그래머스 코딩테스트 연습에 있는 문제입니다. 아래 링크를 통해 풀 수 있습니다. https://programmers.co.kr/learn/courses/30/lessons/86971 1. 문제 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세.. 2021. 10. 10.
Shell script STDOUT vs STDERR (2>&1) Bash shell에서는 표준출럭(stdout) 과 표준에러(stderr)이 있습니다. 서로 출력을 해주는 것이지만 성격이 다릅니다. 이것들을 설명해보고자 합니다. 1.File descriptor STDIN 0 STDOUT 1 STDERR 2 파일 디스크립터는 파이프, FIFO, 소켓, 터미널, 디바이스, 일반파일 등 종류에 상관없이 모든 열려있는 파일을 참조할때 쓴다. 2. STDOUT vs STDERR 해당 출력은 stdout에 해당될까? stderr에 해당될까? 답은 stdout에 해당되는 출력입니다. 해당 출력은 stderr에 해당되는 출력입니다. 두개의 공통점은 출력을 해주고 있는 것이죠. 하지만... 쉘 스크립트를 만들어 실행시키다 보면 해당 문구가 정상 출력 문구인지, 에러 출력 문구인지 구.. 2021. 9. 26.
docker cli vs Dockerfile vs docker-compose 1. Docker docker cli는 단일 컨테이너를 위한 명령어들을 제공합니다. 예를들어 이미지를 생성하려면, $ docker pull [IMAGE] 컨테이너를 생성하려면 $docker create [OPTIONS] IMAGE [COMMAND] 즉, 단일 컨테이너에 대해서 만들거나, 실행하거나 하는 용도로 사용되는 명령어입니다. 2. Dockerfile 도커 파일은 이미지를 생성할 때, 해당 이미지 안에 기본적으로 어떤 소프트웨어를 설치할지 결정하는 도구입니다. 예를들어 $ docker pull ubuntu 를 사용하여 이미지를 받으면 우분투만 들어있는 깡통 이미지만 받아와 집니다. 해당 이미지에 저희는 컨테이너를 만들고 접속하여 원하는 소프트웨어를 설치하는 작업을 거쳐야 합니다. 하지만 Docker.. 2021. 9. 19.
반응형

스킨편집 -> html 편집에서