본문 바로가기
반응형

프로그래밍174

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.
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.
Local stack 이란? 1. Local stack 이란? Site : https://localstack.cloud/ LocalStack Develop and test your cloud apps offline. localstack.cloud Github : https://github.com/localstack/localstack GitHub - localstack/localstack: 💻 A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps of 💻 A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline! - .. 2021. 9. 19.
Golang 변수 초기화와 정의된 데이터 타입, 함수 Golang의 특징중 하나는 무조건 변수의 초기값이 할당된다는 것입니다. 즉, 쓰레기 값이 없습니다. 또한 이미 정의된 키워드(int, true, float32 etc...) 들도 있으며, 이에 대해 설명하고자 합니다. 1. Go 정의된 데이터 타입과 함수 상수 true, false, iota, nil 타입 int, int8, int16, int32, int64 uint, uint8, uint16, uint 32, uint64, uintptr float32, float64, complex64, complex128 bool, byte, rune, string, error 함수 make, len, cap, new, append, copy, close, delete complex, real, imag pani.. 2021. 8. 29.
Linux awk 사용법 및 응용법. awk에 대한 설명이 많고, 1. awk 란? AWK(오크;Aho Weinberger Kernighan)는 유닉스에서 처음 개발된 일반 스크립트 언어입니다. AWK라는 이름은 이 스크립트 언어를 만든 앨프리드 에이호, 피터 와인버거, 브라이언 커니핸 세 명의 성의 앞글자를 따서 붙여졌다고 합니다. AWK의 기본 기능은 텍스트 형태로 되어있는 입력 데이터를 행과 단어 별로 처리해 출력하는 것입니다. awk는 기본적으로 하나의 행을 레코드(Record)로 바라보며 처리합니다. awk는 처리방식도 특이하고, 명령어를 스크립트처럼 사용할 수 있는 것이 특징입니다. 즉, 입력을 주어진 분리자(field seperator)로 분리하여 명령을 처리합니다. 2. awk 명령어 awk는 기본적으로 문장을 문자 단위로 나.. 2021. 7. 20.
Go언어 Restful을 위한 패키지 gin 설명 이번에 Toy 프로젝트로 go언어를 선택했고, 이를 가지고 restful 서버를 만들기로 했다. 찾으면서 나온 패키지들은 여러가지가 있는데, 가장 많이 사용하고, 내가 사용함에 있어 필요한 기능들을 제공해주는 프레임 워크를 선택하게 되었고 gin을 사용하기로 결정했다. gin framework https://github.com/gin-gonic/gin gin-gonic/gin Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself s.. 2021. 7. 4.
DNS Record란? 1. DNS Record DNS는 인터넷의 모든 사이트에서 IP 주소, 도메인 이름, 호스팅 및 기타 등록 정보를 포함하는 대규모 정보 시스템을 말합니다. 이 시스템이 만들어지기 전에 사람들이 웹 사이트에 액세스 할 수있는 유일한 방법은 IP 주소를 입력하는 것입니다. DNS Record는 DNS서버가 해당 패킷을 받았을 때 어떤식으로 처리할지를 나타내는 지침을 말합니다. DNS 레코드에는 서버가 요청에 응답하는 방법에 대한 다양한 구문과 명령이 포함되어 있습니다. 2. 일반적인 Record A record : 이 레코드는 도메인과 연결된 실제 IP 주소를 나타냅니다. CNAME record : 이 레코드는 현재 도메인 아래에 나열되거나 현재 도메인과 연결된 하위 도메인을 나타내는 데 사용됩니다. MX .. 2021. 6. 28.
Golang Array, Slice 사용법. (append) Golang에는 Array와 Slice가 있습니다. Array는 정적 배열, Slice는 동적 배열로 표현됩니다. 사실 이 둘의 차이는 선언할 때 배열의 길이를 정해주느냐, 정해주지 않느냐의 차이입니다. 하지만 이 차이가 정적과 동적 배열을 결정하게 됩니다. 1. Array package main import "fmt" func main() { var arr1 [5]int = [5]int{1, 2, 3, 4, 5} var arr2 = [3]int{1, 2, 3} arr3 := [4]int{1, 2, 3, 4} fmt.Println(arr1) //output : [1, 2, 3, 4, 5] fmt.Println(arr2) //output : [1, 2, 3] fmt.Println(arr3) //output.. 2021. 6. 27.
ARP통신에 대해서... 1. ARP (Address Resolution Protocol) ARP는 통신 프로토콜중 하나 입니다. ARP 통신의 목적은 MAC 주소를 알아내기 위해 사용되는 프로토콜 입니다. 사진에서 보는것과 같이 OSI 7 Layer중 2계층에 속한 프로토콜로 라우터 통신이 아닌, 브릿지, 허브, L2 스위치에서 사용되는 로컬 통신 입니다. 2. ARP?? IP?? ARP통신은 상대방의 IP주소는 아는데, MAC 주소를 모를때 사용합니다. 일반적으론 IP주소만 알면 통신이 가능하다고 생각을 하지만, 컴퓨터는 기본적으로 MAC주소를 가지고 통신하게 됩니다. 그럼 왜 IP주소가 아니라 MAC주소를 보고 통신을 할까?? IP주소는 유동적으로 변하고, MAC주소는 고정(static)이기 때문입니다. MAC주소는 NIC.. 2021. 6. 16.
Golang interface에 대한 설명.... Go는 기본적으로 상속을 지원하지 않습니다. 단, interface를 제공함으로써 추상화를 돕고, 객체들을 서로 연결시켜주는 역할을 해줍니다. 단, 상속이 아니기 때문에 dependency가 낮으며, 느슨한 관계가 됩니다. 이는 Go언어의 설계목적에 있는것이죠. 1. interface 선언방법 type Calculator interface {...} Golang의 guideline을 보면 interface를 선언할 때 시작문자는 대문자로, 단어 끝에는 -er로 끝나도록 만들라고 합니다. 즉, 어떠한 일을 하는 행위자를 표현하는것이 좋습니다. 기본적으로 golang의 struct는 상속이 없기때문에, insterface안에 선언된 함수들을 사용하려면 리시버라는 기능을 통해함수를 따로 정의해야 합니다. 2... 2021. 6. 6.
V8 Engine에 대해서....(메모리구조, 컴파일방식) 1. V8 Engine이란?? Google에서 만든 JavaScript 컴파일러로 C++언어를 기반으로 만들어 졌습니다. 때문에 독립적으로 실행이 가능하며, 다른 웹 브라우저 없이 JavaScript, Node.js 코드를 컴파일 할 수 있습니다. 2. JIT Compiler (Just-In-Time) V8은 JIT Compiler을 지원합니다. 일반적인 Compiler에는 동적 컴파일(인터프리터)와 정적 컴파일(Compiler)가 있습니다. JIT Compiler는 이 두개를 합친 것으로 실행시점에서 인터프리터 방식으로 바이트 코드를 생성합니다. 그 후 V8 Engine은 바이트 코드를 기계어 코드로 만들고, 그 코드를 캐싱하여, 같은 함수가 여러 번 불릴 때 매번 기계어 코드를 생성하는 것을 방지합니.. 2021. 5. 31.
JavaScript 탄생 과 ECMAScript에 대해서 1. JavaScript 탄생 첫 탄생은 브랜든 아이크가 10일만에 설계한 것으로부터 시작합니다. 처음에는 Mocha라는 이름이었지만, 4달 만에 LiveScript라는 이름으로 개명하고 다시 3달 후에는 JavaScript라는 이름이 되어 오늘날까지 이어지고 있습니다. JavaScript라고 지은 이유는 Java의 유명세를 타서 묻어가려고 의도적으로 만들었다고 합니다. 해당 언어는 웹 브라우저 내에서 주로 사용되며, node.js를 통해 Backend도 만들 수 있게 되었습니다. 뿐만아니라 라즈베리파이에도 사용이 가능하며, 여러곳에서 사용될 수 있는 언어로 발전했습니다. 2. ECMAScript ECMA International 이라는 국제 표준화 기구가 있습니다. 표준화 시킨 대표적인 것들은 JSON.. 2021. 5. 31.
반응형

스킨편집 -> html 편집에서