목록Project in Codestates (31)
개발하고 싶은 초심자
파이널 프로젝트가 끝이 났다. 발표 슬라이드와 발표를 작성하고, 영상을 녹화하고 노션에 올리니 21일이 되었다. 프로젝트를 들어가기 전에는 그저 이 섹션이 끝나고 프로젝트를 빨리 시작했으면 싶었다. 학습을 지속하면서 '이 정도면 나도 다른 사람들이랑 같이 프로젝트 진행할 수 있지 않을까?'라는, 어떻게 보면 안일한 생각이었을 수도 있다. 그렇게 2주 프로젝트(이하 브루히어)를 기대와 설렘으로 시작했지만, 소위 멘붕이 왔었다. 프로젝트 주제를 정하고, 기획 단계를 거쳐 코드를 작성할 때 생각처럼 제대로 기능이 구현되지 않고 빨간 글씨의 에러가 나를 맞이했다. 시간이 부족하여 3일 만에 기획을 끝내고 바로 코드 작성하기에 급급했기 때문이다. 밤샘 작업도 마다하지 않고 주변의 수료생분들께 질문을 통해 에러에 ..
파이널 프로젝트의 마무리가 슬슬 다가와간다. 사실, 프로젝트 자체가 완벽하게 완성되지는 않았지만, 코드스테이츠에서 주어진 시간 안에 모든 것을 다 끝낼 수는 없기 때문에 일단은 시간 내의 마무리가 다가온다. 그래서 오늘은 뭔가 기능을 더 추가하려 하기보다는 구현해놓은 기능들에 대한 에러 핸들링을 주로 했다. 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..
애플리케이션 및 파이프라인 생성 과정 레퍼런스 파이프라인 생성 후 자동 배포 시도 중 나온 에러. .gitignore를 지웠더니 나오지 않았다. 그러나 다시 이렇게 나왔다. .gitignore 파일은 배포 시 관계가 없는 파일인 것 같아 지웠지만, initialize.sh는 있어야 하는 파일인 듯한데 왜 이렇게 나올까? 구글링을 해보면 크게 두 가지 해결책을 제시한다. 1. appspec.yml에서 beforeInstall 과정에서 수행할 스크립트를 추가한다. (이미 존재하고 있는 파일 삭제 후 진행) 2. 파일들을 OVERWRITE 한다. initialize.sh파일을 지울 수는 없었기 때문에 2번을 선택했다. version: 0.0 os: linux files: - source: / destinati..
게시글을 작성하고 나서 해당 게시글의 내용을 확인하면 내용을 확인할 수 없었는데, 서버에서 해당 게시글의 내용을 확인할 수 있는 컨트롤러가 없어서였다. 그래서 라우트에 get요청을 하는 viewRoute를 하나 만들고, 그에 따른 viewController를 생성하여 코드를 작성했다. 1. 서버 viewController 코드 작성 전체 게시글을 가져오는 기능과는 달리 viewController(이하 view)는 내가 원하는 내용의 게시글의 데이터만 가져올 수 있어야 하기 때문에, req.params로 posts.id를 뒤에 붙였다. // 1차 작성코드 const { 게시물 } = require('../../models'); module.exports = async (req, res) => { try {..
전체 게시글을 조회할 때는 사용자의 닉네임(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..