전체 글137 티스토리 코드블럭 내 글씨 사이즈 수정하기 나는 티스토리에 포스트를 작성하기 전, Typora 에디터를 통해 마크다운으로 작성하고, 티스토리에서 지원하는 마크다운 에디터에 붙여 넣는다. 마크다운으로 작성하면 마우스가 없어도 표, 코드 등의 대부분이 작업이 가능하기에 자주 쓰고 있다. 그런데, 티스토리에 옮기고만 나면 Typora에선 괜찮게 보이던 미리보기가 망가져버린다. 약간 변형되는 글꼴, 줄 간격 틀어짐과 같은 부분은 제출하기 전에 수정하고 있지만, 최근 들어 코드 블럭이 은근 말썽이었다. 티스토리에서 제공하는 코드 하이라이트 플러그인을 사용하고 있는데 아직 UI상에서의 크기 수정은 지원되지 않는다. 아래 화면처럼 일반 글자는 적당한 크기로 보이지만, 코드 블럭 내의 코드들은 침침하기에 짝이 없다고 할 수 있겠다. 더군다나 나의 블로그의 경우.. 2021. 1. 5. Go gRPC 서버에 REST API 요청 주고 받기 [grpc-gateway] rpdly 프로젝트 를 진행하면서 단축 URL를 생성하는 부분을 Go와 grpc, redis를 이용해 구현하고 있다. (프로젝트 명은 rpdly-go-uri 라고 정함) 회원가입 등의 이외 비즈니스 로직들은 Java와 Spring boot를 사용하고 있는데 (rpdly-api), 이 곳에서 rpdly-go-uri 서비스와 연결할때 grpc를 이외에도 REST로 http 요청을 하면 어떨지 떠올랐다. 이 과정에서 grpc-gateway 플러그인과 twirp 프레임워크를 알게 되었다. 언뜻 보기엔 내가 원하는 기능을 둘다 지원해주는 것 같지만, 이 둘의 차이는 아래처럼 나눠볼 수 있겠다. grpc-gateway protobuf를 REST HTTP API를 gRPC로 변환시켜주는 리버스 프록시 서버를 생성 H.. 2020. 12. 31. Node-sass incompatible with ^4.0.0. 해결하기 react.js 로 웹을 개발하면서 js대신 ts를 쓰듯, css대신 scss로 조금 더 유연하게 작성하는 때가 있다. scss만으로는 웹 브라우저에서 동작할 수 없기에 css로 컴파일 시키는 과정이 필요하다. 이럴때 LibSass를 node.js 상에서 사용할 수 있는 node-sass를 사용해 쉽게 컴파일을 할 수 있다. node-sass 패키지를 설치하여야 scss를 본격적으로 사용할 수 있는데 npm i node-sass를 하였더니 아래와 같은 문구가 나온다. Failed to compile. ./src/index.scss (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6-1!./node_modules/postcss-loader/src??postcs.. 2020. 12. 23. Go gRPC 튜토리얼 #1 - 세팅부터 Unary RPC Call 사용까지 이번 글에서는 Go gRPC의 프로젝트 세팅과 Unary RPC call에 대해 다룹니다 gRPC는 구글에서 2015년에 공개한 오픈소스 리모트 프로시져 콜 시스템이다 HTTP/2의 stream을 지원하며 Protocol Buffer를 이용해 proto파일을 작성하고 제공하는 Go, C++, Java, Python, Ruby 등에서 사용할 수 있는 코드로의 변환을 제공하고 있다 gRPC는 다음과 같이 4가지의 서비스 메소드를 정의하고 있다 Unary RPC 클라이언트는 서버에 싱글 리퀘스트를 보내고 다시 싱글 리스폰스를 받는다. 일반적인 함수의 호출과 같다 Server streaming RPC 클라이언트가 서버에 리퀘스트를 보내고 스트림을 가져와 일련의 메세지를 읽는다 리턴되는 스트림이 더 이상 메세지가.. 2020. 9. 17. Go Module을 사용하여 GOROOT 이외의 디렉토리에서 모듈 불러오기 Go를 이용해 gRPC를 익히면서 Module import에 대한 문제가 생겼다. 프로젝트 내부에 모듈을 두고 싶었으나, import를 하면 Go 컴파일러는 GOROOT 디렉토리에서만 패키지를 찾는 것이었다. 문제를 해결하기 위해 코드와 폴더 구조를 살펴보자 golang_module (나의 프로젝트 폴더) ├── main.go └── my_module └── animal.go // my_module/animal.go package animals import "fmt" // PrintDogSound for used by main package func PrintDogSound() { fmt.Println("bark") } // PrintCatSound for used by main package func .. 2020. 9. 13. 이전 1 2 3 4 5 6 7 ··· 28 다음 반응형