목록전체 글 (305)
개발하고 싶은 초심자
파이널 프로젝트의 마무리가 슬슬 다가와간다. 사실, 프로젝트 자체가 완벽하게 완성되지는 않았지만, 코드스테이츠에서 주어진 시간 안에 모든 것을 다 끝낼 수는 없기 때문에 일단은 시간 내의 마무리가 다가온다. 그래서 오늘은 뭔가 기능을 더 추가하려 하기보다는 구현해놓은 기능들에 대한 에러 핸들링을 주로 했다. 1. git 관련 에러들 // git pull upstream dev 명령어 실행 시 충돌로 인한 병합이 되지 않는 에러 https://github.com/codestates/conimals URL에서 * branch dev -> FETCH_HEAD 제거: client/src/pages/Main.css 자동 병합: client/src/components/Nav.js 충돌 (내용): client/src..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/x5CHx/btrEIsrfRap/jBsD3slnHmy9xE2zLPLBNk/img.png)
애플리케이션 및 파이프라인 생성 과정 레퍼런스 파이프라인 생성 후 자동 배포 시도 중 나온 에러. .gitignore를 지웠더니 나오지 않았다. 그러나 다시 이렇게 나왔다. .gitignore 파일은 배포 시 관계가 없는 파일인 것 같아 지웠지만, initialize.sh는 있어야 하는 파일인 듯한데 왜 이렇게 나올까? 구글링을 해보면 크게 두 가지 해결책을 제시한다. 1. appspec.yml에서 beforeInstall 과정에서 수행할 스크립트를 추가한다. (이미 존재하고 있는 파일 삭제 후 진행) 2. 파일들을 OVERWRITE 한다. initialize.sh파일을 지울 수는 없었기 때문에 2번을 선택했다. version: 0.0 os: linux files: - source: / destinati..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/V5xWR/btrEyvmYYr3/XUgnHT2gquwJbC6MQeOark/img.png)
게시글을 작성하고 나서 해당 게시글의 내용을 확인하면 내용을 확인할 수 없었는데, 서버에서 해당 게시글의 내용을 확인할 수 있는 컨트롤러가 없어서였다. 그래서 라우트에 get요청을 하는 viewRoute를 하나 만들고, 그에 따른 viewController를 생성하여 코드를 작성했다. 1. 서버 viewController 코드 작성 전체 게시글을 가져오는 기능과는 달리 viewController(이하 view)는 내가 원하는 내용의 게시글의 데이터만 가져올 수 있어야 하기 때문에, req.params로 posts.id를 뒤에 붙였다. // 1차 작성코드 const { 게시물 } = require('../../models'); module.exports = async (req, res) => { try {..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/v0JPl/btrEtLCVBPR/dkrf1k4sWi4OPvOlVVMqNk/img.png)
전체 게시글을 조회할 때는 사용자의 닉네임(userName)만 가져오고 싶었고, 마이페이지에서 사용자 정보 조회를 할 때는 사용자가 업로드한 게시물들의 정보까지 같이 가져오고 싶었다. 어제까지 해결하지 못했던 두 가지 문제를 오늘 해결할 수 있었다. 1. 마이페이지에서 사용자 정보 조회 시 게시물 정보까지 가져오기 const { 사용자, 게시물 } = require('../../models'); const { 토큰관리하는함수 } = require('../tokenFunctions'); module.exports = async (req, res) => { // 토큰을 검증하는 변수를 하나 선언하여 req를 할당해준다(이하 verify) if (!verify) { // 검증이 되지 않으면 400코드로 응답한..
1. 전체 게시글 및 마이페이지 정보 조회 try catch 구문과 findAll()메소드, 그리고 배열 메소드인 map을 활용하여 코드를 작성해보았다. const { 조회할 모델명 } = require('../../models'); module.exports = async (req, res) => { try { const 변수 = await 조회할 모델명.findAll(); if (변수) { const 조회할 데이터 = 변수.map((전달인자) => { return { // 조회할 내용 }; }); return res .status(200) .send({ 조회할 데이터, message: '게시글 조회에 성공하였습니다' }); } else { return res.status(404).send({ mess..
1. 서버에서 토큰 받아오기 토큰을 받아오고 카카오 로그인을 한 사용자의 정보를 받아오는 것 까지는 되는데 데이터베이스에 저장이 되지 않으면서 결과적으로는 제대로 로그인이 되지 않는 것 같아 보였다. 처음 썼던 코드에서는 const { userEmail, profile } = kakaoUserInfo.data.kakao_account; const userInfo = await users.findOne({ where: { userEmail } }); if(!userInfo) { const newUserInfo = await users.create({ userEmail: userEmail, userName: profile.nickname }); } findOne과 create메소드를 사용하여 하나씩 단계를 ..
kakao developer 공식 문서를 활용하여 인가 코드를 받아오는 요청을 하고, 서버에서 토큰을 보내주는 요청을 하는 코드를 작성했다. 처음 클라이언트에서 get요청을 보낼 때 `https://kauth.kakao.com/oauth/authorize?response_type=${code}&client_id=${process.env.REACT_APP_KAKAO_REST_API_KEY}&redirect_uri=${process.env.REACT_APP_KAKAO_REDIRECT_URI}` 이렇게 써서 보내주었더니 계속해서 has been blocked by CORS Policy를 콘솔에서 마주치게 되었다. cors에러에서 나온 링크를 다시 들어가 로그인을 했을 때 KOE201 invalid_reques..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7AHx8/btrDLXFrfiA/ee1ssKpwWA2aILUE3aZkBk/img.png)
(Kakao Developer에서 애플리케이션을 생성하고 키 발급과 client secret을 발급받았다는 가정 하에 진행된다.) ① kakao developer의 redirect uri의 활성화를 on 해주고 https://getpostman.com/oauth2/callback를 redirect uri에 적어준다. ② 포스트맨에 들어가 Authorization의 Type을 OAuth 2.0으로 지정해준 뒤, Configuration Options를 채워준다. Token name은 임의로 지정해준다. Callback URL, Auth URL, Access Token URL은 사진에 나와있는 그대로 적어준다. Client ID는 kakao developer에서 확인할 수 있는 REST API KEY를 적어..