inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

grapnql fetchboardscount와 createboard

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요 데이터 통신 실습 중에 질문이 생겨 남깁니다. create board 실행 시 리턴값으로 number를 지정했을 때 나오는 게시물의 수와 fetchboardscount 실행 시 리턴값이 다른 이유가 궁금합니다. createboard의 리턴값도 몇 번째 게시물로 생성된 것인지 알려주므로 둘 다 게시물의 개수를 알려주는 게 아닌가요 ?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
댓글 1 좋아요 0 조회수 210

[앱 완성도 높이기3 - URL을 통한 보기모드 변경] 로그인 성공 후 라우팅 문제

해결됨

Svelte REST-API 프로젝트

현재 강의 내용대로라면, 로그인 성공 후 /articles path로 이동하기 때문에 404 Not Found 페이지 가 나타납니다. 그러므로 auth 스토어 의 login 메소드 에서도 /articles 에서 /articles/all 로 router.goto의 path를 변경 해야할 것 같습니다. const login = async (email, password) => { try { const options = { path: "/auth/login", data: { email: email, pwd: password, }, }; const result = await postApi(options); set(result); isRefresh.set(true); router.goto("/articles/all"); } catch (error) { throw error; } };

  • rest-api
  • svelte
JB_ 댓글 1 좋아요 0 조회수 349

[앱 완성도 높이기2 - 날짜보기] 타임존 관련 설정 문제

해결됨

Svelte REST-API 프로젝트

23년 05월 9일 22시 32분에 게시글을 작성 했지만, 아래 이미지를 보면 알 수 있듯이, API로 가져온 createdAt 은 UTC 기준 날짜로 DB에 저장 되어 있습니다. 강의 영상대로 dateView 메소드를 구현한 후 게시글 작성날짜를 보면 다음과 같습니다. 위 결과를 보면 알 수 있듯이 상대시간 계산이 제대로 이뤄지지 않고 있음 을 확인할 수 있습니다. 검색을 해보니 day.js 에서 utc 플러그인 을 사용할 때 timezone 플러그인 을 함께 사용해야 하는 것 같습니다. (참고: Dayjs 로 타임존을 다룰 때 주의해야 할 사항 2가지 ( velog.io ) ) 위 내용을 참고하여 dateView 메소드를 다음과 같이 수정했습니다. import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import utc from "dayjs/plugin/utc"; import timezone from "dayjs/plugin/timezone"; import ko from "dayjs/locale/ko"; function dateView(date) { dayjs.extend(utc); dayjs.extend(timezone); dayjs.locale(ko); dayjs.extend(relativeTime); return dayjs().to(dayjs(date).tz().format("YYYY-MM-DD HH:mm:ss")); } export default dateView; 그리고 결과를 확인해보면, 한국 시간을 기준으로 상대시간이 올바르게 계산되는 것을 확인할 수 있었습니다.

  • rest-api
  • svelte
JB_ 댓글 1 좋아요 0 조회수 1609

서버가 안열려요

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

코드캠프 서버가 안 열려요 실습해야 하는데

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
알렉스 페레이라 댓글 2 좋아요 0 조회수 397

db가 이미 존재한다는 오류가 뜹니다

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

graphql 방식이 아닌 rest로 변경하면서 다시한번 복습중인데 rest의 경우 app.module.ts에서 TypeOrmModule.forRoot({})에서 synchronize: true, 가 되어있을 시 db오류가 나는데 제가 다른 것을 잘못 설정한 것인가요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
yskim 댓글 1 좋아요 0 조회수 442

로그아웃 기능 관련해 질문있습니다.

미해결

[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]

안녕하세요. 로그아웃 관련 질문있어서 글 남깁니다. 브라우저: safari 구독 후 safari 브라우저 완전 종료 safari 브라우저 재실행 및 재접속 구독 상태 유지 (session 365일 설정) '구독취소'버튼 클릭시 AttributeError: 'AnonymousUserMixin' object has no attribute 'id' 에러 발생 혹시 위 현상 관련해서 해결방법이 뭔지 알 수 있을까요? PS. 확인해보니, safari를 완전히 종료하고 재실행하면, remember_token 값은 이전 값과 일치하게 존재하는데, session 값만 바뀌고 있습니다. 이 때문에, 기존의 user 객체를 가져오지 못하는 거 같은데, 이런 현상이 왜 발생하는걸까요? - 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다) - 이외의 문의등은 평생강의이므로 양해를 부탁드립니다 - 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다 - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • python
  • rest-api
  • flask
