묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
prototype scope에 proxy를 사용했을 경우 실패하는 이유가 뭔가요?
package hello.core.scope;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.ObjectProvider;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.annotation.Scope;import org.springframework.context.annotation.ScopedProxyMode;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import javax.inject.Provider;import static org.assertj.core.api.Assertions.assertThat;public class SingletonWithPrototypeTest2 { @Test void singletonClientUsePrototype() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); ClientBean clientBean1 = ac.getBean(ClientBean.class); int count1 = clientBean1.logic(); assertThat(count1).isEqualTo(1); ClientBean clientBean2 = ac.getBean(ClientBean.class, PrototypeBean.class); int count2 = clientBean2.logic(); assertThat(count2).isEqualTo(1); } @Scope("singleton") static class ClientBean { @Autowired private PrototypeBean prototypeBean; public int logic() { PrototypeBean prototypeBean1 = prototypeBean; prototypeBean1.addCount(); int count = prototypeBean1.getCount(); return count; } } @Scope(value = "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS) static class PrototypeBean { private int count = 0; public void addCount() { System.out.println("count = " + count + " : " + this); count++; } public int getCount() { System.out.println("count = " + count + " : " + this); return count; } @PostConstruct public void init() { System.out.println("PrototypeBean.init " + this); } @PreDestroy public void destroy() { System.out.println("PrototypeBean.destroy"); } }} 1, ProxyMode를 사용했을 경우 addCount() 와 getCount() 호출 시 같은 PrototypeBean을 사용하게 할 순 없나요? 2. 위에서 addCount() 와 getCount() 호출 시 다른 PrototypeBean이 생성되는 이유가 무엇인가요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
FROM Alias 지정 관련 문의 드립니다
안녕하세요. 쿼리문 첨부해서 다시 질문드립니다!별칭을 지정 후에 SELECT, WHERE 절에 별칭을 사용하지 않고 원래 테이블 이름을 쓰니까 오류가 났습니다. 별칭을 지정하면 별칭으로 통일해야하는건가요? 원 테이블 이름과 혼용이 안되는게 맞는지 궁금합니다! 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
System.ObjectDisposedException: Cannot access a disposed object 에러
강의내용을 복습하며 Session 부분을 여러번 반복해서 만드는 도중 System.ObjectDisposedException: Cannot access a disposed object 에러가 발생하여 질문드립니다. 본 강의에서는 OnRecvComplited 함수에 Disconnect 함수를 추가하지 않으셨는데 (Session #2 첫 부분에서 추가하신 것은 확인하였습니다) Disconnect()가 두 번 실행되었을 경우를 대비하여 _disconnect 를 플래그로 세워 Interlocked.Exchange를 이용하니 에러가 사라졌습니다. 해당 에러는 연결이 끊긴 소켓에 접근할 경우 발생하는 것으로 파악하였습니다. 그렇다면 멀티쓰레드 환경에서 OnAcceptHandler와 OnRecvComplited에 포함된 Disconnect() 함수가 동시다발적으로 실행되면서 해당 오류가 발생한다고 보면 되는 것인가요? +) 추가로 Socket.Close()를 통해 연결을 끊는다는 것을 소켓이 삭제되는 것이라고 봐도 무방한지 궁금합니다. 자료에도 소켓을 해제한다, 대기된 데이터를 삭제한다라는 표현만 사용되었고 소켓 자체를 삭제한다는 이야기는 없는 것 같아 질문드립니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
CoreApplication 파일의 @SpringBootApplication와 @Configuration에 대해 궁금한게 있어요.
CoreApplication 파일에 @SpringBootApplication이 있어 @ComponentScan이 이루어지는 걸 알 수 있는데요. 1. AppConfig 파일과 AutoAppConfig 파일이 읽어 지는 순서가 @Configuration을 갖고 있어서 바로 Bean이 되는건가요? 아니면 @Configuration 안에 있는 @Component가 있어 ComponentScan이 되는건가요? 2. 그리고 AutoAppConfig 파일에 아래와 같이 excludeFilters가 되어있는데 실행을 해보면 AppConfig의 내용이 실행된걸 콘솔창에서 볼수있었습니다. 제외 돼야 하는거 아닌가요? 제외가 되지않는다면 왜 그런지 이유를 알고 싶습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
커서컨트롤러 관련 레이캐스트 콜리더 인식 오류
현재 모든 강의를 마무리하고 전반적인 문제가 없는 지 확인하는 과정에서 몬스터 위에 커서를 올렸을 때 공격 표시로 바뀌지 않는 문제를 겪고 있습니다. 인식 자체가 안되는 게 아니라 처음 등장해서 한동안은 문제 없이 전투가 이루어지다가 몬스터와 플레이어가 비벼지는 순간부터 이상하게 레이캐스트에서 몬스터의 콜리더를 인식 못하는 문제를 생깁니다.(빨간 색 레이 선이 몬스터의 콜리더를 관통하는 상황에서 디버깅을 걸어봐도 걸리지 않고 있는 상황입니다.) 강사님이 올려주신 파일을 실행해보니 같은 문제가 발생하지는 않는데 커서 컨트롤러를 코드를 복사하여 제가 작성한 파일에 저장한 이후로도 같은 문제를 겪고 있어서 이러한 부분이 코드 상에서 발생하는 문제인지 아니면 유니티 에셋 모델에 따라 발생하기도 하는 문제인지 가늠이 안 가는 상태입니다. ----- 해결 강사님 자료와 비교해서 코드 상에 차이점을 발견하지 못해 몬스터가 가진 컴퍼넌트에서 차이를 보이는 지 확인해보니 강사님 몬스터에는 리짓바디가 없고 제 모델에는 리짓바디가 붙어있기에 그걸 제거해보니 정상적으로 작동이 되네요. 의문인 점은 아예 처음부터 인식이 안되었다면 리짓바디가 레이캐스트을 막는 일련의 작동을 하는구나 싶은데 처음에는 정상적으로 작동하다가 비비는 과정에서 레이캐스트가 안되는 문제가 발생하는 이유를 알 수 있을까요? --- 아무래도 이상하다 싶어서 구글링을 계속 하다 보니 리짓바디 관련해서 오류가 생기는 경우 리짓바디를 제거했다가 추가하는 걸 반복하다보면 문제가 해결된다는 글을 보고 몬스터의 리짓바디를 추가했다 제거하는 과정을 반복하니 갑자기 리짓바디가 있는 상황에서도 정상적으로 작동이 되네요...추가적인 코드 수정이 없는데도 이러니까 조금 당황스럽네요.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
마켓에서 사진 부분만 안보입니다 ㅠㅠ
상황을 최대한 표현해주세요.2. 구체적이고 최대한 맥락을 알려줄 수 있도록 질문을 비슷한 질문이 있어서 찾아봤는데 오타 문제더라구요 저도 그래서 오타인가 싶어서 다 찾아봤는데 도저히 모르겠네요;; 오류 사진은 뜨는걸로 봐서는 코드 문제 보다는 서버 문제인 것 같기도 한데 뭐가 문제인가요?? ㅠㅠ
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
웹 브라우저 없는 스크랩핑 및 파싱 실습(1) -git주소
webdriver 다운받은 깃주소 https://github.com/mozilla/geckodriver/releases 아닌가요? 변경되었나요? window64 받았더니 강의랑 다른게 나옵니다.
-
미해결배달앱 클론코딩 [with React Native]
pjoject.pbxproj MARKETING_VERSION은 버전업이 되지 않은것 같습니다.
6:39초를 보면 MARKETING_VERSION은 계속 1.0.0인것 같은데 이 버전도 같이 올려야 하지 않을까요?
-
해결됨쉽게 처음하는 파이썬 고급 크롤링 [Scrapy, Selenium, Headless Chrome]
ip 차단을 피하려면 어떻게 해야 하나요?
안녕하세요~ 직접 웹크롤링을 진행하며 필요한 부분만 들어서 크롤링 기초 부트캠프만 듣고 아직 이 강좌의 영상은 시청하지 못했지만, 현재 제가 당면한 문제이기도 하고 웹크롤링에서 주요한 이슈 중 하나인 것도 같아 질문드려 봅니다. 웹크롤링을 시도하다 계속 ip를 차단 당하고 있는데, 어떤 방법으로 이 차단을 피해갈 수 있을까요? ㅜㅜ 온라인 게시글을 크롤링하고 싶은데 글 한 개 스크래핑 후 잠시 멈춤 시간을 둬도 어느 정도 진행되다 계속 차단당하네요 ㅠ 관련 정보를 검색하다 user agent를 변경하는 방법까지는 적용해봤는데 그래도 여전히 2페이지 정도의 게시글을 크롤링 하고 나면 차단 당하고 하네요.. 웹크롤링 방법을 익혀도 웹크롤링을 막는 장애물들 때문에 웹크롤링에 실패할 때가 있어서 이런 장애물들을 피해갈 수 있는 방법도 중요한 것 같습니다. 강의 목차만 봤을 때는 웹크롤링 방해 또는 장애물에 관한 내용을 다루는 영상이 없는 것 같아 일단 질문드렸는데, 혹시 관련 내용을 다루는 영상이 있다면 무작정 질문드려 죄송하고, 어느 영상인지 알려주심 감사하겠습니다~!
-
미해결Vue.js + TypeScript 완벽 가이드
안녕하세요. 깃헙 권한 요청드립니다.
안녕하세요 :) 깃헙 권한 요청드립니다. rmsxor94@naver.com
-
해결됨Java TPC (생각하고, 표현하고, 코딩하고)
배열과 객체 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 하나의 자료형이 아닌 여러 자료형을 쓰기 위해 객체를 사용했고 그 결과 영화 객체를 생성했습니다. 그런데 어떻게 여러 자료형을 갖는 MovieVO객체로 배열을 만들 수 있는거죠? 배열도 객체지만 배열은 하나의 자료형만 가질 수 있는데 어떻게 이미 만들어진 객체로 배열을 생성할 수 있는지 이해가 안갑니다. 이렇게 만들면 배열에 하나의 자료형이 아닌 여러 자료형이 들어가는 것 아닌가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
insert sql batch
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 영한님! 강의 정말 잘 보고 있습니다. 궁금한 점은 조회할 때는 join fetch나 default_batch_fetch_size를 통해 성능 최적화를 하는데, 샘플 데이터를 넣을 때의 쿼리를 보니까 많은 쿼리가 나가는 것을 확인 했습니다. orderItem들이 생성 될 때 여러 번의 쿼리가 아니라 한 번의 쿼리로 실행되게 하는 방법이 있을까요?? insert batch 등을 검색해봤는데 잘 적용이 되지 않아 질문 남깁니다! insert into member (city, street, zipcode, name, member_id) values ('서울', '1', '1111', 'userA', 1); insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values ('JPA1 BOOK', 10000, 100, NULL, NULL, 'B', 2); insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values ('JPA2 BOOK', 20000, 100, NULL, NULL, 'B', 3); insert into delivery (city, street, zipcode, delivery_status, delivery_id) values ('서울', '1', '1111', NULL, 5); insert into orders (delivery_id, member_id, order_date, status, order_id) values (5, 1, '2022-06-08T16:23:38.605+0900', 'ORDER', 4); insert into order_item (count, item_id, order_id, order_price, order_item_id) values (1, 2, 4, 10000, 6); insert into order_item (count, item_id, order_id, order_price, order_item_id) values (2, 3, 4, 20000, 7); update item set name='JPA1 BOOK', price=10000, stock_quantity=99, author=NULL, isbn=NULL where item_id=2; update item set name='JPA2 BOOK', price=20000, stock_quantity=98, author=NULL, isbn=NULL where item_id=3;
-
미해결대세는 쿠버네티스 (Helm편)
helm chart의 app 버전 정보가 실제 버전과 동일한건가요?
적절하지 못한 질문일 수도 있어서 먼저 죄송합니다. helm chart로 구성할 것들이 있어서 수강도 하고 따로 구축 작업도 하고 있습니다. 주요 major한 솔루션은 이미 helm chart가 구비되어 있고 여기가 공식 repository 인거 같더군요.. https://artifacthub.io/ 근데 오픈소스의 version과, helm에서 명시한 version이 다르게 표기되어 있어서, 이게 어떻게 된건지 좀 혼동이 됩니다. 대표적으로, elasticsearch는 현재 8.2.2 버전인데, <현재 elasticsearch 버전> 헬름차트에선 7.17.3 입니다. <현 helm chart에서 Elasticsearch의 버전> 참고로 logstash, filebeat등 대부분 7.17.3 으로 관련 버전이 거의 동일하게 가고 있습니다. 이게 정말 helm엔 아직 옛날 버전만 가능한건지, 아님 helm쪽은 버전을 다르게 가져가서 그런건지.... 당연히 이건 elastic이 확실히 답변을 줄 수 있겠지만 그래도 경험이 많으시니 알고 계시지 않을까 해서 문의드립니다 ㅠㅠ
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
qna 질문이 하나가 아니라 5개씩 보여줄 경우에는 어떻게 하나요?
질문 Qna에서 하나 버튼 클릭하면, 다음 질문이 나타나는 게 반복되는데요, 질문을 5개씩 보여주고 넘어가게 하는 방법은 없을까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요
안녕하세요 선생님 강의 잘보고있습니다 제가 풀은 문제가 어느부분이 틀린지 모르겠어가지고요.. 정답은 정상적으로 나오는데 ㅇ오답처리가되서요ㅠㅠ
-
해결됨스프링 핵심 원리 - 기본편
Lombok과 Qualifier
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] <의존관계 자동 주입> 섹션의 <애노테이션 직접 만들기> 강의를 듣고 궁금한 부분이 생겨서 질문 드립니다. public OrderServiceImpl(MemberRepository memberRepository /*, @Qualifier("mainDiscountPolicy")*/ , @MainDiscountPolicy DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy;} 생성자 주입을 할 때 RateDiscountPolicy 클래스와 discountPolicy 파라미터 앞에 @MainDiscountPolicy를 붙여주는 방식으로 discountPolicy 파라미터에 주입될 객체를 지정해줄 수 있다는 것은 이해를 했습니다. 그런데 만약 Lombok을 사용한다면 생성자를 명시할 수가 없기 때문에 discountPolicy 파라미터 앞에 @MainDiscountPolicy를 붙여줄 수가 없게됩니다. 그러면 Lombok과 Qualifier를 같이 사용할 방법은 따로 없는 건가요?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
출력이 마이너스로 나와여
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중나이계산문제인데 왜 출력이 마이너스가 나올까여??ㅠㅠㅠ배열이 잘못들어가는거같은데,,
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요 강사님 POSTMAN으로 API를 테스트해보려고 하는데 설정 관련하여 문의드립니다.
- 여러분의 질문을 고대하고 있습니다. :-)- 질문 전에 검색을 먼저 해보세요. 사람 사는 게 다 비슷하다는 것을 알게 됩니다.- 예의는 거침없이 질문하기 위한 최고의 발명품입니다.- 100개의 설명이 스크린샷 한방 보다 못할 수 있습니다.- 코드를 첨부하면 전세계 누구나 이해할 수 있는 질문이 됩니다.- 하나의 질문에는 하나의 주제를 담아야 답변도 예리해집니다.- 시행착오를 알려주시면 곧 바로 원하는 문제에 집중할 수 있습니다.- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 위와 같이 발급받은 토큰을 추가하고, 해당 주소로 요청을 보내면 위와 같은 에러메시지가 발생합니다. 아래는 해당 ViewSet이고요 class PostViewSet(ModelViewSet): queryset = Post.objects.all().filter(is_public=True) permission_classes = [IsAuthenticated,] authentication_classes = [] parser_classes = [MultiPartParser, FormParser] serializer_class = PostSerializer def get_serializer_context(self): context = super().get_serializer_context() context["request"] = self.request return context def get_queryset(self): qs = super().get_queryset() qs = qs.filter( Q(author=self.request.user) | Q(author__in=self.request.user.following_set.all()) ) return qs def perform_create(self, serializer): serializer.save(author=self.request.user, ip=self.request.META['REMOTE_ADDR']) return super().perform_create(serializer) @action(detail=True, methods=["POST"]) def like(self, request, pk): post = self.get_object() post.like_user_set.add(self.request.user) return Response(status.HTTP_201_CREATED) @like.mapping.delete def unlike(self, request, pk): post = self.get_object() post.like_user_set.remove(self.request.user) return Response(status.HTTP_204_NO_CONTENT) 위 POSTMAN 설정이 적용이 안돼는가 싶어 헤더에 직접 추가해서 사용해봤는데도 동일한 에러메시지가 발생합니다.. 등록된 앱 # third party 'debug_toolbar', 'django_pydenticon', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.github', 'rest_framework', 'rest_framework.authtoken', 'corsheaders', DRF 설정 'DEFAULT_PERMISSION_CLASSES' : [ 'rest_framework.permissions.IsAuthenticated', ], 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', 'rest_framework.authentication.SessionAuthentication', ], JWT 설정 JWT_AUTH = { 'JWT_SECRET_KEY': SECRET_KEY, 'JWT_ALLOW_REFRESH' : True, 'JWT_ALGORITHM': 'HS256', 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7), 'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=28), } CORS_ALLOWED_ORIGINS = [ "http://localhost:3000", ]
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
model.addAtribute로 넘어온 값을 비교할 때
controller에서 넘어온 값을 비교해서 연산을 할 경우, Thymeleaf 표기법은 어떻게 해야하는지 궁금합니다. controller @GetMapping("operation")public String operation(Model model) { model.addAttribute("nullData", null); model.addAttribute("data", "Spring!"); model.addAttribute("num1", 10); model.addAttribute("num2", 20); return "basic/operation";} html <!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title>Title</title></head><body><ul> <li>비교 연산 <ul> <li>1 > 10 = <span th:text="{num1} > {num2}(num1=${num1}, num2=${num2})"></span></li> <li>1 gt 10 = <span th:text="1 gt 10"></span></li> </ul> </li> </ul></body></html> 상기 처럼 했더니, 에러가 나네요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
FieldInfo 형식 또는 네임스페이스를 찾을 수 없다는데
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 오류 CS0246 'FieldInfo' 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. 뭐가 잘못된지 모르겠네요