본문 바로가기

728x90
반응형

Golang

(16)
Apple 로그인 JWT, JWK 애플로그인 구현을 위해서 꼭 알아야하는 jwt 굳이 애플로그인이 아니어도 필요하기 때문에 먼저 개념을 정리하고 apple 로그인 구현까지 포스팅해보려 한다. JWT (JSON Web Token) - jwt는 header, playload, signature 3 부분으로 이루어져있다. - 이를 base64 encoding 한 후 concat, 즉 문자열을 합친 것이 jwt이다. - 토큰에 포함된 내용들은 암호화 되어있지 않기 때문에 누구나 확인 가능하다. - signature를 이용하여 해당 토큰이 실제로 원래 발급자가 발급했던 유효한 토큰인지 검증 할 수 있다. - signature 생성을 위한 알고리즘은 발급시에 선택가능하다 (RS256, ES256, HS256 등) https://jwt.io JWT...
golang .env 파일 환경변수 셋팅 .env 파일로 환경변수를 지정해주는 방법 일단 main이 있는 package에 직접 .env 파일을 만들어준다. 나의 경우에는 terminal에서 만들어줬다. touch .env vi .env touch로 .env 파일을 생성하고 vi로 편집해서 환경변수를 설정해준다. 예를들어 linux 계정 이름과 비번을 저장하고 싶다고 가정해보자. .env 파일의 내용은 아래와 같이 작성할 수 있다. LINUX_NAME=csohb LINUX_PWD=1234 이 형식이 정해져있는건 아니다 그냥 맘대로 지정해도 된다. 여튼 이렇게 쓴 .env 파일을 사용하기 위해서는 env 파일을 읽어오는 라이브러리를 사용해야한다. err := godotenv.Load(envFile) if err != nil { panic(err) ..
go init() 프로젝트 하면서 배우게 된 사항들은 까먹지 않고 다시 정리하는 습관을 들이려한다. 첫번째. init() 함수 - main을 호출함과 동시에 무조건 호출되는 함수 main에서 따로 선언하지 않아도 알아서 호출된다. func init() { fmt.Println("init func called..") } func main() { fmt.Println("main func called..") } 분명 main에서 따로 호출하지 않았지만 실행되는 동시에 함수가 호출된 것을 볼 수 있다. 그럼 이 함수를 어디에 사용하는가. 내가 하고 있는 프로젝트에서는 config파일 읽어올때 주로 쓴다. func init() { if len(os.Args) == 2 { configFile = os.Args[1] } else { ..
Golang Docker-Kafka 프로그램 2 아까는 그냥 도커에서 카프카를 띄우는 방법정도만 했다면 이 블로깅에서는 golang을 활용하여 메세지를 받는 consumer 서버 샘플을 만들어 보려한다. 사실 내가 만든건 아니고 유튜브를 참고했다. ㅋㅋ 고로 개발하고나서는 감히 한국어 자료를 찾으려 하지 않는다. 그냥 그시간에 영어로 유튜브에 치면 더 많고 정확한 자료를 얻을 수 있음. https://www.youtube.com/watch?v=Ur4ZtuMpj14&t=402s 국내에 계신 몇 안되는 go발자님들.. 화이팅 일단 이 간단한 프로그램은 go get "github.com/segmentio/kafka-go" 을 통해 라이브러리를 받아와야 사용가능하다. 먼저 이것부터 받고 시작하면 된다. 유튜브 영상과 똑같은 내용을 쓸꺼라 영어를 좋아하는 분들..
Golang Docker Kafka 프로그램 있는 그대로 고랭과 도커를 사용하여 kafka 를 사용한 pub-sub 구조 프로그램을 만들어보려고 한다. 지금 하는 프로젝트에서 필요하기 때문에 과제로 받았다. * go 1.18 ver, java14로 실습했습니다. 제목을 써보니 핫한 기술 다 때려박은 느낌이다. 사실이긴한데 내가 쓸내용은 핫하지 않다.. 각설하고 순서를 정리하면 이렇다. 1. kafka 다운받기&config 맞추기 일단 아래 깃 src를 클론받는다. git clone https://github.com/wurstmeister/kafka-docker.git 정상적으로 다운로드가 되면 root dir에 kafka-docker 라는 폴더가 생성된다. 그러고 나서 vi로 docker-compose-single-broker.yml 파일을 수정해..
What is gRPC? MSA 개발 방식이 주목받으면서 gRPC도 같이 부상중에 있다. 이번 포스팅에서는 gRPC의 기본 개념을 초급 개발자도 이해할 수 있도록 쉽게 풀어서 적어볼까 한다. (내가 초급개발자니까..) 우선 gRPC를 이해하기 위해서는 몇 가지 개념을 이해해야한다. 1. RPC (Remote Procedure Call) 2. protocol buffer 3. HTTP2.0 왜냐하면 gRPC는 protocol buffer를 사용해서 HTTP2.0 규격으로 다른 프로시저를 호출하는 RPC 통신 기술이기 때문이다. 그럼 RPC가 무엇인지부터 알아보겠다. 1. RPC : 한 프로그램이 네트워크의 세부 정보를 이해하지 않고도 네트워크 안의 다른 컴퓨터에 있는 프로그램에서 서비스를 요청할 수 있게 하는 통신 기술이다. 위 ..

728x90
반응형