beegizee1220 댓글 1 좋아요 0 조회수 497

웹서버로 턴제 카드게임 구현가능할까요?

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

본인의 턴에 카드를 구매하고 카드의 효과로 점수를 얻는 식의 멀티플레이 게임을 구상중입니다. 혹시 웹서버로 이정도 게임의 서버를 구현하는 것이 적절할 지 궁금해 여쭈어봅니다. 제가 판단하기로는 가능하다고 생각하는데 서버공부를 한지 얼마 안된 초보다 보니 루키스님의 의견이 궁금해 강의 직접적인 관련은 없지만 이렇게 질문을 남깁니다. 그리고 하스스톤, 문명 등 참고할 만한 게임이 어떤 식으로 구현되었는지 정보를 찾아보고 싶은데 적절한 키워드가 떠오르지 않네요.. 혹시 이런 정보를 찾을 때의 팁을 여쭈어봐도 될까요? 감사합니다.

  • rest-api
  • blazor
  • web-api
  • asp.net-core
king 댓글 1 좋아요 0 조회수 1757

nodejs express에서 type(commonjs,module) 관련 질문

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

서버작동을 위한 node app.js를 실행할때에 dotenv를 require, import를 하면서 문의점이 발생했습니다. //server.js import { creatApp } from "./app.js"; import database from "./models/database.js"; const startServer = async () => { try { await database; const app = creatApp(); const PORT = process.env.PORT; app.listen(PORT, () => { console.log(`server is listening on ${PORT}👌`); }); } catch (err) { console.log(`Failed server connect❌`); database.destroy(); } }; startServer(); //database.js import { createConnection } from "typeorm"; import dotenv from "dotenv"; dotenv.config(); const database = createConnection({ type: process.env.DB_CONNECTION, host: process.env.DB_HOST, username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, port: process.env.DB_PORT, database: process.env.DB_DATABASE, }); export default database; 이렇게 진행하면 정상적으로 서버가 정상적으로 작동하지만 database.js에서의 dotenv import 부분을 require방식으로 server.js에 옮겨놓으면 에러가 발생합니다. 근본적으로 commonJS(require)방식과 module(import)방식에 대해서 dotenv를 불러올때에 require를 쓰면 server.js에 적용할때는 정상적으로 작동하는데 import를 똑같은상황에서 적용하려면 왜 database.js로 넘어가야하는지 그게 궁금해졌습니다! require와 import를 해올 때 전반적으로는 rquire는 동기적이고 import비동기적인 성질(?)때문이라고 하기에 영향이 있는건지.. 근본적인 이해가 되지 않아서요..ㅠㅜ 도움 부탁드리겠습니다 ㅠㅜ!!!!

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
zeler1004 댓글 1 좋아요 0 조회수 530

카카오맵 API, 윈포윈도우 디폴트값 해제 방법

해결됨

비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지

안녕하세요. 재미있게 수업 수강하고 있습니다. 현재 [섹션 5. 카카오맵에 여러개의 맛집 위치를 찍는 방법]을 수강하고 있는데요. 카카오맵에서 인포윈도우를 설정하면 기본으로 div를 생성하고 border에 회색 테두리를 생성하는 것 같습니다. 수업에서 만드는 infowindow 뒤쪽으로, 회색 테두리가 하나 더 보여서요. 우리가 만드는 infowindow만 표시되도록 할 수 있는 방법이 있을까요? 카카오에서 생성하는 인포윈도우를 제거하거나, 혹은 해당 css를 제어할 수 있는지 궁금합니다. (저는 테두리가 없이 box-shadow로 표현하려고 시도하고 있습니다.)

  • HTML/CSS
  • javascript
  • aws
  • git
  • mysql
  • rest-api
  • github
Won Special 댓글 1 좋아요 0 조회수 1183

[보기모드 변경 구현] 코멘트 리스트 조회 후 문제

해결됨

Svelte REST-API 프로젝트

