목록웹 개발 (9)
쿼카러버의 기술 블로그
Protocol Buffers 구글에서 개발한 직렬화 데이터 구조다. 인터페이스 정의용 언어(IDL Interface Definition Language)를 사용해 데이터를 저장하기 위해 proto라는 형태로 정의하고, protoc(proto compile)을 이용해 컴파일을 하면 언어에 맞는 코드를 생성해준다. grpc에서는 unary, stream이라는 용어를 사용하는데, unary는 http와 유사하게 stateless한 통신방식으로 request와 response를 1회 받을 때만 TCP커넥션을 맺고 처리한다. (REST의 HTTP통신보다 훨씬 성능이 좋다) stream은 이름에서 유추할 수 있지만, 지속적으로 데이터를 주고받을 수 있는 소켓 통신과 같이 사용할 수 있는 통신 방식이다. 필자가 작..
본 글은 튜토리얼 성 글으로, 정말 간단하게 gRPC가 무엇인지 맛보고, 바로 구현에 들어간다. 참고로 웹상에 있는 튜토리얼은 막상 해보면 안되는 경우가 많은데, 필자는 직접 다 실행해보고, 세팅까지 본 글에 적어두었으니, 본 글에 적힌대로 따라오기만 하면 gRPC 서버와 클라이언트를 쉽게 구현하고 실행해볼 수 있다. (생색) 자세한 내용은 추후 포스팅에서 다룰 예정이다. (노션엔 정리해뒀는 쓰다보니 너무 길고 복잡..) Prerequisites 본 글의 내용을 직접 실습해보려면 아래 내용들이 충족돼야한다. (1) protocol buffer 설치 go get -u github.com/golang/protobuf/protoc-gen-go #맥북이면 brew install protobuf (2) go en..
Locust로 테스트를 하다가, 컴퓨터 성능에 비해 부하가 잘 안먹는 것 같아서 Jmeter로 해봤는데 확실히 부하가 더 잘들어가는 것 같다. 본 글에서는 다음에 대해 다룬다. - Jmeter를 Mac에서 설치하는 법 - JMeter를 사용하는데 필요한 기본 개념, - 분산환경에서의 JMeter 실행에(더 많은 부하 넣기 위해) 필요한 기본적인 세팅 (Mac에서도 가능하겠지만 Linux서버에서의 활용을 추천) 그냥 간단한 테스트를 원하는 경우에는 필자는 stress test를 위해 5개의 worker노드를 구성해서 해야했지만 간단한 부하테스트는 Mac에 설치해서 진행하는 것을 추천한다. Mac에 JMeter설치 Jmeter에서 Controller는 Master서버로, 테스트에 필요한 세팅 및, Worke..
JWT는 개발자라면 지겨울정도로 들어봤거나 사용해볼법한 인증 방식이다. 필자도 마찬가지로 JWT를 많이 사용해 봤지만 구체적인 개념들에 대한 정리가 안돼있었다. 그래서 본 글에서 간단하게 정리해보려고 한다. 자 그럼 시작해보자~ JWT란? JWT는 사용자 인증을 위해 사용하는 open standard(RFC 7519)다. Json포맷을 이용하여 Self-Contained 방식으로 사용자에 대한 정보를 저장하는 Claim기반 Web 토큰이다. 기본적인 컨셉은 IdP(Identiy Provider)가 사용자의 정보를 담은 내용에 서명함을 통해서 토큰을 만들고, 유저가 서버에 요청할 때 사용하도록 하는데, 이 때 토큰의 integrity와 authenticity를 보장한다는 점이다. 쉽게 말해서 유저가 전송하..
웹 개발을 하다보면 CORS이슈를 자주 접하게 되는데, 이를 이해하기 앞서 Origin이 무엇인지 알아 둘 필요가 있다. 한국어로는 출처라고 하는데, 출처와 Origin은 같은 의미를 가진다. 근데 나는 헷갈려서 origin이라고 표현한다. 본 글의 내용은 https://etloveguitar.tistory.com/82 [웹 개발] CORS란 무엇인가? (what is Cross Origin Request Sharing?) (CORS 한번에 뿌시기) (nginx CORS에러) CORS는 백엔드 개발을하든 프론트 개발을 하든 항상 부딪히게 되지만, 제대로 이해하지 않고 넘어가는 경우가 많았다. 이번 글을 정리하면서 CORS에 대해 최대한 쉽게 그리고 조금 더 깊이 있는 이 etloveguitar.tisto..
CORS는 백엔드 개발을하든 프론트 개발을 하든 항상 부딪히게 되지만, 제대로 이해하지 않고 넘어가는 경우가 많았다. 이번 글을 정리하면서 CORS에 대해 최대한 쉽게 그리고 조금 더 깊이 있는 이해를 해보고자 한다. 추가로 Origin이 무엇인지에 대해서도 알아본다. 또한 nginx에서 cors 정책을 설정했는데도 에러가 발생하는 경우의 해결법도 간단하게 적어봤다. CORS란? CORS란 Cross Origin Resource Sharing의 약자로 브라우저의 현재 웹 페이지가 이 페이지를 받은 서버가 아닌 다른 서버의 자원을 호출하는 것을 의미한다. 웹 브라우저에서 외부 도메인 서버와 통신할 때 허락을 구하고 거절하기 위해 HTTP-header를 이용하는 메커니즘을 CORS라고 한다. CORS에서 가..
Session Mangement는 크게 3가지 페이지로 구성된다. 1) 쿠키란 무엇인가 2) 세션이란 무엇인가 3) Javascript로 구현하고 이해하는 Session Management 본 글은 마지막 장인 Javascript로 구현하고 이해하는 Session Management 에 대해 다룬다. 학습방법 : 이번 페이지만 읽어도 간단한 예시와 함께 Session Management에 대해 이해할 수 있겠지만, 좀 더 깊은 이해를 원한다면 앞의 시리즈 페이지를 매우 짧게 작성했으니 한번쯤은 읽어보는 것을 추천한다. 본 글의 흐름은 다음과 같다. 1) 세션 관리가 필요한 이유 : login logout 기능 2) 쿠키가 필요한 이유 3) 쿠키를 식별자로 사용한 예시 및 단점 설명 (Javascript ..
Session Mangement 시리지는 크게 3가지 페이지로 구성된다. 1) 쿠키란 무엇인가 2) 세션이란 무엇인가 3) Javascript로 구현하고 이해하는 Session Management 본 글은 두 번째 장인 세션이란 무엇인가에 대해 다룬다. 학습 방법 : 필자는 이 글에서 세션이 무엇인가에 대해 그냥 한번 훑고나서 3번 페이지인 Session Managment를 읽고 난 뒤 다시와서 한번 더 읽는 것을 추천한다. Session이란 무엇인가 세션이란 쿠키를 매개로 하지만, 사용자 정보 파일인 세션 ID를 서버에서 관리하는 방법을 의미한다. A session is a semi-permanent interactive information interchange. It is set up or esta..