이번 작업은 나만의 사이드프로젝트같은 느낌으로 진행이 된 것이라, 힙한(?) 스택을 모조리 다 써보고 싶었다.
gql은 팀프로젝트에 써봤어서 감흥은 없었지만, Prisma가 너무 써보고 싶었고. 그래서 한번 사용해봤다.
솔직히 자세한 사용법은 알아봐야하고 쿼리빌더만큼 자유롭게 쿼리를 날릴 수는 없는 상태다(하하...)
간단했는데 난 바보라 간단하게 못했따..
const address = await this.prisma.main_address.findMany({
where: { ZIP_NO: zipCode },
});
그래서 코드로 짤 때는 이렇게 짰다!
TypeORM이라면 필요 없었던 제너레이트라는 작업이 필요해서, 도커파일을 조금 다르게 작성해야한다.
FROM node:14
WORKDIR /myfolder
COPY ./package.json /myfolder/
COPY ./yarn.lock /myfolder/
RUN yarn install
COPY . /myfolder/
CMD yarn start:dev
FROM node:18
WORKDIR /backend
COPY ./package.json /backend/
COPY ./package-lock.json /backend/
RUN npm install
COPY . /backend/
COPY ./prisma /backend/
RUN npx prisma generate
CMD npm run start:dev
그러타 prisma 폴더도 카피해서 넣어주고, npx prisma generate까지 들어가야한다!
평소에 잘하다가 갑자기 헷갈려가지고(....) 좀 헤멨다!
근데 Logstash에서 잘 넣어놨는데 prisma 연결할때 헷갈림 (멍청아..)
로컬에서 연결할 때는 보통 localhost 혹은 127.0.0.1로 연결한다.
근데 도커내부에서 연결할 때는 이 방식이 안된다.
애초에 로컬호스트가 아니라고 하셨는데, 이 부분은 조금 찾아보긴 해야할 것 같다.
결국은 한 컨테이너 내부에서 돌아가.......니지만 로컬이 아니긴 한게 맞겠는데(?)
아무튼 docker-compose 기준으로 작성되어있는 service의 이름을 넣어주면 된다
요로코롬!
아, 지금보니 테이블 정의를 잘못했다 ㅎㅎ; 그냥 INT 적어놓으면 됐는데...
아무튼 소수점을 표기하는 테이블 정의 방식 중 하나인데, 그래프큐엘에서 이게 정상적으로 지원을 안한다.
그래도 우리는 써야하는데, 그러면 보통 누군가 만들어놨다(?)
npm i prisma-graphql-type-decimal
번외로 이런 녀석도 있다
import { GraphQLJSONObject } from 'graphql-type-json';
이렇게 대략 4일간의 작은 나만의 프로젝트가 끝났다.
실제 프로덕션에 도입할 수 있는지, 안정성은 어떠한지, 신뢰도는 어느정도가 되는지는 검증이 필요하겠지만
다양한 것을 경험해볼 수 있었고 내가 써보고 싶었던 ELK STACK을 사용해본 것.
그리고 이유를 찾아서 제안을 하고, 내가 직접 구현까지 이렇게 할 수 있는 사람이라는 것을
나 자신에게도 알려준 것 같아서 기분이 정말 좋아졌다.
물론 그 과정 중에서 이것저것 알려주신 분이 계시지 않았더라면 지금도 열심히 땅을 파고 있었을 것 같은데(...)
그래도 이렇게 만들어서 너무 기뻤고 4일동안 정말 하드하게 작업을 한 것 같다.
이번 주말에 약속이 취소되서, 토요일에는 14시간, 일요일에는 11시간 가깝게 작업을 한 것 같은데....
돌아오는 주간은 조금 널널하게 하던가 하루 연차를 쓰고 조금 쉬는 시간이 필요할 것 같다.
재밌었다! 그리고 프로덕션에 내가 만든 주소 검색엔진이 도입되면 좋겠다 :>