# 문제 발생 원인 분석 # docker-compose.yaml version: '3.9' services: proxy-server: container_name: proxy-server build: context: ./build/proxy dockerfile: proxy.Dockerfile command: ./app/proxy -p 80 -e grpc-server:80 restart: always deploy: mode: replicated replicas: 1 depends_on: - grpc-server web: container_name: web build: context: . dockerfile: ./build/web/Dockerfile restart: always ports: - 3000:300..
* 개인적으로 공부한 내용의 일부를 기록하기 위한 것이므로 중간 과정이 많이 생략되어 있습니다. * 작성중인 코드의 일부는 아래의 깃허브 저장소에서 확인하실 수 있습니다. https://github.com/piatoss3612/go-grpc-todo GitHub - piatoss3612/go-grpc-todo: example of grpc implementation example of grpc implementation. Contribute to piatoss3612/go-grpc-todo development by creating an account on GitHub. github.com 1. 메타데이터 읽기 메타데이터에 어떤 정보가 담겨있는지 먼저 확인해 봅니다. package server impor..
Package names 패키지를 임포트하면, 패키지 이름은 해당 패키지에 포함된 컨텐츠에 대한 접근자로 사용됩니다. import "bytes" func main() { _ = bytes.NewBuffer([]byte{}) } 좋은 패키지 이름은 짧고 간결하며 관련된 컨텐츠들을 연상시킬 수 있어야 합니다. 네이밍 컨벤션에 따라 패키지 이름은 소문자, 단일 단어여야 하며 _언더스코어나 대문자를 혼합할 필요는 없습니다. 패키지 이름은 유니크할 필요는 없으며, 만약 동일한 이름의 패키지를 사용할 경우 별칭(alias)을 붙여줍니다. 패키지를 임포트할 때 붙여준 이름이 사용중인 패키지를 결정하므로 충돌은 거의 발생하지 않습니다. 임포트한 패키지의 경로가 hello/world일지라도, 패키지 이름은 원본 디렉토리..
Most Significant Bit // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; contract MostSignificantBit { /// 이분 탐색을 사용해 x의 최상위 비트를 찾는다 function findMostSignificantBitBinarySearch(uint256 x) public pure returns(uint8 r) { if (x >= 2 ** 128) { x >>= 128; r += 128; } if (x >= 2 ** 64) { x >>= 64; r += 64; } if (x >= 2 ** 32) { x >>= 32; r += 32; } if (x >= 2 ** 16) { x >>= 16; r += 16; } if (x >..