목록~2022 작성 글 (113)
상권's
* 앞 서 학습했던 내용을 복습하기 위해 질문과 답변 형태로 작성했습니다. 질문에 대해 개인적으로 이해하고 작성한 답변이기에 내용이 빈약하거나, 오류가 있을 수 있다는 점 양해 부탁드립니다. REST한 API에 대해서 자세히 설명해주세요. REST API는 REST 아키텍쳐 스타일을 따르는 API입니다. 여기서 REST란 REpresentational State Transfer의 줄임말로 분산 하이퍼미디어시스템을 위한 아키텍쳐 스타일로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법인 '네트워크 아키텍처 원리'의 모임이라고 할 수 있습니다. 추가 : 이러한 REST를 구성하는 스타일은 클라이언트-서버 구조, 무상태(stateless), 캐시, 계층 시스템, 인터페이스 일관성(Uniform Interf..
22.02.12 try/catch 적용부분 logout: async (req, res) => { // test done try { const cookie = req.cookies.jwt; if (!cookie) return res.status(401).json({ message: '로그인 유저가 아닙니다.' }); let decodedData = isAuthorized(cookie, res) const findUser = await UserModel.findOne({ where: { id: decodedData.id, userId: decodedData.userId } }); if (!findUser) return res.status(400).json({ message: '유저가 없어 로그아웃에 실패했습..
서버 리팩토링 1. 서버 jwt 쿠키 모듈화 하기 쿠키 만료인지 여부 확인하는 모듈을 만들어 봤습니다. 먼저, jwt.verify에서 try/catch문을 이용해 만료된 토큰의 여부를 확인했습니다. 마주한 에러 : 쿠키가 만료되었거나 잘못된 쿠키의 경우 isAuthorized에서 catch로 return res 을 해도 다시 logout으로 넘어왔을 때 decodedData 이후 코드 진행에 에러가 발생하고, 이미 res를 했기때문에 클라이언트에 보낸 이후에 headers 세팅을 불가능하다는 에러가 발생했습니다. 해결방법 : try/catch 예외처리를 학습하면서 리팩토링을 하고 있지만 너무 기본적인 거에서 오류를 냈습니다. 해당 문제는 isAuthorized catch에서 throw error를 해줌으..
* 앞 서 학습했던 내용을 복습하기 위해 질문과 답변 형태로 작성했습니다. 질문에 대해 개인적으로 이해하고 작성한 답변이기에 내용이 빈약하거나, 오류가 있을 수 있다는 점 양해 부탁드립니다. MVC 패턴에 대해서 설명해주세요. MVC 패턴이란, 소프트웨어 디자인 패턴 중 하나로 관심사 분리를 통해 소프트웨어의 비지니스 로직과 화면을 구분한 것입니다. MVC는 Model, View, Controller를 의미합니다. 먼저 모델은 데이터베이스와 연결되어 엡의 데이터를 나타냅니다. 뷰는 사용자에게 앱의 데이터를 보여주는 방식을 정의합니다. 마지막으로 컨트롤러는 앱의 사용자로부터 입력에 대한 응답으로 모델 및 뷰를 업데이트하는 로직을 포함합니다. 추가 : 저희 북담 프로젝트도 MVC 패턴으로 설계되었습니다. 리..
* 앞 서 학습했던 내용을 복습하기 위해 질문과 답변 형태로 작성했습니다. 질문에 대해 개인적으로 이해하고 작성한 답변이기에 내용이 빈약하거나, 오류가 있을 수 있다는 점 양해 부탁드립니다. promise(프로미스)의 개념에 대해서 설명하고, 콜백 함수 방식과 차이점을 설명해주세요. 프로미스를 간단하게 설명하면 내용이 실행은 되었지만, 결과는 아직 반환하지 않은 객체할 수 있습니다. 자바스크립트에서 비동기 처리에 사용되는 객체입니다. new Promise로 생성하며, 그 내부에 resolve와 reject를 매개변수로 갖는 콜백함수를 넣습니다. resolve가 호출되면 then 이 실행되고, reject가 호출되면 catch가 실행이 됩니다. 반면, 콜백함수는 함수 내에서 매개변수로 전달된 함수를 의미합..
* 앞 서 학습했던 내용을 복습하기 위해 질문과 답변 형태로 작성했습니다. 질문에 대해 개인적으로 이해하고 작성한 답변이기에 내용이 빈약하거나, 오류가 있을 수 있다는 점 양해 부탁드립니다. Node.js와 웹 브라우저의 차이점에 대해서 설명해주세요. Node.js와 웹 브라우저는 둘 다 자바스크립트 런타임입니다. 기존에는 웹 브라우저를 통해 자바스크립트가 출력되었는데 Node.js가 개발됨에 따라 웹 브라우저가 아닌 다른 환경에서도 자바스크립트가 실행될 수 있게 되었습니다. 웹 브라우저와 Node.js의 차이는 다음과 같습니다.먼저 웹 브라우저의 경우, 전역객체는 window이며, Node.js의 전역객체는 global 입니다.다음으로 모듈시스템으로, Node.js는 CommonJS 모듈 시스템(req..
* 앞 서 학습했던 내용을 복습하기 위해 질문과 답변 형태로 작성했습니다. 질문에 대해 개인적으로 이해하고 작성한 답변이기에 내용이 빈약하거나, 오류가 있을 수 있다는 점 양해 부탁드립니다. Javascript와 Nodejs가 어떻게 다른 것인지 설명해주세요. 자바스크립트는 개발 언어이며, Nodejs는 자바스크립트 런타임입니다. Nodejs는 크롬 V8엔진으로 빌드되어 자바스크립트라는 특정한 언어로 구현한 프로그램을 실행 시키는 환경입니다. 추가 : 기존에는 자바스크립트 프로그램을 웹 브라우저 위에서만 실행할 수 있었습니다. 브라우저 외의 환경에서 실행하기 위해 나온 것이 노드입니다. 모든 자바스크립트 파일을 브라우저에서 한 번에 로딩 할 때의 문제점을 설명해주세요. 브라우저가 HTML 파일을 파싱할 ..
문제점 1. SR단계에서 혼자 백엔드를 맡았다는 부담감에 프로젝트의 볼륨을 작게 잡았던 점 2. SR단계에서 api에서 반복되는 코드(jwt 유효성 검사)를 별로도 구현하지 못한 점. 3. AWS 배포 시 에러에 대해서 정확하게 파악하고 해결하지 못한 점. 4. 유저의 이미지를 s3에 저장하는 방법에 대해서 제대로 학습하지 못해 구현에 실패한 점. 5. DB에 유저 jwt를 담아서 유저를 검증하는 방안을 마련하지 못한 점. 6. Access 토큰만 활용하고 Refresh 토큰은 도입하지 못한 점. 7. Bcrypt의 비동기적인 방법이 권고되는 이유에 대해서 직접 검증해보지 못한 점. 8. 학습했던 TDD를 반영하지 못한 점. 9. RESTFul한 api를 구현하지 못한 점. 10. 예외처리를 미숙하게 한..