로그인 기능을 구현해야 할까?

Sinf·2022년 5월 19일
0

고민의 흔적

목록 보기
23/38

로그인 기능을 구현해야 할까?

개인적인 블로그 페이지를 개발하면서, 글쓰기에 대한 고민이 생겼다.

내 블로그에는 나만 글을 작성할 수 있어야 하는데, 로그인 기능을 구현해야 할까?

로그인이 나만 가능하다면 로그인을 위한 코드를 작성하는게 맞을까?

필요 없지 않을까?

로그인이 필요없지 않을까? 라는 생각에 개인적으로 가설을 세웠다.

  1. 특정 키를 헤더에 포함시켜서 키를 포함한 요청에 대해서 수행한다.
  2. 꼭, 클라이언트에서 글쓰기를 진행할 필요가 없지 않나? 로컬에서 글쓰기 요청을 보내는건 어떤가?

먼저, 로컬에서 특정 키를 입력하고, 포스팅 내용을 입력해 폼을 전달하는 앱을 작성했다.

그리고, 서버에서는 특정 키를 검증해 POST 요청을 수행하거나 수행하지 않는 코드를 작성했다.

import { Request, Response, NextFunction } from "express";
import config from "../config";
import { UnauthorizedException } from "../error/index";

export default function checkPermission(
  req: Request,
  res: Response,
  next: NextFunction
) {
  const secretKeyInRequest = req.headers.authorization?.split("Bearer ")[1];
  const { secretKey } = config;

  if (secretKeyInRequest !== secretKey) {
    return next(new UnauthorizedException("권한이 없습니다."));
  }

  next();
}

문제가 생겼다.

로컬에서 배포하지 않은 상태로 포스팅 요청을 보낼 생각이었는데, localhost에서 보내는 요청에 대해서 수행할 수 없다고 나왔다.

CORS 문제였다.

쉽게 할 수 있다고 생각했는데, 잠시 고민했다.

다른 방법

CORS 문제를 해결하고 시도할 수 있지만,
유저 기능을 구현하는게 좋을 수 있겠다라는 생각이 들었다.

추후 댓글 기능을 추가하거나 추가적인 유저 기능을 부여한다면 유저 기능은 필요하다고 판단되었다.

글쓰기에 대해서 등급으로 권한 설정을 하면 될 것이었다.

합리적인 판단

처음엔 유저 기능 추가, 포스팅 페이지 구성 등 클라이언트에 구현하는 것이 효율적이지 않다고 생각했었다.

하지만, 기능의 확장을 생각하면 한가지 기능만 하는 기능을 구현하는 것보다 범용적인 기능을 구현하는 것이 더 합리적인 것 같다.

문제를 직면하고 해결할 때,
최대한 합리적인 판단을 하려고 한다.
순간의 단순함에 혹해 범용성보다 단순성을 선택할 수도 있지만,
조금 더 고민해보고 좋은 결과를 찾아야 할 것 같다.

profile
주니어 개발자입니다. 🚀

0개의 댓글