묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
(수정)한 포스팅에 사진 여러장을 업로드하려고 수정해봤습니다
하나의 포스팅에 여러 이미지들을 업로드하는 코드를 선생님 강좌를 보면서 나름대로 수정해봤는데 코드가 많이 엉킨 것 같습니다.우선 코드부터 보여드리자면mainfunc/models.pyfrom django.db import models from django.conf import settings from django.contrib.auth.models import User #Label 테이블 -- 유저(외래키), 레이블 class Label(models.Model): id = models.BigAutoField(primary_key=True) author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True) label_name = models.CharField(max_length=50, default='') #Post 테이블 -- 레이블(외래키), 이미지 class Post(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True) label = models.ForeignKey(Label, on_delete=models.CASCADE) image = models.ImageField(upload_to='images/%Y/%m/%d', blank=True, null=True) def __str__(self): return f'{self.label}' mainfunc/serializers.pyfrom rest_framework import serializers from .models import Post, Label from django.contrib.auth import get_user_model class AuthorSerializer(serializers.ModelSerializer): class Meta: model = get_user_model() fields = '__all__' class PostSerializer(serializers.ModelSerializer): # post에서 이미지를 한번에 입력받아서 저장할 것이기 때문. image = serializers.ImageField(use_url=True) class Meta: author = AuthorSerializer(read_only=True) model = Post fields = ['image'] class LabelSerializer(serializers.ModelSerializer): images = PostSerializer(many=True, read_only=True) def get_images(self, obj): image = obj.post_set.all() return PostSerializer(instance=image, many=True).data class Meta: model = Label fields = ['author', 'label', 'images'] # fields = '__all__' def create(self, validated_data): instance = Label.objects.create(**validated_data) image_set = self.context['request'].FILES for image_data in image_set.getlist('image'): Post.objects.create(label=instance, image=image_data) return instancemainfunc/views.pyfrom rest_framework.viewsets import ModelViewSet from .serializers import PostSerializer from .models import Post from rest_framework.permissions import AllowAny from django.db.models import Q # CRUD가 모두 들어간 API를 지원 class PostViewSet(ModelViewSet): queryset = Post.objects.all() serializer_class = PostSerializer #permission_classes = [AllowAny] #FIXME: 인증 적용 def get_queryset(self): qs = super().get_queryset() qs = qs.filter( # "author" 필드가 현재 요청한 사용자 (self.request.user)와 동일한 값을 가지는 객체만 필터링 Q(author=self.request.user) #본인이 작성한 글만 볼 수 있도록 함. ) return qs def perform_create(self, serializer): serializer.save(author=self.request.user) return super().perform_create(serializer) model 설계가 잘못된걸까요?
-
해결됨웹플로우(Webflow) 시작하기 - 코딩 없이 자유도 높은 프로토타입 만들기
CMS 데이터 가져오기 질문있습니다.
이런 에러가 뜨는데 어떻게 연결을 해야하는지 모르겠습니다..
-
미해결스프링 핵심 원리 - 기본편
단일책임 원칙에 대해 질문이 있습니다.
요청과 응답에 대한 DTO클래스를 생성할때 이너클래스를 사용해도 될까요?@Getter @Setter @NoArgsConstructor public class Member { @Getter public static class Request { private String name; } @Getter public static class Response { private Long id; private String name; } }이런식으로 하나의 클래스안에 두개의 책임을 가지게 되면 SRP에 위배되는 거니까 요청과 응답에 대한 DTO를 모두 만들어 두는게 더 좋은걸까요? 그렇게 하면 DTO클래스들이 너무 늘어날까봐 좋지 않을것 같고..질문을 요약하자면 DTO를 많이 생성하더라고 SRP를 지키는게 좋은 선택일까요?
-
미해결언리얼 엔진 5 FPS 게임 만들기
올려주신 강의 자료에 대해 궁금한 점 있습니다.
파트3 부분만 따로 참고해서 만들고 싶어서 그러는데혹시 올려주신 자료를 사용하지 않고 lyra 에셋이랑 이펙트만 받아서 진행해도 괜찮은가요?파트가 통합되어 있다보니까 헷갈려서요.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
g++ -std=c++14 -Wall a.cpp -o test.out 입력 중 오류
안녕하세요 강사님 맥m1에 c++ 설치 중에 궁금한 점이 있어서 질문 남깁니다.g++ -std=c++14 -Wall a.cpp -o test.out코드를 터미널에 입력하는 과정에서이렇게 오류가 뜨는데 어떻게 해결하면 될까요? 이전에 터미널에서 설치하는 과정에서는 이렇게 되어있었던 상황입니다!
-
해결됨Practical Testing: 실용적인 테스트 가이드
Persistence 계층 단위테스트를 어디까지 하는게 맞을까요?
@DisplayName("상품 번호 리스트로 상품목록을 조회하기") @Test void findAllByProductNumberIn(){ //given Product product1 = createProduct("001", 1000); Product product2 = createProduct("002", 3000); Product product3 = createProduct("003", 5000); productRepository.saveAll(List.of(product1, product2, product3)); //when List<Product> findProducts = productRepository.findAllByProductNumberIn(List.of("001", "003")); //then assertThat(findProducts).hasSize(2) .extracting("productNumber","price") .containsExactlyInAnyOrder( tuple("001",1000), tuple("003",5000) ); }1.데이터 계층은 유효한 상품 번호 리스트만 넘어왔다는 전제로만 테스트를 해도 충분한가요?유효하지 않은 상품번호는 검증 로직에서 걸러졌다고 생각하고 테스트를 한다고 생각하면 될까요? @DisplayName("미등록된 상품 번호 리스트로 상품목록을 조회하기") @Test void findAllByProductNumberIn(){ //given Product product1 = createProduct("001", 1000); Product product2 = createProduct("002", 3000); Product product3 = createProduct("003", 5000); productRepository.saveAll(List.of(product1, product2, product3)); //when List<Product> findProducts = productRepository.findAllByProductNumberIn(List.of("004", "005")); //then assertThat(findProducts).hasSize(0); } 2.JpaRepository가 제공하는 기본 save,findAll 등도개발자가 원하는 데이터가 올바르게 저장 되었는지, 조회가 되었는지 테스트도실무에서는 작성하시나요 ?아니면 이미 만들어진 코드이기 때문에 불필요한 테스트 코드라 생각해서넘어가는지 궁금합니다. @DisplayName("주문 생성시 상품 리스트에서 주문의 총 금액을 계산한다.") @Test void calculrateTotalPrice(){ //given List<Product> products = List.of( createProduct("001", 1000), createProduct("002", 2000) ); //when Order order = Order.create(products, LocalDateTime.now()); //then assertThat(order.getTotalPrice()).isEqualTo(3000); } private Product createProduct(String productNumber, int price) { return Product.builder() .type(HANDMADE) .productNumber(productNumber) .price(price) .sellingStatus(SELLING) .name("메뉴 이름") .build(); } @DisplayName("주문 생성시 주문 상태는 INIT 이다.") @Test void init(){ //given List<Product> products = List.of( createProduct("001", 1000), createProduct("002", 2000) ); //when Order order = Order.create(products, LocalDateTime.now()); //then assertThat(order.getOrderStatus()).isEqualByComparingTo(OrderStatus.INIT); } @DisplayName("주문 생성시 등록시간을 기록한다.") @Test void registeredDataTime(){ //given LocalDateTime registeredDateTime = LocalDateTime.now(); List<Product> products = List.of( createProduct("001", 1000), createProduct("002", 2000) ); //when Order order = Order.create(products, registeredDateTime); //then assertThat(order.getRegisteredDateTime()).isEqualTo(registeredDateTime); }Order.create 테스트 코드를 작성할때엔각각 필드 초기화를 단위테스트를 진행했는데, @DisplayName("주문번호 리스트를 받아 주문을 생성한다.") @Test void createOrder(){ LocalDateTime registeredDateTime = LocalDateTime.now(); Product product1 = createProduct(HANDMADE, "001", 1000); Product product2 = createProduct(HANDMADE, "002", 3000); Product product3 = createProduct(HANDMADE, "003", 5000); productRepository.saveAll(List.of(product1, product2, product3)); OrderCreateRequest request = OrderCreateRequest.builder() .productNumbers(List.of("001", "002")) .build(); OrderResponse orderResponse = orderService.createOrder(request, registeredDateTime); assertThat(orderResponse.getId()).isNotNull(); assertThat(orderResponse) .extracting("registeredDateTime","totalPrice") .contains(registeredDateTime,4000); assertThat(orderResponse.getProducts()).hasSize(2) .extracting("productNumber","price") .containsExactlyInAnyOrder( tuple("001",1000), tuple("002",3000) ); }createOrder 테스트 코드는 같이 검사를 했습니다.3.각 초기화를 해주는 정적 매서드를 테스트 코드로 작성을 했는데Order.create 테스트 코드는 필드마다 분리를 해서 테스트 코드를 작성하고,createOrder 테스트 코드는 같이 검사를 했습니다.또 강의에는 없지만 ProductResponse.of 정적 메서드로도 초기화를 했는데따로 분리해서 테스트 코드를 작성하지 않고OrderServiceTest의 createOrder()에서 같이 테스트 코드에 포함되었습니다.테스트 코드를 분리하는 경우와 같이 검사하는 경우를 나누는 기준이 있을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
쿠키는 유저당 하나만 생성이 되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]서버에 세션스토어안에 여러 세션이있고 특정 세션을 구분할 수 있는 키를 UUID로 가지고 있으며 그것을 쿠키도 value값으로 가지고 있다. 라고 이해했습니다.그러면 유저가 여러 세션을 가지고 있으면 쿠키 하나로 그 세션 들을 전부 불러 올 수 있는건가요?그렇다면 쿠키의 value값을 여러개 가질 수 있는건가요? 쿠키의 이름이 JESSSION 하나 뿐인 것으로 보여서요.
-
미해결Selenium 기본 과정
click() 이 작동하지 않네요.
click() 이 작동하지 않는데요.왜 그럴까요?
-
미해결
동영상 핸드폰에서 재생이 안되요
결재하고 수강하려고 재생버튼 눌러도 계속 뜨질않아요확인부탁해요
-
미해결스프링 핵심 원리 - 기본편
프록시 객체 조회하기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]request 스콥인 객체를 DI 할 때, 프록시를 만들어 가짜 객체를 주입하는것으로 이해했습니다.예제에서 LogDemoController에서 위 방법을 사용했으므로, LogDemoController 빈을 컨테이너에 저장할 때 DI 가 진행되어 필드값인 myLogger 에 myLogger의 프록시 객체가 저장되었다 생각했습니다.이후 @PostConstruct 를 통해 해당 필드값을 조회하면(롬복을 적용해 toString 을 사용했습니다) 오류가 발생합니다. 오류메세지에서 myLogger 가 request 스콥이고 아직 request가 없다고 했는데, myLogger에는 프록시 객체가 이미 저장되어있어서 조회가 될 거라 생각했는데 왜 조회가 안될까요?@Controller @RequiredArgsConstructor @ToString public class LogDemoController { private final LogDemoService logDemoService; private final MyLogger myLogger; @PostConstruct public void init() { System.out.println(this.toString()); } }
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 관련 강의 자료
캐글 관련 강의 자료 마지막에 강의해주신 '작업형1예상문제'와'작업형2예상문제'는 어디에서 확인하나요?캐글에서 "Big Data Certification KR' 에서 확인하나요? 어디에서 찾는지 확인을 할 수 었습니다.
-
해결됨실전 인공지능으로 이어지는 딥러닝 개념 잡기
LSTM 모형의 이해
선생님 이해가 잘 안가는 부분이 있습니다 LSTM을 보면 f, i, s~, o 전부 같은 x, h t-1의 데이터를 쓰고 있지만 각각의 다른 가중치를 쓰는 것은 이해를 했습니다그런데 input, forget 게이트에서 얼만큼 잊고, 얼만큼 받아 드린다고 하셨는데 이 부분은 각각 따로 계산이 되는건가요? 1-x가 아니여서 비율의 합이 1이 아닌데 어떤 원리로 이것을 forget gate라고 하는건가요? (아니면 s t-1이 자체가 전의 정보를 담고 있어서 이를 시그모이드로 비례적으로 계산하는건가요...?) 그리고 마지막으로 i,s~ 는 둘다 곱해서 이를 input gate라고 하는건가요? 아니면 i_t만 input gate인가요?(i,s~ 둘다 같은 데이터인데 가중치만 달라서 혼동이 옵니다) *요약하자면 선생님 써주신 공식을 보면 그냥 같은 데이터에 다른 가중치를 계산한건데 어떤 원리로 이게 작동하는지 잘 이해가 가지 않습니다*가능하시면 해당 수식이 해당 모형에서 어떻게 작동하는지 조금 더 알려주시면 감사하겠습니다 :)
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
React에서 일괄번역을 할 수 있는 API나 라이브러리가 있을까요??
요즘은 홈페이지마다 번역기능이 달려있는데 i18n을 사용하여 일일히 다는 방법외에는 없는건가요?? 페이지 전체를 자동번역을 할 수 있는게 있는지 궁금합니다!
-
미해결
자료 부탁드립니다
안녕하세요 :) 리뷰 남겼는데 강의자료 부탁드립니다! 이메일주소는sinhimin11@naver.com입니다!
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
Not Found
404 Not Found 표시하는 강의 따라하다가 안되어서 질문드립니다.2~3번 다시 들으면서 해봤는데, 잘못된 주소를 쳤을때 화면에 NotFound 페이지 만든게 뿌려지지 않아서요router>index.js 파일에import NotFoundView from '@/views/NotFoundView.vue'; 하단에... { path: '/pathMatch(.*)*', name: 'NotFound', component : NotFoundView, }, views > NotFoundView.vue 파일도 만들고....다 따라했는데...그전까지 잘 되고 잘 따라갔는데,,,,여기서 막힘요 ㅡㅡ
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
fasterRCNN 학습 오류
안녕하세요 선생님. 제가 다른 이미지 데이터를 가지고 fasterRCNN을 실습 중인데요, 정말 고생해서 어떻게 데이터 셋은 만들 거 같은데 학습이 돌아가지 않네요- mmdet - INFO - Automatic scaling of learning rate (LR) has been disabled.이런 에러가 뜹니다.뭐가 문젠지 1도 모르겠고, 설정 파일이나 데이터셋 형식이나 너무 복잡하고 어렵네요ㅠㅠhttps://drive.google.com/file/d/1P3nfyaeWCBdGj29KYL_J0u2_ygGeuPdf/view?usp=sharing부디 검토부탁드립니다. 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. @ModelAttribute Member mebmer2 이렇게 있으면 객체 이름으로되서 member2로 저장되지않나요? 그렇게 알고있는데 한번은 클래스이름 Member에서 앞글자 하나만 소문자로 바꾼 member로 모델에 등록된다고 말씀하신거같아서
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[2-C] fill 함수의 범위 질문
안녕하세요 강사님.강사님 1주차는 잠시 건너뛰고2주차 시작하고 있는데2주차 개념강의를 듣고 문제를 풀고 있습니다.이미 제가 학교에서 배웠던 개념을 의사 코드로 잘 표현하신 개념강의가 확실히 이해가 잘 되고 응용도 잘 되는 것 같습니다.잡소리가 길었고 질문 드립니다./* 답 : http://boj.kr/c6ad22b6eb274064b90a2fb2c3509961 */ #include <bits/stdc++.h> using namespace std; int N; int m[104][104]; bool visited[104][104]; int dx[4] = {0, 1, 0, -1}; int dy[4] = {1, 0, -1, 0}; void dfs(pair<int, int> node, int height) { visited[node.first][node.second] = true; for(int i = 0; i < 4; i++) { int nx = node.first + dx[i]; int ny = node.second + dy[i]; if(nx < 0 || nx >= N || ny < 0 || ny >= N) continue; if(m[nx][ny] > height && !visited[nx][ny]) dfs({nx, ny}, height); } } int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int max_height = 0; cin >> N; for(int i = 0; i < N; i++) for(int j = 0; j < N; j++) { cin >> m[i][j]; max_height = (max_height < m[i][j]) ? m[i][j] : max_height; } // 모든 영역의 값이 1일 경우 반복문이 돌지 않는다. // 또한, 아무 지역도 물이 잠기지 않을 수 있으므로 // 최솟값은 1로 지정해야한다. int answer = 1; for(int tc = 1; tc < max_height; tc++) { // N * N 이 아닌 // 104 * 104 으로 해야 정상적으로 된다. // 이유는 모르겠다. fill(&visited[0][0], &visited[0][0] + 104 * 104, 0); int count = 0; for(int i = 0; i < N; i++) for(int j = 0; j < N; j++) if(m[i][j] > tc && !visited[i][j]) { dfs({i, j}, tc); count++; } answer = (answer < count) ? count : answer; } cout << answer << '\n'; return 0; }핵심 로직은 다 짜고 이해도 됐는데 저fill(&visited[0][0], &visited[0][0] + 104 * 104, 0);이 부분에서 fill 함수의 두 번째 인자가&visited[0][0] + N * N 을 하면 안되고&visited[0][0] + 104 * 104 이여야 정상 작동하는 것인가요?예제 1을 기준으로visited 2차원 배열을 N * N 만큼 출력 해봤는데N * N 의 경우 해당 범위만큼0 으로 채워지지 않았습니다.이유가 궁금합니다.
-
미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
@Transactional 어노테이션 위치에 관하여 질문합니다 :)
홍빡 선생님 반갑습니다. 덕분에 스프링 부트에 대한 개념과 전체적인 흐름이 잘잡히고 있습니다. 아직 너무도 부족한.... ㅠㅠ 1인 그래도 부지런히 따라 가겠습니다.다름이 아니라 선생님이 하신 코드를 따라 치면서 생각하다가 이렇게도 해도 괜찮을것같은데혹여나 문제가 발생하면 안될거 같아서 정확히 알고자 질문드리빈다.우선 기존에 짜셨던 코드입니다.@SpringBootTestclass ArticleServiceTest {@Autowired ArticleService articleService; @Transactional @Test void index() {// 예상 Article a = new Article(1L, "가가가가", "1111"); Article b = new Article(2L, "나나나나", "2222"); Article c = new Article(3L, "다다다다", "3333"); List<Article> expected = new ArrayList<Article>(Arrays.asList(a,b,c)); // 실제 List<Article> articles = articleService.index(); // 검증 assertEquals(expected.toString(), articles.toString()); } @Transactional@Test void show_성공____존재하는_id_입력() {// 예상 Long id = 1L; Article expected = new Article(id, "가가가가", "1111"); // 실제 Article article = articleService.show(id); // 검증 assertEquals(expected.toString(), article.toString()); }제가 말씀드리고 싶은 부분은 저 롤백역할을 하려는 Transactional 어노테이션?? 에 관한 이야기인데요. 테스트 코드가 랜덤으로 진행이 되는건지는 정확히 모르겠습니다.그런데 Transactional을 초반에 설정하면 어떨까요 ? 우선 그렇게 해서 2번을 돌려보았는데 테스트 코드 2번 다 성공했습니다.예를들어서 @Trasactional@SpringBootTestclass ArticleServiceTest {@Autowired ArticleService articleService; @Test void index() {// 예상 Article a = new Article(1L, "가가가가", "1111"); Article b = new Article(2L, "나나나나", "2222"); Article c = new Article(3L, "다다다다", "3333"); List<Article> expected = new ArrayList<Article>(Arrays.asList(a,b,c)); // 실제 List<Article> articles = articleService.index(); // 검증 assertEquals(expected.toString(), articles.toString()); }@Test void show_성공____존재하는_id_입력() {// 예상 Long id = 1L; Article expected = new Article(id, "가가가가", "1111"); // 실제 Article article = articleService.show(id); // 검증 assertEquals(expected.toString(), article.toString()); } 이런식으로요!! 그러면 일일이 작업을 안해도될것같은데혹시나 이게 잘못될수도 있을까봐 질문드려봅니다!
-
해결됨블렌더 3D 아이소메트릭 방 만들기
랜더링 오류 질문 드립니다..!
안녕하세요! 먼저 좋은 강의 정말 감사드립니다.튜토리얼 보면서 잘 따라하고 있는데 마지막 렌더링 과정에서 다음처럼 오류가 나서어떤게 문제인건지 궁금합니다.위에가 뷰 포트로 본 거고 아래가 랜더링 한 결과에요(ctrl+f12)