[ 클론 코딩 ] 4주차

우영제·2021년 11월 8일
0
post-thumbnail

🎉 Done

1. DB와 gui 툴 연결되지 않는 문제 수정

두 가지 문제 수정 후 오류 해결

문제 1. psql user의 문제

첫 번째 문제는 제가 올렸던 postgreSQL 설치 과정에 있었는데요.

새로운 user를 추가해놓고 계속 default 계정인 postgres 라는 유저 내부에

테이블을 만들고 있었습니다...

그러고 roo 계정에서 계속 테이블을 찾았으니.. 나왔을 리가 없겠죠.


새벽에 혼자서 남의 다리만 긁고 있었습니다ㅠ

문제 2. Query의 문제

  • 잘못된 쿼리 (기존)
    SELECT * FROM public.BLOG_USERS

  • 수정된 쿼리 (변경)
    SELECT * FROM public."BLOG_USERS"


테이블 이름에 반드시 "(Double Quotation)를 붙여줘야합니다!


간단한 해결책인데 별도의 GUI 툴을 깔고 별 짓을 다 해본 다음에야 깨달았습니다.

2. 기존 API 구현 수정

기존 API 요청의 결과로 서버의 객체 수정이 아닌 DB 수정으로 변경

2-1. 전체 유저 조회 (GET)

2-2. 특정 유저 조회 (GET)

2-3. 특정 유저 삭제 (DELETE)

2-4. 유저 추가 (CREATE)

2-5. 특정 유저 업데이트 (PUT)

3. 포스팅 데이터 DB 저장 방식 분석

3-1. 저장 방식

MarkDown으로 작성한 포스트 스트링 전체를 DB에 string 형태로 저장

3-2. 선택 이유

파일로 저장하는 방법과 DB에 저장하는 방법 중 고민하다가 velog의 구현 방식을 따라가기로 결정

3-3. velog 구현 방식 확인 방법

3-3-1. PostViewer 컴포넌트로 부터 역추적

  • PostActions의 readPost 함수 호출
3-3-2. PostActions 구현부 확인

  • /post 경로로 REST API 호출
3-3-3. Back-end post API 구현부 확인

  • post 관련 DB model 확인 (src/database/models/Post.js)
  • src/database/models/ 디렉토리에는 DB 관련 모델이 모여 있으므로 개발에 참고

4. API 테스트 방법 소개

4-1. curl을 사용한 방법

cURL (Client URL) : 터미널에서 HTTP, HTTPS 및 FTP 등 프로토콜 중 하나를 사용하여 데이터를 다운로드하거나 업로드할 수 있는 명령어

  • 오픈소스로 개발됐으며, 대부분의 OS에 기본 내장돼있다.
  • libcurl 등이 이에 해당

예시)
$ curl [options] [url]


위 명령어를 사용하여 간단한 서버의 api 테스트가 가능하고, GUI가 갖춰져 있지 않은 환경에서 유용합니다.

4-2. Thunder Client를 사용한 방법

vscode extension을 통해 http 요청을 보낼 수 있는 툴

  • curl과 기능적으로 동일하나 GUI가 훨씬 잘 돼있어서 편리함
4-2-1. API 테스트 예시

4-2-2. API 요청 결과 예시

  • 바로바로 테스트 가능해서 아주 편리함

📝 To-Do

1. 유저 관련 테스트 컴포넌트 작성 (필요하다면?)

2. 포스팅 테스트 데이터 DB에 추가

3. 포스팅 관련 API 개발

4. Post viewer 일부 구현

5. Editor 설계

profile
Front-end Developer

0개의 댓글