토이 프로젝트로 게시판 API 만들고 있는데요, 그냥 제 맘대로 엔드포인트를 지었거든요. 근데 사수분이 지나가다가 보시더니 이건 REST 스타일이 아니라고 하시더라고요.


제가 지금 짜놓은 건 대충 이래요.


GET /getUser?id=3
POST /createUser
POST /updateUser
POST /deleteUser?id=3


동작은 잘 되는데 뭐가 문제인지 잘 모르겠어요. 찾아보니까 동사를 URL에 넣지 말고 명사로 하고 HTTP 메서드로 행동을 표현하라는 말이 많던데, 그럼 대충 이렇게 바꾸면 되는 건가요?


GET /users/3
POST /users
PUT /users/3
DELETE /users/3


여기서 몇 가지가 헷갈려요. 리소스 이름은 무조건 복수형(users)으로 하는 게 맞나요? 그리고 특정 유저의 게시글 목록 같은 건 /users/3/posts 이렇게 중첩해서 쓰는 게 맞는 건지, 아니면 그냥 /posts?userId=3 이렇게 쿼리로 빼는 게 나은지 모르겠어요. 로그인 같은 딱 동사스러운 건 REST로 어떻게 표현해야 하나요? /login 이라고 쓰면 또 동사라 안 된다고 할 것 같은데 이런 건 다들 어떻게 처리하시나요? 실무 감각으로 조언 좀 부탁드려요.