240930 TIL - 입문/숙련 복습주차 3

LIHA·2024년 9월 30일
0

내일배움캠프

목록 보기
65/117
post-thumbnail

리하네 대장간

구현해야 할 도전기능 목록

아이템 구입 API (JWT필요)

아이템 코드와 갯수를 통해 아이템을 구입한다. -> body로 전달하자
갯수 * 가격 대로 캐릭터의 소지금을 차감시킨다.
성공 시 인벤토리에 넣어주도록 한다.
소지금 차감 및 인벤토리 집어넣기를 트랜잭션으로 묶어주자 -> 돈만 빠져나가고 아이템 안 들어오면 안되니까

아이템 판매 API (JWT필요)

캐릭터가 보유한 인벤토리 내 아이템 목록 조회 (JWT필요)

캐릭터가 장착한 아이템 목록 조회

이건 남들도 볼 수 있으니까 JWT는 딱히 필요없다

아이템 장착 API (JWT필요)

아이템 탈착 API (JWT필요)

AM 2:10 경 구현 완료! 와 다만들었다!


트러블슈팅

PUT과 PATCH의 차이

  • community-hub를 보니 튜터님은 여기서 router.patch를 쓰셨던데 put과 patch의 차이가 뭘까?

    PUT: 전체 수정으로 전체 필드 입력 필요. 미입력 필드는 null이 되어버림 - 리소스 완전 교체로 멱등성 유지
    PATCH: 부분 수정으로 수정할 필드만 입력하면 됨. 나머지도 null이 되지 않음 - 멱등성 유지되지 않음
    (멱등성: 같은 연산을 여러번 반복해도 결과가 달라지지 않는 성질)

자주나오는 것을 함수로 빼고싶은데 Promise < pending >이 뭐지?

[문제의 원인 피로 ]

  1. 함수를 호출했는데 await를 안 붙였다

-> 앞에 await를 붙여주었다. 함수로 따로 만들어서 써본 적이 없다보니 await를 붙여야만 동작하는 것도 몰랐다(...)
유정 튜터님 죄송해요 흑흑 저는 멍충이에요😂

  1. 함수에 return값이 없었다

-> return character를 붙여주었다.

여기다 쓰면 안돼요? 응 안돼요

어차피 자주 쓰니까 맨 위에다 써놓으면 안되나? 라는 생각을 했는데 유정 튜터님이 안된다고 하셨다.
맨 위에 박아버리면 모든 라우터의 character가 그 맨위에 박아버린 한개를 바라보게 될 거라고.

라우터를 어떻게 정리할까요? 정섭 튜터님의 말씀

그 작업의 중점이 어디인지에 따라 다르다

자원 분포를 그대로 URL로 그대로 쓰는 경우도 있긴 있다. 캐릭터 돈 증가는 캐릭터 라우터에 간다던지. 이상한 건 아니다.
-> 근데 아이템이니까 아이템 라우터에 가야하는거 아닌가? 일 수도 있다. 이것도 틀린 말이 아니다.

요주는 이 동작이 비즈니스 로직적으로 어디에 더 포커스가 맞춰져 있느냐? 가 관건인 것 같다.
-> 그래서 URL 설정하는 것도 꽤나 공 들여야 한다. 이것도 조직에 따라 컨벤션 맞추는 경우 있다.

내가 지금 인벤토리를 컨트롤하냐 아이템을 컨트롤하냐를 생각한다면 아이템에 더 가깝지 않냐? 라는 얘기.

기사 문제의 약수!

약수의 개수를 구하는 방법 -> '제곱근'을 기준으로 생각할 것


웹소켓

은택님의 점프다이노 팁!

json파일을 불러올 줄 알면 key값에 따른 value를 사용해서 그냥 계산을 할 수 있는데, 그
asset에 있는 모든 json 파일을 public으로 옮겨줘야 한다

  1. public 폴더 내에 있어야 한다 (아니면 app.js에서 정적파일 서빙경로를 바꾸던지)
    -> express static 사용하면 거기서 선언한 경로 안에서만 할 수 있기 때문
  2. json import 해올때는 뒤에 with { type : "json "} 을 붙여야 한다
profile
갑자기 왜 춤춰?

0개의 댓글