inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

코드 최적화 과정

해결됨

Django REST Framework 핵심사항

안녕하세요 선생님! 마지막 강의 까지 잘 들었습니다 매우 흥미로웠고 스스로 프로젝트 하며 삽질 했던 내용들이 많이 나왔던 것 같아서 꽤 재밌었네요. 근데 한가지 의문이 드는 점이 생겼어요. 저는 이 강의의 앞단을 듣고 나서 프로젝트에서 이러한 방향성으로 진행 해야겠다고 생각 했는데요. Model: 모델링 Serializer: 모델을 기반으로 하여 메타 클래스 지정한 직렬화 View: ViewSet을 활용하여 CRUD 기능이 짧은 코드로 모두 이루어지게 작성 Url: url dispatcher를 통한 라우팅 과정 이후, 요구사항 분석을 통해 커스터마이징 하는 코드는 대개 Generic한 View(UpdateAPIView, CreateAPIView) 등 으로 사용을 하고, 이 상속 받는 뷰 에서 제공되지 않는 기능들이 필요한 부분은 API View를 상속 받아야된다고 생각을 하고 있었는데, 마지막 강의가 제너릭 뷰를 뷰셋으로 다시 리팩터링 하는 과정이었는데요. 그렇다면 순서를 어떻게 가져가야 효율적으로 DRF의 빠른 프로젝트 빌딩의 이점을 가져갔다고 할 수 있을까요? -> 뷰셋을 먼저 코딩한 후, 제너릭 뷰를 통해 세분화 -> 제너릭 뷰를 통해 기능정의 우선, 뷰셋으로 코드의 간결화 유지 마지막에 애매모호한 점이 있어서 마지막 질문을 남깁니다 감사합니다!

  • django
  • rest-api
댓글 1 좋아요 0 조회수 391

유저 1명이 1개의 게시글에 좋아요를 누를 경우

해결됨

Django REST Framework 핵심사항

안녕하세요 선생님 강의 매우 재밌게 듣고 있습니다. 커리큘럼 3-3 숫자만 보내고 싶을 때를 수강 하고 난 후, 게시글은 1명의 유저가 1개의 좋아요를 보내고 이미 보냈다면 취소가 되어야 될 것 같다는 생각에 코드를 수정 하고 있었는데요. 사실, 모델링 부분에서 건들지 않으면 위 사항은 자바스크립트의 로컬스토리지나 세션의 개념이 아니고서야 처리가 안될 것 같다는 생각이 드는데, 선생님은 어떻게 생각 하시나요? 만약 모델링을 수정 하고, 위 기능을 고려 한다면 이렇게 접근 할 것 같습니다. 좋아요 체크 여부 Boolean 필드 생성 해당 게시글에 좋아요를 누른 경우 update 구문에서 좋아요 체크 여부를 True로 변경 update 구문 내에서 조건 분기 추가 좋아요 체크가 되어 있지 않다면 숫자 +1 좋아요 체크가 되어 있다면 숫자 -1 좋아요 숫자가 0이라면 0을 그대로 return 이 부분은 PositiveInteger기 때문에 무시해도 되나요? 제가 생각한 접근 방식을 보시고, 선생님의 노하우를 공유 해주셨으면 합니다 감사합니다.

  • django
  • rest-api
제로콜라 함 즐길까 댓글 1 좋아요 0 조회수 382

도커 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 install 11 | 12 | COPY . /myfolder/ -------------------- ERROR: failed to solve: process "/bin/sh -c yarn install" did not complete successfully: exit code: 1 ERROR: Service 'my-backend' failed to build : Build failed docker-compse bulid 했을때 에러가 발생합니다

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

PuTTY git pull orgin main 적용안됨..?

해결됨

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

안녕하세요 선생님 강의를 따라하는 도중 제가 실수로 port번호를 입력하지 않아 수정 후 다시 git에 push를 하고 새로 업데이트된 내용을 적용시키기위해 PuTTY에서 git pull을 하였습니다. 그런데도 마커가 뜨지 않아서 브라우저 개발자도구를 살펴보니 수정한 port번호가 추가 되어있지 않더라구요 ㅠㅠㅠ 이럴때는 어떤방법을 시도해보아야하나요..?

  • HTML/CSS
  • javascript
  • aws
  • git
  • mysql
  • rest-api
  • github
didwldn97 댓글 2 좋아요 0 조회수 548

리팩토링 강의에서 라우터 리팩토링 전개연산자(...)

해결됨

mongoDB 기초부터 실무까지(feat. Node.js)

선생님 안녕하세요. 좋은강의 정말로 감사드립니다. 리팩토링 강의에서 라우터들을 Index.js로 통합시켜줄 때 module.exports = { ...require("./userRouter"), ...require("./blogRouter"), ...require("./commentRouter"), }; 이렇게 전개연산자(...)를 작성해주셨는데요. 이유가 뭘까요? 이렇게 안하고 그냥 module.exports = { require("./userRouter"), require("./blogRouter"), require("./commentRouter"), }; 이렇게 해주려고 하니 에러가 발생하더라구요. 이유가 뭘까요??

  • javascript
  • node.js
  • aws
  • mongodb
  • rest-api
  • dbms/rdbms
  • 데이터-엔지니어링
google_user 댓글 1 좋아요 1 조회수 338

포트폴리오 프로젝트