특정 게시글의 코멘트 리스트를 조회하는 화면 에서 뒤로 가기 를 하거나 글 목록 보기 를 하면 이전 화면으로 잘 이동합니다. 그러나 코멘트 리스트 조회 화면(게시글 상세조회) 에서 보기모드(모두/좋아요/내글) 를 클릭해도 화면에 아무 변화가 없습니다. (API는 정상적으로 요청) 그래서 ArticleHeader 컴포넌트 에서 onChangeMode 메소드 를 다음과 같이 수정하여 정상적으로 동작하는 것을 확인했습니다. [변경 전] const onChangeMode = (mode) => { if ($articlesMode !== mode) articlesMode.changeMode(mode); }; [변경 후] const onChangeMode = (mode) => { if ($articlesMode !== mode) { articlesMode.changeMode(mode); router.goto("/articles"); } }; 위와 같이 수정한 것이 올바른 방법이 맞을까요?

  • rest-api
  • svelte
JB_ 댓글 2 좋아요 0 조회수 510

[보기모드 변경 구현] 좋아요 보기 구현에서 문제 발견

해결됨

Svelte REST-API 프로젝트

user7@user7.com 이라는 계정을 만들어서, 총 3개의 게시물에 좋아요를 클릭 하였습니다. 아래 스크린샷을 보면 알 수 있듯이, user1이 작성한 게시물 2개 에 좋아요를 클릭했고 나머지 1개는 user7이 작성한 게시물 에 좋아요를 클릭했습니다. 그러면 좋아요 보기 를 클릭하면, 3개의 게시물만 화면에 나와야하고 user1이 작성한 게시물 2개 user7이 작성한 게시물이 1개 나와야 합니다. 그러나 아래 스크린샷을 보면, 좋아요를 클릭한 게시물의 작성자가 모두 user7 인 것을 볼 수 있습니다. 확인을 해보니 백엔드 API(GET /likes) 에서 날리는 쿼리에 문제가 있었습니다. likeArticles = await db.like.findMany({ where: { userId: userId, }, include: { article: { select: { id: true, content: true, commentCount: true, likeCount: true, createdAt: true, }, }, user: { select: { id: true, name: true, email: true, }, }, }, orderBy: { id: "desc", }, skip: skip, take: pageSize, }); 위에서 user를 조인하여 정보를 가져오는데 해당 user는 article 작성자가 아니라 좋아요를 클릭한 사용자의 정보 입니다. 그러므로 아래와 같이 article의 작성자 정보를 가져오도록 aritcle 내부에 user를 추가 해줘야 합니다. likeArticles = await db.like.findMany({ where: { userId: userId, }, include: { article: { select: { id: true, content: true, commentCount: true, likeCount: true, createdAt: true, user: true, }, }, }, orderBy: { id: "desc", }, skip: skip, take: pageSize, }); 그리고 가져온 정보를 평탄화하는 로직에서 userId , userName , userEmail 부분을 수정해줘야 합니다. flattenArticles = likeArticles.map((article) => { let newArticle = { id: article.article.id, content: article.article.content, commentCount: article.article.commentCount, likeCount: article.article.likeCount, createdAt: article.article.createdAt, userId: article.article.user.id, userName: article.article.user.name, userEmail: article.article.user.email, likeMe: true, }; return newArticle; }); 그럼 다음과 같이 정상적인 결과를 가져올 수 있습니다.

  • rest-api
  • svelte
JB_ 댓글 1 좋아요 0 조회수 474

workbench에서 접속이 안되고있습니다.

미해결

비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지

안녕하세요. 금일 메일로도 문의드렸던 학생입니다. mail 첨부이미지대로 설정을 다 했는데도 불구하고 인스턴스 규칙 추가 bind address 주석처리 root도 %로 IP대역 변경 또한 sudo를 넣어 관리자권한으로 mysql restart까지 완료했습니다. 하지만 여전히 workbench에서 test connection fail팝업창이 나와서 진도가 더이상 진행되지 않고있네요.. 구글링하여도 답을 찾을 수 없어 문의 다시 드립니다.

  • HTML/CSS
  • javascript
  • aws
  • git
  • mysql
  • rest-api
  • github
sssohi 댓글 1 좋아요 0 조회수 412

[인증 구현 - 컴포넌트] error 처리 관련 질문

해결됨

Svelte REST-API 프로젝트

