진짜 이번 2학년 여름방학이 아니면 운동을 배워볼 시간이 없을 것 같아서 큰 마음을 먹고 웨이트를 배웠었다.피티쌤이 나랑 동갑에 나랑 MBTI 하나만 다른 ENFJ였고 그 분도 맨날 운동하셔서 같이 파트너 운동도 하고 진짜 재밌었다. 개꿀잼 암튼 그런 일이 있었다.
그래서 운동도 제대로 해보고 싶을 겸,
또 기록하고 저장해두는 걸 좋아하는 나를 떠올리며
내가 가지고 있는 기술 스택을 모아서 구현할 수 있는,
프로젝트 하나를 피그마로 구성해 보았었다.
대충 이렇다.. 그냥 진짜 내가 쓰고 싶어서 만들어본 거라 내 주관이 잔뜩 있는 데다가 왕 허접하다..
그래서 저 중에 아주 일부분을 구현해보았다! 그냥 간단한 CRUD이다.
일기는 실시간 전송으로 현재 날짜와 내용이 전송된다.
import axios from "axios"
export const postDiary = async({username,useremail,date,description}) => {
const postDiaryEndPoint = "http://10.0.2.2:8080/diary"
console.log(username,useremail,date,description);
try {
const resp = await axios.post(postDiaryEndPoint, {
name:username,
email: useremail,
date: date,
description: description,
})
console.log('결과값:',resp);
return resp
}
catch(err) {
console.log(err)
return (err)
}
}
이메일과 date로 걸러낸 데이터를 가져올 것이기 때문에 그 두개를 query parameter로 가져와 전달해주었다.
postman으로 하나 살펴보면 이런 식으로 email, date를 query로 두 개 동시에 전달해준다.
※더 공부할 것
1. 이 때 server에서 짤 때 date를 이렇게 쌩으로 전달해준 것을 조금 후회하고 있다..
그런데 어떻게 하는 게 효율적으로 날짜를 전달해주는 방법일지 아직은 공부가 더 필요한 것 같다...ㅠ
2. path variable, 즉 diary/2/ 이런식으로 전달해주는 방법과,
query parameter, 즉 ?email=블라블라&date=볼라볼라 이런식으로 전달해주는 방법
에 어떤 규칙 또는 공식이 있는지 공부할 필요가 있다.
exports.getAllDiaries = (req,res,next)=>{
Diary.find()
.then((description)=> {
if(!description.length) return res(404).send({err: 'diary not found'});
res.json(description);
})
.catch(err => res.status(500).send(err))
}
exports.getDiaries = async (req,res,next)=>{
email_=req.query.email
date_=req.query.date
Promise.all([
await Diary.find({email:email_,date:date_})
.then((result,err)=> {
console.log(result)
console.log(result.length)
if (err){ res.send(err) }
if(result.length==0 || result.length!=1 || result.length=='0') return res(404).send({err: 'diary not found'});
res.json(result[0].description);
})
.catch(err =>
res.status(500).send({error: "Something failed! Diary Not found"}))
])
}
request로 받은 데이터의 query의 email/date를 각각 받아 Diary라는 데이터베이스(모델)에서 가져온다.
이후 받은 데이터가 존재한다면 그 중 중복되지 않게 result[0] 가장 위에 있는 데이터 한 개의 description을 res에 리턴해준다.
※더 공부할 것
에러 처리..!!
에러 처리가 검색으로 한계가 있어 진전을 어떤 방향으로 해야 할지 감이 잘 안 잡혀서 문제였다...
개발자의 경우 500을 에러로 보내는 것은 약간의 자존심 스크래치(?)라고 하는데 그렇게 되지 않도록 공부를 제대로 하고 싶다고 생각했다!
지금껏 android studio를 사용하고 있었다.
안드로이트 스튜디오 진짜 너무 느리다.. 이번에 학교에서 kotlin을 배우는 겸 intellij를 깔아야 했어서 그냥 react native도 intellij로 바꿔버렸다. 안드로이드스튜디오보다 나은 것 같다..(기분탓일 수도 있다)
조금만 컴퓨터가 느려져 버리면 그 다음부터 버튼이 안 먹고 그래서 그럴 땐 해당 컴포넌트에 있는 글자 하나씩 바꿔보면서 계속 변화 확인하면서 컴터가 쉬지 않도록 하는 아주 허접한 방법을 사용하고 있다...
그래도 이번에 간단한 CRUD를 만들어보면서 server를 짜임새 있게 멋있게 짜는 것에 대한 갈망(??)이 생겨났다.
그리고 너무 혼자서 이렇게 공부하는 것에 대한 한계를 크게 느꼈다.. 어느 정도까지는 속도가 붙지만 그 다음에 어떤 걸 해야 하는지에 대한 방향성을 잘 찾지 못하는 한계가 있었다.
다행히도 UMC라는 동아리에서 방향성 있게 공부할 수 있다는 걸 알아 SPRING 공부를 진짜 한 번 제대로 해보면 좋겠다고 생각해 지원했다.
server를 꼼꼼하고 짜임새 있게 정리하는 걸 깊게 한 번 배워보고 싶다
(authentication이나 에러처리나 복잡한 서버 구현 같은 거?)
들어가서 진짜 제대로 열심히 해야징,,
면접 때 내가 기획하고 싶은 프로젝트를 소개할 수도 있다고 해서 저 부끄러운 프로젝트도 한 번 제안해볼까 생각 중이다.
뭔가 기대된다(??)
'BackEnd > Node.js' 카테고리의 다른 글
[nodejs, postman] post 요청 데이터 만들어 처리하기 (0) | 2022.07.26 |
---|