묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
스프링 MVC-2 Session
안녕하세요 김영한 선생님 좋은 강의 항상 감사드립니다.MVC-2 강의자료 35페이지에 나와있는 부분을 공부하다가 질문드려요제가 이해한 내용이 맞으면, 1번은 서버가 클라이언트와 연결된 세션을 생성 혹은 가져오는 과정이고, 2번은 서버가 클라이언트의 세션에 로그인 정보를 넣어주는 과정으로 이해했습니다.session 강의 내용 앞 부분에서, 서버 쪽에서도 session을 별도로 저장해줘야한다고 말씀해주셨는데요, 강의 예제는 서버의 메모리에 클라이언트의 세션이 자동으로 저장되는 것인가요?그리고 실무에서는 redis 데이터베이스를 많이 사용한다는데, 이 경우에는 db에 세션을 저장하는 코드를 추가적으로 적어야할 것 같다는 생각이 듭니다. 혹시 맞을까요?마지막으로 앱 개발에서도 세션방식으로 인증 가능할까요?아시겠지만, 앱에는 쿠키라는 개념이 없습니다. 이 경우, 토큰을 활용해서 세션id를 주고받으면 될 것 같은데 실무에서도 이런 방식으로 구현을 하는지 궁금해서 질문드렸습니다.강의 내용을 벗어나는 질문들이 있지만,, 답변주시면 감사하겠습니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
8.6 토픽 모델링
선생님! 제가 토픽 모델링 부분 공부중인데 강의자료 8.6 부분을 그대로 돌렸는데 계속해서 'CountVectorizer' object has no attribute 'get_feature_names' 오류가 뜨네요?? 문제가 뭘까요ㅜ
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 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 으로 채워지지 않았습니다.이유가 궁금합니다.