전체 글

    [Docker] Docker Image Stored Path / Docker.raw?

    Ubuntu: /var/lib/docker/ Fedora: /var/lib/docker/ Debian: /var/lib/docker/ Windows: C:\\ProgramData\\DockerDesktop MacOS: ~/Library/Containers/com.docker.docker/Data/vms/0/ Docker Image Layer를 확인할 때 필요하다. (일단 현재까지는!) Linux에서의 Docker Image Layer가 설치되는 것과 MacOS에서는 달랐다. 즉, 참조중인 44bits.io - 만들면서 이해하는 도커(Docker) 이미지의 구조에서의 Linux 환경에서 Image Layer Test는 다음과 같았다. $ pwd /var/lib/docker/image/overlay2/lay..

    [Docker] Container vs Process

    변역알림 아래 포스팅 내용은 google site의 techincal Collection 작성자가 이해하기 쉽게 번역하였음을 알립니다. 들어가기 앞서, Container vs VMs 가상머신에서 VM은 자체 메모리 관리, 장치 드라이버, 데몬 등이 포함 된 전체 OS로 구성됩니다. 반면 Container는 호스트의 OS를 공유하므로 무게가 더 가볍습니다. Container vs Process 더 흥미로운 비교는 Container과 Process 간의 비교입니다. Container는 실제로 전체 환경을 갖춘 프로세스입니다. 일반적으로 프로세스는 자체 주소 공간 + 프로그램 + CPU 상태 및 프로세스 테이블 항목을 가지고 있는 것으로 정의됩니다. 그러나 오늘날의 소프트웨어 환경에서는 이것이 더 이상 온전한..

    [Golang] Sqrt(Newton's Method)와 같이 Go언어 Custom Error처리 이해하기

    Custom Error Handling 기존에 언어를 배웠던 것과는 Go언어는 다른점이 많기도 하다. Python에서의 try ~ except와는 다르게 Error를 인터페이스로 제공하고 이를 사용하기 위해서는 Method를 통해서 구현해서 사용하거나 따로 제공되는 errorString이나 errors 패키지를 import하여 New()함수를 통하는 방법도 있다. 처음 공부하는 부분이기도 하고, 가장 기본적으로 Error를 다루기 위해서 error 인터페이스의 메서드를 구현하고 이를 Custom해서 Error를 처리하도록 생각했다. (차후, Go를 이용해 다양한 프로젝트 아마.. Http 패키지를 써서 서버를 띄우거나, Go를 이용한 BlockChain에도 관심이 있어서 해볼 예정이다. 에러는 매번 중요..

    [Golang] 헷갈리는 Type assertion 이해하기

    Type-Switch에서도 쓰기도하고, empty interface를 자주 사용되는 부분에서 type assertion은 확실히 이해하고 넘어가야겠다고 생각했다. 결론부터 말하자면, Type Assertion은 interface type의 value의 Type을 확인하는 것이다. 말이 조금 이상할 수 있지만, 아래의 설명과 예시와 함께라면 이해하기에 충분하다🤔 Type Assertion interface type의 x 와 타입 T를 → x.(T)로 포현했을때, x가 nil 이 아니며, x는 T 타입에 속한다는 점을 확인하기(assert)하는 것으로 이러한 표현을 Type assertion 이라고 부른다. x 가 nil 이거나 x의 타입이 T가 아니라면 → Runtime ERROR x 가 T 타입인 경우 ..

    [Golang] cannot type switch on non-interface value v (type int)

    Type Switch 공부하면서 나온 ERROR이다. 단순히 생각해서 Switch문의 변수의 Type을 확인한다고 생각해서 아래와 같이 간단하게 Test를 진행해보았는데 value v가 Interface Value가 아니라고 한다. package main func main() { var v int = 10 switch v.(type) { case int: println("int") case bool: println("bool") case string: println("string") default: println("unknown") } } func do(i interface()) {} 는, -> 빈 인터페이스(empty interface)를 파라미터로하는 함수를 정의한다. 이 함수는 입력받는 Parame..