CRUD 갈아엎기 (0) - 목표 설정

nogie·2022년 5월 27일
0

갈아엎기

목록 보기
1/2
post-thumbnail

바야흐로 이번년도 3월..

내가 JavaScript에 입문하자마자 무언가 만들어내야 한다는 조급한 마음에 Express.js를 이용해 RESTful API로 CRUD 기능을 구현해 본 적이 있었다.

해당 Repository
https://github.com/nogie-dev/crud

구현했던 기능들로는 다음과 같다.

  • User : register, login, logout
  • Board : create, read, update, delete (Mysql DB연동)

깃 브런치에 redisTestSession 이라는 이름으로 redis를 이용해 세션을 caching 하여 로그인 부분을 처리해보려는 시도가 있었음을 확인할 수 있지만 redis에 대한 이해가 부족하고
현재 만드려는 API도 실 서비스의 목적이 아닌 개인 연습용이므로 caching의 필요성을 느끼지 못해 보류하게 되었다. ( 물론 나중에는 제대로 적용해 볼 예정이다. )

막상 적고보니 진짜 한게 별로 없긴 하다.
그러니 그동안 이곳 저곳에서 주워들은 지식으로 CRUD를 꾸며보려고 한다.

목표

1. 코드 정리 (리팩토링??)

아직 기능이 별로 없어 큰 문제는 없지만 보기에 깔끔하지 않고 기능을 추가할 때 아래로 쭉 작성하면 스파게티 코드로 바뀔 가능성이 매우 높아 필요해보인다.

var express = require('express');
const query=require('../db/mysql_query')
var router = express.Router();

router.get('/',(req,res)=>{
    if(!req.session.user){
        res.json({"status":"401","msg":"Unauthorized"})
    }else{
        //console.log(req.sessionID)
        query.getBoardList()
        .then((queryRes)=>{
            res.json(queryRes)
        })
    }
})

router.get('/:no',(req,res)=>{
    if(!req.session.user){
        res.json({"status":"401","msg":"Unauthorized"})
    }else{
        const number=req.params.no
        query.detailViewBoard(number)
        .then((queryRes)=>{
            res.json(queryRes)
        })
    }
})

2. 기능 추가

위에 모든 기능들을 적어놨듯이 기능이 몇개 없다.
일단 추가하고 지켜보자.

3. 보안 점검

사실 내 github의 CTF-ETC Repository 에 내부-면접용-Web문제 라는 이름으로 만들어진게 있다. 이 CRUD 소스를 가져다 수정하고 템플릿 엔진을 추가하여 만든 문제인데, 많은 문제점들이 발견되었다.. 내가 의도하지 않은 풀이로 문제를 풀었다던가 게시글 작성시에 작성자의 이름을 바꿔 글을 작성할 수 있는 등등 (이 부분은 인지하고 있었지만 문제를 푸는데 지장을 주지 않기에 그냥 냅뒀다.) 검증 부족과 같은 많은 문제점이 존재하고 있었다.

profile
Dev Space

0개의 댓글