바야흐로 이번년도 3월..
내가 JavaScript에 입문하자마자 무언가 만들어내야 한다는 조급한 마음에 Express.js를 이용해 RESTful API로 CRUD 기능을 구현해 본 적이 있었다.
해당 Repository
https://github.com/nogie-dev/crud
구현했던 기능들로는 다음과 같다.
깃 브런치에 redisTestSession 이라는 이름으로 redis를 이용해 세션을 caching 하여 로그인 부분을 처리해보려는 시도가 있었음을 확인할 수 있지만 redis에 대한 이해가 부족하고
현재 만드려는 API도 실 서비스의 목적이 아닌 개인 연습용이므로 caching의 필요성을 느끼지 못해 보류하게 되었다. ( 물론 나중에는 제대로 적용해 볼 예정이다. )
막상 적고보니 진짜 한게 별로 없긴 하다.
그러니 그동안 이곳 저곳에서 주워들은 지식으로 CRUD를 꾸며보려고 한다.
아직 기능이 별로 없어 큰 문제는 없지만 보기에 깔끔하지 않고 기능을 추가할 때 아래로 쭉 작성하면 스파게티 코드로 바뀔 가능성이 매우 높아 필요해보인다.
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)
})
}
})
위에 모든 기능들을 적어놨듯이 기능이 몇개 없다.
일단 추가하고 지켜보자.
사실 내 github의 CTF-ETC Repository 에 내부-면접용-Web문제 라는 이름으로 만들어진게 있다. 이 CRUD 소스를 가져다 수정하고 템플릿 엔진을 추가하여 만든 문제인데, 많은 문제점들이 발견되었다.. 내가 의도하지 않은 풀이로 문제를 풀었다던가 게시글 작성시에 작성자의 이름을 바꿔 글을 작성할 수 있는 등등 (이 부분은 인지하고 있었지만 문제를 푸는데 지장을 주지 않기에 그냥 냅뒀다.) 검증 부족과 같은 많은 문제점이 존재하고 있었다.