묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Django REST Framework 핵심사항
유저 1명이 1개의 게시글에 좋아요를 누를 경우
안녕하세요 선생님 강의 매우 재밌게 듣고 있습니다.커리큘럼 3-3 숫자만 보내고 싶을 때를 수강 하고 난 후, 게시글은 1명의 유저가 1개의 좋아요를 보내고 이미 보냈다면 취소가 되어야 될 것 같다는 생각에 코드를 수정 하고 있었는데요.사실, 모델링 부분에서 건들지 않으면 위 사항은 자바스크립트의 로컬스토리지나 세션의 개념이 아니고서야 처리가 안될 것 같다는 생각이 드는데, 선생님은 어떻게 생각 하시나요?만약 모델링을 수정 하고, 위 기능을 고려 한다면 이렇게 접근 할 것 같습니다.좋아요 체크 여부 Boolean 필드 생성해당 게시글에 좋아요를 누른 경우update 구문에서 좋아요 체크 여부를 True로 변경update 구문 내에서 조건 분기 추가좋아요 체크가 되어 있지 않다면 숫자 +1좋아요 체크가 되어 있다면 숫자 -1좋아요 숫자가 0이라면 0을 그대로 return이 부분은 PositiveInteger기 때문에 무시해도 되나요?제가 생각한 접근 방식을 보시고, 선생님의 노하우를 공유 해주셨으면 합니다 감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
도커 yarn install
#0 10.10 error @graphql-tools/merge@9.0.0: The engine "node" is incompatible with this module. Expected version ">=16.0.0". Got "14.21.3"#0 10.10 error Found incompatible module.#0 10.10 info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command. ------Dockerfile:10--------------------8 | COPY ./yarn.lock /myfolder/9 | WORKDIR /myfolder/10 | >>> RUN yarn install11 |12 | COPY . /myfolder/--------------------ERROR: failed to solve: process "/bin/sh -c yarn install" did not complete successfully: exit code: 1ERROR: Service 'my-backend' failed to build : Build faileddocker-compse bulid 했을때 에러가 발생합니다
-
해결됨비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
PuTTY git pull orgin main 적용안됨..?
안녕하세요 선생님강의를 따라하는 도중 제가 실수로 port번호를 입력하지 않아 수정 후 다시 git에 push를 하고새로 업데이트된 내용을 적용시키기위해PuTTY에서 git pull을 하였습니다.그런데도 마커가 뜨지 않아서 브라우저 개발자도구를 살펴보니 수정한 port번호가 추가 되어있지 않더라구요 ㅠㅠㅠ 이럴때는 어떤방법을 시도해보아야하나요..?
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
리팩토링 강의에서 라우터 리팩토링 전개연산자(...)
선생님 안녕하세요. 좋은강의 정말로 감사드립니다.리팩토링 강의에서 라우터들을 Index.js로 통합시켜줄 때 module.exports = { ...require("./userRouter"), ...require("./blogRouter"), ...require("./commentRouter"), }; 이렇게 전개연산자(...)를 작성해주셨는데요. 이유가 뭘까요? 이렇게 안하고 그냥 module.exports = { require("./userRouter"), require("./blogRouter"), require("./commentRouter"), }; 이렇게 해주려고 하니 에러가 발생하더라구요. 이유가 뭘까요??
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
포트폴리오 프로젝트
안녕하세요,선생님 강의를 보며 열심히 백엔드 공부중입니다.혹시 포트폴리오 과제같은 경우는 프론트엔드 코스도 봐야 하나요? 아니면 백엔드 커리큘럼 한에서 만들기가 가능할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
"연결이 비공개로 설정되어 있지 않습니다." 오류가 뜰 경우
ChatGPT의 도움을 받았습니다.아래와 같이 시도해보세용~
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Docker Compose Volumes - postman 조회 오류
"Docker Compose Volumes" 강의를 통해 local의 코드를 수정하면 docker 내 image가 nodemon으로인해 refresh되는 것을 cat 명령어로 파일을 열어 확인했습니다.그런데 코드를 변경 후 13:54에 나온것처럼 local의 콘솔창에 refresh에 대한 로그가 나타나지를 않으며,local에서 postman으로 확인할 때도 코드가 변경되지 않은 것처럼 작동합니다. 뭐가 문제일까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
wsl2를 사용하여 windows에 ubunto20.04설치
아직 프리캠프부분 수강중인데혹시 완전히 운영체제를 지우지 않고 위와 같은 방식을 사용하면 이후 진도를 나가는데 있어 문제가 생기나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
nestjs google login (섹션30과제) 질문
선생님 안녕하세요.구글 소셜로그인 기능에 대해서 과제를 진행하고 있었는데요.과제 영상에 따라서 따라 내려가고있었는데 nestjs로 REST API를 생성하는데 있어서 refreshToken을 발급해줘야하는 단계에서 res가 에러가 발생합니다.IAuthServiceRefreshToken의 인터페이스에서 res가 없다는 것으로 확인이되는것 같은데요.이전에 context로 graphql의 인터페이스를 사용해주었었는데context를 없애고req로 변경하고 Express의 Response를 생성해주면 REST API가 되는걸까요?!이전까지 진행했을때는 Icontext를 생성해서 유저를 찾아내는 방식이었는데 강의내용에는 이런게 빠져있어서 어떻게 해나가야 하는지 좀 헷갈리는것 같습니다. 참고내용으로 이전에 사용했던 소스코드들을 공유드려봅니다.//auth.service.ts import { Injectable, UnprocessableEntityException } from '@nestjs/common'; import { UsersService } from '../users/users.service'; import * as bcrypt from 'bcrypt'; import { JwtService } from '@nestjs/jwt'; import { IAuthServiceGetAccessToken, IAuthServiceLogin, IAuthServiceRestoreAccessToken, IAuthServiceSetRefreshToken, } from './interfaces/auth-service.interface'; @Injectable() export class AuthService { constructor( private readonly userService: UsersService, // private readonly jwtService: JwtService, ) {} async login({ email, password, context }: IAuthServiceLogin) { // 1. 이메일이 일치하는 유저를 DB에서 찾기 const user = await this.userService.findOneByEmail({ email }); // 2. 일치하는 유저가 없으면?! 에러 던지기!!! if (!user) throw new UnprocessableEntityException('존재하지 않는 이메일입니다.'); // 3. 일치하는 유저가 있지만, 비밀번호가 틀렸다면?! const isAuth = await bcrypt.compare(password, user.password); if (!isAuth) throw new UnprocessableEntityException('틀린 암호입니다.'); // 4. refreshToken(=JWT)을 만들어서 브라우저 쿠키에 저장해서 보내주기 this.setRefreshToken({ user, context }); // 5. 일치하는 유저도 있고, 비밀번호도 맞았다면?! // => accessToken(=JWT)을 만들어서 브라우저에 전달하기 return this.getAccessToken({ user }); } getAccessToken({ user }: IAuthServiceGetAccessToken): string { return this.jwtService.sign( { sub: user.id }, { secret: process.env.JWT_SECRET_KEY, expiresIn: process.env.JWT_ACCESS_TOKEN_EXPIRE, }, ); } setRefreshToken({ user, context }: IAuthServiceSetRefreshToken): void { const refreshToken = this.jwtService.sign( { sub: user.id }, { secret: process.env.JWT_REFRESH_SECRET_KEY, expiresIn: process.env.JWT_REFRESH_TOKEN_EXPIRE, }, ); //개발환경 context.res.setHeader( 'set-Cookie', `lovely soong=${refreshToken}; path=/;`, ); // 배포환경 // context.res.setHeader('set-Cookie', `refreshToken=${refreshToken}; path=/; domain=.mybacksite.com; SameSite=None; Secure; httpOnly`); // context.res.setHeader('Access-Control-Allow-Origin', 'https://myfrontsite.com'); } restoreAccessToken({ user }: IAuthServiceRestoreAccessToken): string { return this.getAccessToken({ user }); } } 확인부탁드리겠습니다 감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
다대다 관계에서 productTags의 타입에 관한 질문입니다
안녕하세요. 항상 알기쉽게 설명해주셔서 많은 도움이되고 있습니다. (myERD프로젝트하는데 거의 일주일 걸린것 같습니다 ㅎㅎ)섹션29 10-8 다대다 api설계에서 productTags에 대한 질문드립니다.아래와 같이 tags을 productTags에 넣어서 리턴을 해주는 상황입니다.그런데 여기서 ...prevTags와 ...newTags.identifiers의 타입이 서로 다른것 같아서 다음과같이 콘솔로 찍어 보았습니다. 배열요소의 3번째까지가 ...prevTags에 담긴 값인데 저렇게 리턴하면 타입관련에러나 DB에 저장이나 서로 연결이 안될줄 알았는데 강의와 같이 잘 작동하였습니다.그래서 아래와 같이 productTags의 타입인 ProductTag[]도 확인해보았는데도 잘 이해가 안갑니다제생각에는 prevTags에서 id만 뽑아낸 객체배열을 새로 정의한 다음에 스프레드시켜서 넣어주어야 할것같은데, 해보니 둘 다 결과는 같네요... 제가 어떤 걸 놓치고 있는 걸까요?사족 : 그런데 이 문제를 생각하는 도중에 힌트를 얻어서 update에서 에러나는 숙제를 해결했습니다^^
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
http 통신 과제 연습
http 과제 연습 graphql-API 문제에 https://practice.codebootcamp.co.kr/graphql 이 안들어가지는데 어디서 해야하나요?
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
fly.io
fly.io로 배포중에 지역선택한 이후에Error: We need your payment information to continue! Add a credit card or buy credit: https://fly.io/dashboard/camel-769/billing이러한 에러가 떴는데 현재는 유료 서비스인건가요?
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
CharField 테이블 안넘어오는 문제
class Car(models.Model): brand = models.CharField('brand', max_length=200), model = models.CharField('model', max_length=200, default=''), color = models.CharField('color', max_length=200), year = models.IntegerField('year', default=1900) 이렇게 모델을 적었는데 integerField의 테이블만 db에 생성되고 CharField table은 넘어오지 않습니다 뭐가 문제인걸까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
typeORM Many to one 관계설정
안녕하세요 typeORM 관계설정 중에 궁금한게 생겨서 질문드립니다.공식문서에 나온 코드를 보면 ManyToOne 데코레이터 안에 두 가지 인자가 있는데 앞에 있는건 강의에서도 작성하지만 두번 째인자는 생략이 가능한 것 같네요.. 혹시 두번 째 인자는 OneToMany를 작성할 때도 생략이 가능한가요?그리고 혹시 OneToMany로 받아오는 배열을 배열말고 count해서 숫자로 칼럼에 넣을 수 있는 방법이 있을까요..? 힌트라도 알려주시면 감사하겠습니다!!@Entity() export class Photo { @PrimaryGeneratedColumn() id: number @Column() url: string @ManyToOne(() => User, (user) => user.photos) user: User }
-
해결됨Django REST Framework 핵심사항
프로잭트를 생성하고 runserver하면 ModuleNotFoundError: No module named 발생해요
가상환경을 만들고 새로운 프로잭트를 만들었는데 runserver하면 ModuleNotFoundError: No module named [예전에 만든 프로잭트 폴더이름] 이 뜨면서 에러가 나요.. 가상환경이 아닌곳에서 해도 똑같이 에러가 발생하고 삭제하고 다시 만들고 settings.py, wsgi 등등 에서도 잘 확인했습니다만 해결이 안됩니다.해결방법이 있을까요? 에러코드 < File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line utility.execute() File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\__init__.py", line 440, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py", line 415, in run_from_argv connections.close_all() File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\connection.py", line 84, in close_all for conn in self.all(initialized_only=True): File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\connection.py", line 76, in all return [ File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\connection.py", line 73, in __iter__ return iter(self.settings) File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\connection.py", line 45, in settings self._settings = self.configure_settings(self._settings) File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\utils.py", line 148, in configure_settings databases = super().configure_settings(databases) File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\connection.py", line 50, in configure_settings settings = getattr(django_settings, self.settings_name) File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf\__init__.py", line 92, in __getattr__ self._setup(name) File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf\__init__.py", line 79, in _setup self._wrapped = Settings(settings_module) File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\site-packages\django\conf\__init__.py", line 190, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "C:\Users\USER21R16\AppData\Local\Programs\Python\Python310\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlockedModuleNotFoundError: No module named 'blog'>
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Ubuntu 듀얼부팅
안녕하세요 windows 사용자인데 램 24기가라서 듀얼부팅 메뉴얼대로 우분투 설치했습니다 (재부팅하는데 os 윈도우로 할거냐 우분투로 할거냐 선택창이 안떠서 엄청 헤매다가 유투브 찾아보고 결국 해결했네요 ㅠㅠ) 수업자료에 있는 20.04.4 LTS 버전은 안보여서 비슷한 버전으로 20.04.6 LTS로 설치했는데 문제 없겠죠? 그리고 파티션 할당할 때 c드라이브 용량을 최대한 줄여본다 해서 40기가 정도 우분투 환경에 할당해줬는데 충분할까요?빠른 답변 주시면 감사하겠습니다!!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
구글로그인에러
과제30 구글 로그인 과제 수행중 자꾸 이 에러 때문에... 정답을 찾지 못하였습니다..무엇이 문제인지 모르겠어요...
-
미해결Django REST Framework 핵심사항
GET Method 에서 왜 Like 수를 증가시키는지 궁금합니다.
GET Method 에서 왜 Like 수를 증가시키는지 궁금합니다.이렇게되면 Like 수는 늘어나서 실질적인 데이터베이스 상에는 변화가 일어나는 것인데,GET Method 의 목적과는 맞지 않는 행위로 생각되었습니다! 의견이 궁금합니다
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
혹시 MYSQL만 사용하는 경우랑 graphql이랑 같이하는경우랑 TypeORM사용법
혹시 MYSQL만 사용하는 경우랑 graphql이랑 같이하는경우랑 TypeORM사용법 차이 많이 나나요?
-
미해결[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
04._flask_ABTest Pycharm 에서 실행오류
pycharm 으로 첨부해주신 코드 04_flaskABTest/blog_abtest.py 를 실행 결과 line 1, in <module> from flask import Flask, jsonify, request, render_template, session, make_response line 19, in <module> from jinja2 import Markup, escape ImportError: cannot import name 'Markup' from 'jinja2'상기와 같은 오류가 발생하는 혹시 flask 버전과 jinja2 버전 정보 알수 있을까요?