해결됨

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

안녕하세요, 선생님 강의를 보며 열심히 백엔드 공부중입니다. 혹시 포트폴리오 과제같은 경우는 프론트엔드 코스도 봐야 하나요? 아니면 백엔드 커리큘럼 한에서 만들기가 가능할까요?

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

Docker Compose Volumes - postman 조회 오류

해결됨

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

"Docker Compose Volumes" 강의를 통해 local의 코드를 수정하면 docker 내 image가 nodemon으로인해 refresh되는 것을 cat 명령어로 파일을 열어 확인했습니다. 그런데 코드를 변경 후 13:54에 나온것처럼 local의 콘솔창에 refresh에 대한 로그가 나타나지를 않으며, local에서 postman으로 확인할 때도 코드가 변경되지 않은 것처럼 작동합니다. 뭐가 문제일까요?

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

wsl2를 사용하여 windows에 ubunto20.04설치

해결됨

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

아직 프리캠프부분 수강중인데 혹시 완전히 운영체제를 지우지 않고 위와 같은 방식을 사용하면 이후 진도를 나가는데 있어 문제가 생기나요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
신정환 댓글 1 좋아요 1 조회수 451

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 }); } } 확인부탁드리겠습니다 감사합니다.

  • rest-api
  • nestjs
zeler1004 댓글 2 좋아요 0 조회수 705

다대다 관계에서 productTags의 타입에 관한 질문입니다

해결됨

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

안녕하세요. 항상 알기쉽게 설명해주셔서 많은 도움이되고 있습니다. (myERD프로젝트하는데 거의 일주일 걸린것 같습니다 ㅎㅎ) 섹션29 10-8 다대다 api설계에서 productTags에 대한 질문드립니다. 아래와 같이 tags을 productTags에 넣어서 리턴을 해주는 상황입니다. 그런데 여기서 ...prevTags와 ...newTags.identifiers의 타입이 서로 다른것 같아서 다음과같이 콘솔로 찍어 보았습니다. 배열요소의 3번째까지가 ...prevTags에 담긴 값인데 저렇게 리턴하면 타입관련에러나 DB에 저장이나 서로 연결이 안될줄 알았는데 강의와 같이 잘 작동하였습니다. 그래서 아래와 같이 productTags의 타입인 ProductTag[]도 확인해보았는데도 잘 이해가 안갑니다 제생각에는 prevTags에서 id만 뽑아낸 객체배열을 새로 정의한 다음에 스프레드시켜서 넣어주어야 할것같은데, 해보니 둘 다 결과는 같네요... 제가 어떤 걸 놓치고 있는 걸까요? 사족 : 그런데 이 문제를 생각하는 도중에 힌트를 얻어서 update에서 에러나는 숙제를 해결했습니다^^

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

http 통신 과제 연습

해결됨

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

http 과제 연습 graphql-API 문제에 https://practice.codebootcamp.co.kr/graphql 이 안들어가지는데 어디서 해야하나요?

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

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 이러한 에러가 떴는데 현재는 유료 서비스인건가요?

  • python
  • django
  • bootstrap
  • rest-api
  • drf
맥북유저 댓글 2 좋아요 1 조회수 690

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은 넘어오지 않습니다 뭐가 문제인걸까요?

  • python
  • django
  • bootstrap
  • rest-api
  • drf
댓글 1 좋아요 1 조회수 276

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 }

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

프로잭트를 생성하고 runserver하면 ModuleNotFoundError: No module named 발생해요

해결됨

Django REST Framework 핵심사항

가상환경을 만들고 새로운 프로잭트를 만들었는데 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_unlocked ModuleNotFoundError: No module named 'blog'>

  • django
  • rest-api
dndvud123 댓글 4 좋아요 0 조회수 943

Ubuntu 듀얼부팅

해결됨

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

안녕하세요 windows 사용자인데 램 24기가라서 듀얼부팅 메뉴얼대로 우분투 설치했습니다 (재부팅하는데 os 윈도우로 할거냐 우분투로 할거냐 선택창이 안떠서 엄청 헤매다가 유투브 찾아보고 결국 해결했네요 ㅠㅠ) 수업자료에 있는 20.04.4 LTS 버전은 안보여서 비슷한 버전으로 20.04.6 LTS로 설치했는데 문제 없겠죠? 그리고 파티션 할당할 때 c드라이브 용량을 최대한 줄여본다 해서 40기가 정도 우분투 환경에 할당해줬는데 충분할까요? 빠른 답변 주시면 감사하겠습니다!!

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

구글로그인에러

해결됨

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

과제30 구글 로그인 과제 수행중 자꾸 이 에러 때문에... 정답을 찾지 못하였습니다..무엇이 문제인지 모르겠어요...

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

GET Method 에서 왜 Like 수를 증가시키는지 궁금합니다.

미해결

Django REST Framework 핵심사항

GET Method 에서 왜 Like 수를 증가시키는지 궁금합니다. 이렇게되면 Like 수는 늘어나서 실질적인 데이터베이스 상에는 변화가 일어나는 것인데, GET Method 의 목적과는 맞지 않는 행위로 생각되었습니다! 의견이 궁금합니다

  • django
  • rest-api
currenjin 댓글 1 좋아요 0 조회수 396

인기 태그

인프런 TOP Writers

주간 인기글