회원 API 설계 및 구현

Kyulee·2026년 1월 27일

간단한 실습

목록 보기
1/3
post-thumbnail

회원 API 설계

그동안 배운 내용을 바탕으로 로그인/회원가입 API를 설계를 하고 postman을 통하여 확인해볼 예정입니다.

1. 로그인 Post /login

  • requset : body (id,pwd)
  • response : ${name}님 반갑습니다.
  • http status
    • success (아이디, 비밀번호 일치) -> (200)
    • fail (아이디 혹은 비밀번호 불일치) -> (400)

2. 회원가입 Post /register

  • request : body (id, pwd, name)
  • response : ${name}님 환영합니다
  • http status
    • success(아이디, 비밀번호, 이름 전부 포함) -> (201)
    • fail (하나라도 빠질 경우) -> (400)

3. 회원 개별 조회 Get /users/:id

  • request : URL (id)
  • response : id, name
  • http status
    • success -> (200)
    • fail -> (404)

4. 회원 개별 탈퇴 Delete /user/:id

  • request : URL (id)
  • response : ${name}님 다음에 또 뵙겠습니다.
  • http status
    • success -> (200)
    • fail -> (404)

구현

로그인 구현

app.post("/login", (req, res) => {
  const { user_id, pwd } = req.body;
  let loginUser = null;

  db.forEach((user) => {
    if (user.user_id === user_id) {
      loginUser = user;
    }
  });
  if (loginUser) {
    if (loginUser.pwd == pwd) {
      res.status(200).json({
        message: `${loginUser.name}님 반갑습니다.`,
      });
    } else {
      res.status(400).json({
        message: "비밀번호를 다시 확인해보세요.",
      });
    }
  } else {
    res.status(400).json({
      message: "아이디를 다시 확인해보세요.",
    });
  }
});

회원가입

app.post("/register", (req, res) => {
  const { user_id, pwd, name } = req.body;
  if (user_id && pwd && name) {
    db.set(id++, { user_id, pwd, name });
    res.status(201).json({
      message: `${db.get(id - 1).name}님 환영합니다.`,
    });
  } else {
    res.status(400).json({
      message: "입력값을 확인해주세요.",
    });
  }
});

회원 개별 조회

app.get("/user/:id", (req, res) => {
  const targetId = parseInt(req.params.id);
  const user = db.get(targetId);

  if (user) {
    res.status(200).json({
      userId: user.user_id,
      username: user.name,
    });
  } else {
    res.status(404).json({
      message: "일치한 회원 정보가 없습니다.",
    });
  }
});

회원 삭제

app.delete("/user/:id", (req, res) => {
  const targetId = parseInt(req.params.id);
  const user = db.get(targetId);
  if (user) {
    db.delete(targetId);
    res.status(200).json({
      message: `${user.name}님이 탈퇴했습니다.`,
    });
  } else {
    res.status(404).json({
      message: "일치하는 회원 정보가 없습니다.",
    });
  }
});

profile
안녕하세요 매일의 배움을 기록으로 자산화하는 개발자 이규현입니다 😊

0개의 댓글