묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결초보를 위한 쿠버네티스 안내서
ghcr.io/subicura/echo:v1 에 오류가 있습니다.
kubectl run echo --image ghcr.io/subicura/echo:v1를 입력했는데 kubectl describe pod/echo 에서 Event 가 이렇게 뜨네요. Failed to pull image "ghrc.io/subicura/echo:v1": rpc error: code = Unknown desc = Error response from daemon: error unmarshalling content: invalid character '<' looking for beginning of value 뭔가 image 에 오류가 있는것 같습니다. 수정 부탁드려요.
-
해결됨쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
[pending 여부]
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 ]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 (비슷한 내용은 있습니다)]3. 질문 잘하기 법을 읽어보셨나요? [예](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기]안녕하세요 강의 진행중에kubectl apply -f ~/_Lecture_k8s_starter.kit/ch2/2.4/metallb.yamlkubectl create deployment chk-hn --image=sysnet4admin/chk-hnkubectl scale deployment chk-hn --replicas=3kubectl expose deployment chk-hn --type=LoadBalancer --port=80kubectl get services순을 진행했으나 결과가위 처럼 pending 상태로 유지되어 있습니다. kubectl delete service chk-hnkubectl delete deployment chk-hnkubectl delete -f Lecturek8s_starter.kit/ch2/2.4/metallb.yaml위처럼 다 삭제하고 진행해도 같은 pending이 발생하여시도하다 질문 남깁니다.. :) Virtual box안에 있는것들 모두 날리고 두가지 방식 모두 vagrant up으로 해도로드밸런싱 에서 pending이 걸리는 상황입니다.
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
kubelet stop 명령어 관련문의 외
안녕하세요! kubelet stop 후 deployment 생성하는 실습에 대해 문의사항이 있습니다. (4.2강의) kubelet stop 명령어강사님께서 실습해주신 결과를 보면 kubelet 이 stop된 해당 문제있는 워커노드#1은 pending상태로 빠지고 나머지 워커노드#2,#3에만 정상적으로 생성된걸로 나오는데 실제 제가 실습을 해보니 컨테이너d가 죽었을 때와 동일하게 문제되는 워크노드#1을 제외한 나머지 워커노드에 3개의 pods가 배포되더라구요...강사님이 직접 하신 실습과 차이나는 이유가 무엇일까요?? k단축어 문의그리고 k단축어 눌렀을때 k후 탭 두번누르면 된다고 하셨는데 전 스페이스 한 후 탭 두번을 눌러야지 인식이되는거 같거든요, 차이가 날수있는건가요? 아래는 k하고 탭두번눌렀을 때 [root@m-k8s ~]# kk kbdrate kexec killall kubeadmka kd keyctl killall5 kubectlkbdinfo kdumpctl key.dns_resolver kmod kubeletkbd_mode kernel-install kill kpartx 아래는 k하고 스페이스 하고 탭두번 눌렀을때[root@m-k8s ~]# kalpha certificate delete get port-forward topannotate cluster-info describe help proxy uncordonapi-resources completion diff kustomize replace versionapi-versions config drain label rollout waitapply cordon edit logs runattach cp exec options scaleauth create explain patch setautoscale debug expose plugin taint 확인부탁드립니다. 감사합니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
발급가능 쿠폰개수가 1인당 2개이상일 때
안녕하세요! 강의 재미있고 유익하게 잘 듣고 있습니다 :)확장에 대해 생각해보니, Set을 이용해서는 중복방지 이상 개수 확장에 대해서 처리는 불가능 할 거 같아서요. 혹시, 2개 이상 N개 제한에 대한 확장 방법은 어떤게 있을까요??감사합니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
ApolloDriverConfig를 찾지를 못해요
import { Module } from '@nestjs/common'; import { BoardModule } from './apis/boards/boards.module'; import { GraphQLModule } from '@nestjs/graphql'; import { ApolloDriver } from '@nestjs/apollo'; @Module({ imports: [ BoardModule, GraphQLModule.forRoot<apolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), ], }) export class AppModule {} yarn add @nestjs/graphql @nestjs/apollo graphql apollo-server-express 이거 추가하고 수업 따라서 진행하는데 apolloDriverConfig이놈만 찾지를 못하네요... 버전이 달라서 그런걸까요?
-
미해결대세는 쿠버네티스 (초급~중급편)
master 연결 비밀번호 관련해서 질문 있습니다
강의 영상 보면서 그대로 따라하고 있는데패스워드를 설정하라는 창이 뜨지도 않았는데 왜 저는 패스워드를 입력하라고 뜨는 걸까요...MobaXterm 처음 깔아봐서 이전에 쓰던 프로그램도 아닙니다ㅜㅜ해당 패스워드 초기화 하는 명령어라도 있을까요..?sudo passwd 명령어로 비밀번호 재설정해봐도 안먹힙니다 Windows 11에다가 MobaXterm 깔아서 쓰고 있습니
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
08-06 docker my-backend 접속이 안됩니다 ㅠㅠ
밑에 질문글이 있어서 똑같이 해봤는데 계속 안되네요 ㅠ..ㅠ db접속까지는 되는데 backend에서 접속이 계속 안됩니다... 살려주세요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
개인 프로젝트 관련 질문
안녕하세요 드디어 강의 완강했습니다!!^^ 뒷부분 부터는 퀴즈가 없어서 비교적 빨리 수강했네요.강의 후에 해봐야 할 것들을 생각해보았는데 조언을 듣고 싶어서 질문남깁니다.일단은 지금 것 했던 "나만의 ~~프로젝트"를 리팩토링(성능/안정성/가독성/로직개선)하고 api기능추가, 테스트코드 작성, DB쿼리성능개선등을 해보고자합니다.전부 다 하려면 시간이 오래걸리겠지만(ㅠ) 마지막에 취업준비강의에서 말씀하신 3년차개발자로 생각되기 위해선 해야할게 많은 것 같습니다..ㅎㅎ(3년차 같은 신입을 뽑는다니!!ㅠㅠ)그래서 일단 목표는 실제 현업에서 하는 것처럼 코드를 작성해보고자 하는데요, 막상 하려니 좀 막막하네요.질문은:지금 제 생각은 현업에서 쓰는 좋은 코드를 보고 어떤 식으로 설계했는지 테스트코드는 어떻게 작성했는지 등등 참고하고 분석하고 공부해서 제 나름대로 프로젝트를 리팩토링해보고 싶은 생각입니다. 그게 가장 실력도 늘 것 같구요. 그래서 혹시 관련 코드나 책이나 자료등이 있으면 추천해주시면 감사하겠습니다.아! 그리고 백엔드 심화강의에서 마이크로큐와 await의 관계를 굉장히 감명깊게 들었습니다. 비동기과정이 정말 헷갈렸는데 속이 시원해졌습니다.ㅎㅎ 혹시 이런 자바스크립트 원리나 cs관련내용도 추천해주실만한 책이나 자료 있으면 알려주시면 감사하겠습니다.일단 방향은 이렇게 잡았는데 조언해주시면 참고하겠습니다!!끝으로 제가 지금것 들었던 개발강의중 가장 자세하고 친절하고 이해도 잘되고 재밌는 강의였습니다!!퀴즈 할때나 버그나 에러날때 힘들긴 했지만, 그래도 개발이 점점 더 재밌어지고 더 잘하고 싶네요. 궁금한 것있으면 또 질문해도 되겠죠?^^;;; 감사합니다!!
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
url 할당 질문
안녕하세요 강사님 강의 잘 보고있습니다.강사님의 강의를 보고 따로 프로젝트를 만들어 보고 있는데 로컬주소/dashboard를 하면 dashboard가 안열러서 뭐가 잘못됐는지 궁금해서 질문드립니다!일단 프로젝트 구조입니다. urls.py 입니다 dashboard/urls/dashboard.py 입니다 dashboard/views/dashboard.py 입니다. 실행을 하면 url이 없다고 합니다
-
미해결초보를 위한 도커 안내서
도커 기본명령어로 설치된 이미지? 라이브러리? 파일들 삭제하는명령어
리눅스 노베이스 수강생입니다.Ubuntu에서 redis와 mysql을 띄워보는 명령어를 사용할때, redis와 mysql이 설치되면서(?) 로컬(하드드라이브) 용량을 엄청 많이 잡아먹고있는거 같아요(pull된것들?)처음 도커,우분투를 깔았을때 하드가 95기가 이상 남아있었던것으로 기억하는데, 이것,저것 깔리고 난 후 85기가남았습니다.거의 한 10기가 이상이 설치된거같은데...명령어 실행 이후 설치된 이미지?라이브러리? 들을 모두 다 지우고 DOCKER를 처음 깔았을 때 당시의 초기세팅으로 수정하고싶습니다.. 어떤명령어들로 처리해야하나요?도커 데스크탑에서 모든 리소스를 다 제거해도... 하드드라이브 용량을 계속 잡아먹고있어요 도와주세요... (노트북이라 용량이별로없음 85/250) 명령어든, 직접 경로가서 삭제하는거든 뭐든 알려주십쇼... + 윈도우 11에 설치해서 강의를 따라했습니다.ubuntu를 실행할때 뜨는 프롬프트창에 명령어를 입력했습니다.root@사용자명:~# 이 상태로 명령어를 쳤는데~가 어디경론지 모르겠네요
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
19강 Process finished with exit code 0
모든 수업 내용을 따라가고 manage.py 우클릭해서 Debug 'manage' 를 누르니 이렇게 Process finished with exit code 0 라고 나오면서 서버가 실행이 되지 않네요
-
미해결
비전공자 프로젝트 서버 아키텍처 관련 질문
안녕하세요 백엔드 개발자로 취업을 준비하고 있는 비전공자 취준생입니다. 현재 프로젝트 설계 중인데, 아키텍처에 관한 지식이 많이 부족해 글을 올려봅니다. 저희는 달력 일정 관리 프로젝트를 설계중인데, NestJS를 사용해서 github actions, docker를 통해 무중단 배포를 하고자 합니다.db는 postgreSQL을 사용하고자 하는데요.여기서 db 대용량 데이터와 트랜잭션에 대한 대비로 멀티 서버 구축이 반드시 필요한지 궁금합니다.저희가 서버 아키텍처 관련 지식이 많이 부족해서 구글링을 해도 잘 모르겠더라고요.만약 멀티 서버 구축을 해야한다면 데이터 서버를 따로 분리해야하는지 아니면 다른 방식을 해야하는지 잘 모르겠어서 글을 올려봅니다. 만약 서버를 분리하지 않는다면 이를 대비할 다른 방법이 있을지도 궁금합니다. 읽어주셔서 감사합니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
Custom User 정보 views에서 request 값
안녕하세요.커스텀 유저 모델을 만들어 잘 적용하였습니다.템플릿 쪽에서는 로그인된 유저의 {{ user }} 형태로 접근하여 커스텀으로 만든 필드들의 값에 접근이 잘 됩니다.views에서 request.user 를 할 경우, 커스텀 된 필드들의 값을 사용할 수 없고 기본 유저 모델의 필드값만 나오고 있습니다. 어떤 장치를 해주어야 커스텀 된 필드 값들을 모두 사용할 수 있는지 찾아보았지만 정확히 알아내지 못하였습니다... 임시로 request.user를 통해 현재 로그인 된 사용자 정보를 가져오고 커스텀 유저 모델에서 동일한 유저를 찾아서 정보를 사용하는 형태로 해두었는데, 좋은 방향이 아닌듯하여 도움을 얻고자 질문을 남기게 되었습니다. def home(request): login_user = request.user user_site = User.objects.filter(email=login_user).get().site site_id = SiteInfo.objects.filter(site_name=user_site).get().pk boat_info = BoatInfo.objects.filter(site=site_id) return render(request, 'monitoring/home.html', { 'boat_info': boat_info, }) 번외로 템플릿에서 DB 데이터 갯수만큼만 DIV를 행렬로 만들어야 하는데, 짧은 지식으로 아래와 같이 구현해 보았습니다만, 좋은 방향으로 보이진 않아서 계속 고민 중에 있습니다. 한번 살펴봐 주시면 감사하겠습니다(꾸벅){% for boat in boat_info %} {% if forloop.counter0 != 0 and forloop.counter0|divisibleby:3 %} </div> {% endif %} {% if forloop.counter0|divisibleby:3 %} <div class="row"> {% endif %} <div class="col">{{ boat }}}</div> {% if forloop.last %} </div> {% endif %} {% endfor %}
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
섹션34 마이크로서비스 실습중 에러
안녕하세요 강의 재밌게듣고있습니다.섹션34 강의 전부듣고 rest, graphql, nginx에서 각각 실습했는데 문제가 생겨 질문드립니다.일단 도커 빌드와 실행은 3개다 정상적으로 되지만 포스트맨과 크롬에서는 아예 접속이 안됩니다.포트를 확인해봤는데 rest는 정상적으로 포트연결이 되어있고 graphql과 nginx는 포트도 안 잡힙니다.코드도 강의랑 같고 버전도 강의대로 했는데 뭐가 문제인지 모르겠네요...뭘 확인해봐야할까요..??
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
admin 에 나타나지 않는 몇몇 필드들
안녕하세요, 강의를 잘 듣고 있습니다. 모델 필드에 있는 몇몇 필드들이 admin에 나타나지 않더군요예를 들면, updated_at, created_at 같은 필드들이요 이를 위해서 admin 페이지에 일일히 모델 필드를 list_display에 등록해줘야 하는게 맞나요? from django.contrib import admin# Register your models here.from .models import *admin.site.empty_value_display = "-empty-"admin.site.register(Product)admin.site.register(CartProduct)class OrderAdmin(admin.ModelAdmin):list_display = ['customer', 'transaction_id', 'total_price']admin.site.register(Category)admin.site.register(UserProfile)admin.site.register(Order)admin.site.register(OrderedProduct)admin.site.register(ShipmentInfo) 그럼 제가 직접만든 모델의 경우에는 그렇다 쳐도..allauth에 있는 site domain 부분이 나오질 않는거에요 ㅠㅠ...제가 뭘 잘못 건드렸는 지 모르겠는데, 맨처음 프로젝트할 때에는 allauth의 소셜 어플리케이션 부분에 사이트 도메인을 입력할 수 있는 커다란 박스가 있었는데, 그것만 또 안난옵니다. 제가 뭘 잘못한건지 ㅠㅠ 원래 잘 나오던건데... 이번에 파이참 커뮤니티 에디션에서 유료버전으로 바꾸고, 프로젝트를 만들고 나니 admin에 몇몇 모델의 필드들이 잘 보이지 않습니다.verbose name을 설정된것들이 특히 그런 거 같은데 무엇이 문제인지 도통 모르겠습니다. 그렇다고 allauth를 제가 admin에 등록해야하는걸까요?2.제가 모르는 무언가가 있는걸까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
원본도표자료 pdf 깨짐
위 이미지처럼 파일 열어보니 대부분 다 잘려있는데 병합된 버전으로 다시 업데이트해서 올릴 계획이 있으실까요?
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
Custom User Model 관련 권한 Field 추가
안녕하세요.기본 유저 모델로는 다 포용하지 못하는 부분이 있어 커스텀 유저 모델을 만드려고 하고 있습니다. 기본 유저 모델의 경우 staff, superuser 두 개의 권한이 있는 것으로 알고 있는데, manager 권한을 한 개 더 부여해야 하는 상황입니다.아래와 같이 코드를 구현하여 보았는데, 부족한 부분이나 잘못된 부분이 있는지 봐주시면 감사합니다.from django.db import models from django.contrib.auth.models import PermissionsMixin from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager from django.contrib.auth.validators import UnicodeUsernameValidator from django.core.mail import send_mail from django.utils.translation import gettext_lazy as _ from django.utils import timezone class UserManager(BaseUserManager): use_in_migrations = True def _create_user(self, username, email, password, **extra_fields): if not email: raise ValueError("Email을 입력해주세요.") email = self.normalize_email(email) username = self.model.normalize_username(username) user = self.model(username=username, email=email, **extra_fields) user.set_password(password) user.save(using=self.db) return user def create_user(self, username, email, password=None, **extra_fields): extra_fields.setdefault('is_staff', False) extra_fields.setdefault('is_manager', False) extra_fields.setdefault('is_superuser', False) return self._create_user(username, email, password, **extra_fields) def create_staff(self, username, email, password=None, **extra_fields): extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_manager', False) extra_fields.setdefault('is_superuser', False) if extra_fields.get('is_staff') is not True: raise ValueError('is_staff=True일 필요가 있습니다.') return self._create_user(username, email, password, **extra_fields) def create_manager(self, username, email, password=None, **extra_fields): extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_manager', True) extra_fields.setdefault('is_superuser', False) if extra_fields.get('is_staff') is not True: raise ValueError('is_staff=True일 필요가 있습니다.') if extra_fields.get('is_manager') is not True: raise ValueError('is_manager=True일 필요가 있습니다.') return self._create_user(username, email, password, **extra_fields) def create_superuser(self, username, email, password, **extra_fields): extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_manager', True) extra_fields.setdefault('is_superuser', True) if extra_fields.get('is_staff') is not True: raise ValueError('is_staff=True일 필요가 있습니다.') if extra_fields.get('is_manager') is not True: raise ValueError('is_manager=True일 필요가 있습니다.') if extra_fields.get('is_superuser') is not True: raise ValueError('is_superuser=True일 필요가 있습니다.') return self._create_user(username, email, password, **extra_fields) class User(AbstractBaseUser, PermissionsMixin): username_validator = UnicodeUsernameValidator() username = models.CharField(_("username"), max_length=50, validators=[username_validator]) email = models.EmailField(_("email_address"), unique=True) is_staff = models.BooleanField(_("staff_status"), default=False) is_manager = models.BooleanField(_("manager_status"), default=False) is_active = models.BooleanField(_("active"), default=False) date_joined = models.DateTimeField(_("date_joined"), default=timezone.now) created_at = models.DateTimeField(_("create"), auto_now_add=True) updated_at = models.DateTimeField(_("update"), auto_now=True) objects = UserManager() USERNAME_FIELD = "email" EMAIL_FIELD = "email" REQUIRED_FIELDS = ['username'] class Meta: verbose_name = _("user") verbose_name_plural = _("users") def clean(self): super().clean() self.email = self.__class__.objects.normalize_email(self.email) def email_user(self, subject, message, from_email=None, **kwargs): send_mail(subject, message, from_email, [self.email], **kwargs)
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
refreshToken
refreshToken 은 DB에 저장을 따로 안해도 되나요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
왜 쿠폰수가 너무 많을까요?
분명 현재 없는 상태이고결과가 자꾸 이상하게 나와서 sout 처리를 잠시 해보았습니다 package com.example.api.service; import com.example.api.domain.Coupon; import com.example.api.repository.CouponCountRepository; import com.example.api.repository.CouponRepository; import org.springframework.stereotype.Service; @Service public class ApplyService { private final CouponRepository couponRepository; private final CouponCountRepository couponCountRepository; public ApplyService(CouponRepository couponRepository, CouponCountRepository couponCountRepository) { this.couponRepository = couponRepository; this.couponCountRepository = couponCountRepository; } public void applyV1(Long userId) { Long count = couponRepository.count(); if(count > 100) { return; } couponRepository.save(new Coupon(userId)); } public void applyV2(Long userId) { Long count = couponCountRepository.increment(); System.out.println(count); if(count > 100) { return; } couponRepository.save(new Coupon(userId)); } } @SpringBootTest class ApplyServiceTest { @Autowired private ApplyService applyService; @Autowired private CouponRepository couponRepository; @Test public void applyOnce() { applyService.applyV1(1L); long count = couponRepository.count(); Assertions.assertEquals(1L, count); } @Test public void 여러명응모V1() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for(int i=0; i<threadCount; i++){ long userId = i; executorService.submit(() -> { try { applyService.applyV1(userId); } catch(Exception e) { System.out.println(e); }finally { latch.countDown(); } }); } latch.await(); long count = couponRepository.count(); assertThat(count).isEqualTo(100); } @Test public void 여러명응모V2() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for(int i=0; i<threadCount; i++){ long userId = i; executorService.submit(() -> { try { applyService.applyV2(userId); } catch(Exception e) { System.out.println(e); }finally { latch.countDown(); } }); } latch.await(); long count = couponRepository.count(); org.assertj.core.api.Assertions.assertThat(count).isEqualTo(100); } } 그런데 여러명응모V2 test를 실행시에 count를 출력시다음과 같은 수가 나옵니다. 20003200112001220013200152001620017200182002020022 ??? 한번 할때마다 1000씩 쿠폰의 수가 증가중인데요;;;조회했을때는 empty라 나오는데 이렇게 되는 연유를 잘 모르갰습니다. 테스트 코드라서 rollback이 되야할거 같은데 그렇지 않는것도 잘 모르겟네요;; ㅠㅠ
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
참조 관련 질문있습니다.
안녕하세요. 질문이 두 가지 있습니다.강의에선 node_modules가 호스트에 없어서 참조에서 제외하고, 나머지 소스코드는 존재하여 전부 참조하는식으로 진행이 되었는데,그럼 docker build시 COPY ./ ./ 이부분은 아예 필요가없는거 아닌가요? 이미지에 이미 소스가 존재할텐데, 강의처럼 볼륨참조 설정을 넣어주면 컨테이너 생성 시, 이미 존재하는 소스는 호스트에서 가져와서 덮어쓰기된다고 이해하면 될까요?