2분 12초 인증 컴포넌트를 테스트해보는 과정에서 질문이 생겼습니다. 만약 백엔드 서버가 작동하지 하고 있다면, 이메일/패스워드 입력 후 로그인 버튼을 클릭하면 auth 스토어의 login 메소드에서 에러가 발생합니다. 그럼 이때 try/cath로 인해 "오류가 발생했습니다. 로그인을 다시 시도해 주세요." 라는 alert 문구를 띄우게 됩니다. 만약에 AuthLogin 컴포넌트에서 정의한 try/catch으로 alert를 보여주고 싶다면 Auth 스토어의 login 메소드에서 try/catch를 하지 않으면 되는데, 이는 좋은 방법같지 않은거 같습니다. 아니면 on:click 이벤트 정의 메소드에서는 try/cathc를 안해는게 나을까요? error를 catch 하는 것을 한 곳에서 관리(?)하여 에러 발생시 내가 원하는 동작(화면)을 보여주고 싶다면 어떻게 코드를 작성하는게 좋을까요?

  • rest-api
  • svelte
JB_ 댓글 1 좋아요 0 조회수 443

mongo 실행 불가

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요 몽고디비를 다시 복습하고자 공부하던중 저번에 brew update를 통해 해결 된줄 알았지만 또 다시 같은 오류가 발생하였습니다... 이 에러는 어떠한 에러인지 찾아보고 gpt에다가 물어봐도 안나오는데.. 혹시 무엇 때문에 몽고가 brew services start mongodb-community 를하게 되면 이 오류가 발생하게 됩니다.. 도와 주세요..ㅠㅠ

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
뽕리뽕뽕 댓글 1 좋아요 0 조회수 296

[인증 구현 - store] setAuth 메소드 구현

해결됨

Svelte REST-API 프로젝트

setAuth 메소드 구현 과정(6분 34초) 중 try/catch문에서 resetUserInfo 메소드를 호출할 때 왜 resetUserInfo() 가 아닌 auth.reserUserInfo() 인지 궁금합니다.

  • rest-api
  • svelte
JB_ 댓글 1 좋아요 0 조회수 403

[스토어 배치] 강의 내용 중 수정이 필요한 부분

해결됨

Svelte REST-API 프로젝트

[40초 - src/stores/index.js ] service 폴더에 있는 api.js 파일을 임포트 시키는 것이므로 상대주소를 다음과 같이 작성해야 합니다. "../service/api.js"

  • rest-api
  • svelte
JB_ 댓글 1 좋아요 0 조회수 390

axios를 활용한 데이터 통신

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

