본문 바로가기

Back-end34

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.
JPA User 테이블, Postgres reserved keyword 해결하기 JPA, Postgres 환경 상에서 User테이블이 생성되지 않은 문제를 @Table 어노테이션을 통해 해결하였던 방법을 다룬 글입니다. 한국외대의 학식 서비스인 훕포메이션의 구조를 변경하면서, Postgresql과 Spring Boot, JPA로 구성된 백엔드 환경에서 유저정보를 담은 테이블의 명칭을 user로 정하게 되었다. @Entity public class User { public enum Campus {seoul, global} @Id @GeneratedValue private Long id; @Column(length=10) @Enumerated(EnumType.STRING) private Campus campus; } 서버를 실행시켜 DB 동작을 확인해보니 Postgres 상에선 내가 원.. 2020. 8. 12.
JPA, Postgres earthdistance를 이용하여 사용자 근처 가맹점 조회 API 구현하기 PostgreSQL Cube-Based Earth Distances와 Spring Data JPA Native Query를 이용하여 Spring Boot의 사용자 근처 가맹점 찾기 API를 구현하는 내용을 담았습니다 재난지원금 사용을 위해 경기도 지역화폐 웹서비스를 개발하면서 나의 위치 기준에서 몇 Km 내에 있는 OO시의 가맹점을 조회해주는 기능이 필요하였다 (재난지원금 정책상 자신이 거주하는 시 내에서만 사용가능하다) 사용중인 PostgreSQL에 추가 모듈인 earthdistance가 있는 것을 보았고 이 모듈과 함께 Spring Data JPA의 Native Query를 이용하여 구현하기로 결정하였다. 먼저 PostgreSQL의 earthdistance가 무엇이고 어떻게 사용하는지 알아보자 ear.. 2020. 7. 24.
WSL환경에서 Docker-compose 사용하기 개인 프로젝트를 할때 개발환경으로 윈도우10과 WSL(Window sub system)을 사용하고 있다. WSL1의 경우 Docker 관련 소켓과 함께 Docker, Docker-compose가 불완전한 단점을 가지고 있다. WSL2에선 이제 호환이 된다고 하지만, 아직 정식 릴리즈는 아니기에 기다리고 있다 Docker는 윈도우용으로 실행을 하여 Expose daemon on tcp://localhost:2375 without TLS 이 옵션을 활성화하는 방법을 통해 WSL에서 접속하는 방법으로 사용하고 있고 Docker-compose는 한번 더 설정을 해주어 echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc 위.. 2020. 4. 26.
반응형