핸드폰 번호를 입력하면 페이지 상에서는 개발자 도구에서 이렇게 잘 나오지만 vscode console에 찍어보면 myphone 번호가 아니라 undefined로 나옵니다. 아래는 phone.js 코드입니다. (length에서 자꾸 에러가 나서 그 부분만 수정된 코드입니다.) function checkPhone(myphone) { //1. 휴대폰 번호 자릿수 맞는지 확인하기(10-11자리) if (myphone && myphone.length < 10 || myphone && myphone.length > 11) { console.log("에러 발생!!! 휴대폰 번호를 제대로 입력해주세요."); return false; } else { return true; } } //2. 인증번호 6자리 만들기 function getToken() { const result = String(Math.floor(Math.random() * 1000000)).padStart(6, "0"); console.log(result); return result; } //3. 핸드폰 번호에 토큰 전송하기 function sendTokenToSMS(myphone, result) { console.log(myphone+ "번호로 인증번호" + result + "를 전송합니다."); } module.exports = { checkPhone, getToken, sendTokenToSMS }; 이건 signup.html <!DOCTYPE html> <html lang="ko"> <head> <title>회원가입 연습하기</title> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> <script> function zzz(){ //1. 입력한 휴대폰 번호 가져오기 const myphone = document.getElementById("myphone").value console.log("나의 핸드폰 번호 : ", myphone) //2. 해당 휴대폰 번호로 인증번호 API 요청하기 axios.post("http://localhost:3000/tokens/phone", { qqq: myphone }).then((res) =>{ console.log(res.data) document.getElementById("result").innerText = res.data }) } </script> </head> <body> 휴대폰 번호 : <input id="myphone" type="text"/><button onclick="zzz()">인증하기</button> <div id="result">인증상태</div> <button>회원가입하기</button> </body> </html> index.js const express = require('express'); const { checkPhone, getToken, sendTokenToSMS } = require('./phone.js'); const swaggerUi = require('swagger-ui-express'); const swaggerJsdoc = require('swagger-jsdoc'); const {options} = require('./swagger/config.js'); const swaggerSpec = swaggerJsdoc(options); const cors = require('cors'); const app = express(); //use : 모든 메소드에서 작동한다. app.use(express.json()) app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec)); app.use(cors()) //GET 방식의 API를 만들겠다. //endpoint는 /로 하겠다. // /qqq이쪽 endpoint로 누군가 요청을 하면 아래 함수를 실행을 시키겠다. app.get('/boards', function (req, res) { //1.DB에 접속 후, 데이터를 조회. 조회한 데이터를 객체로 담아온다. const result = [ {number : 1, writer: "철수", title : "제목입니다.", contents: "내용이에요."}, {number : 2, writer: "영희", title : "제목입니다.", contents: "내용이에요."}, {number : 3, writer: "훈이", title : "제목입니다.", contents: "내용이에요."}, ] //2.DB에서 꺼내온 결과를 브라우저에 응답(response)으로 주기 res.send(result) }, function (req, res){ }) app.post('/boards', function (req, res) { //1. 브라우저에서 보내준 데이터 확인하기 console.log(req) console.log("=====") console.log(req.body) //2. DB에 접속 후, 브라우저에서 받은 데이터를 디비에 저장해야 함. //3. DB에 저장된 결과를 브라우저에 응답(response) 주기 res.send('게시물 등록에 성공하였습니다.') }) app.post('/tokens/phone', function(req, res){ const myphone = req.body.phone //1. 휴대폰번호 자릿수 맞는지 확인 (10-11자리) const isValid = checkPhone(myphone) if(isValid === false) return //2. 핸드폰 토큰 6자리 만들기 const myToken = getToken() //3. 핸드폰 번호에 토큰 전송하기 sendTokenToSMS(myphone, myToken) res.send("인증완료!!!") }) //포스트맨에서 send 버튼 누르는 것 = 기다린다 = listen app.listen(3000)

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
SW 댓글 1 좋아요 0 조회수 756

logout시에 database delete -> 새로운 입력에 대해 user_id 증가

미해결

[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]

안녕하세요, logout 기능 구현할 때 database에서 delete를 통해 구독 취소한 메일을 제거해주는 내용을 봤는데요, db에 구독으로 데이터를 쌓고 취소한 뒤에 다른 메일을 넣으면, user_id가 1이 되어야 할 거 같은데, 2로 남습니다. 구독 & 구독취소 과정을 반복해서 수행하면 db table에 1줄만 입력되어있더라도 user_id가 계속 증가하는 것을 볼 수 있는데, 어떻게 방지할 수 있을까요? 혹은 많은 user가 구독 & 구독취소를 하게 되는 경우에 구독취소된 user_id는 공백으로 두고 계속해서 user_id를 쌓는 것이 사용상에 이점이 있는걸까요?

  • python
  • rest-api
  • flask
kwangjin12 댓글 1 좋아요 0 조회수 308

문의 드립니다

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요 백엔드쪽로 준비하는 사람이면 로드맵으로 두개다 구매해도 우선 백엔드쪽 강의 수강만 집중하는것이 나을까요? 아님 프론트-> 백엔드 순으로 하면 더 도움이될까요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
SooE 댓글 1 좋아요 0 조회수 311

[라우터 설정] 강의 내용 중 수정이 필요한 부분

해결됨

Svelte REST-API 프로젝트

[3분43초 - router.svelte ] 첫 번째 Route에서 리다이렉트 경로를 "/ariticles" 가 아닌 "/articles/all" 이 맞는 것 같습니다. 6분 41초 영상에서 테스트 장면을 보면 리다이렉트 경로가 /articles/all인 것을 볼 수 있습니다. [3분50초 - router.svelte ] 강의 영상처럼 타이핑을 하고난 후에 에디터(vscode)에 다음과 같은 에러가 나타날 수 있습니다. 임시로 해결할 수 있는 방법은 node_modules 폴더 내부에 있는 tinro 라이브러리의 타입 정의(index.d.ts)를 수정해주시면 됩니다. 참고: https://github.com/AlexxNB/tinro/pull/121/commits/d2251ffed630aac6e76e71856204ead5dd2f6661

  • rest-api
  • svelte
JB_ 댓글 1 좋아요 0 조회수 619

인기 태그

인프런 TOP Writers

주간 인기글