묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결토비의 스프링 부트 - 이해와 원리
독립 실행형 스프링 애플리케이션까지 본 수강생입니다. 질문있습니다.
질문은 다음과 같습니다...!====Spring Container 제작시, 자기자신을 Bean으로 등록하는 이유==== 코드를 수정했습니다.Servlet Container, DispatcherServlet을 Bean으로 등록하는 코드를 config 패키지의 클래스로 따로 빼버렸습니다.[ :이유:ComponentScan은 자기자신을 탐색범위에 넣지 않는다->클래스 내부의 Configuration을 찾지 못한다-> Configuration만 외부로 빼면 자기자신을 Bean으로 등록하지 않아도 된다] Spring Container를 만드는 과정에 Servlet Container를 만들지 않습니다. 분리시켰습니다.(순서대로 만들어진다는 느낌을 받기위해...) 다음은 제가 작성한 main 문의 코드입니다.@ComponentScan public class DemoApplication { public static void main(String[] args) { //Spring Container 구성정보 AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); // Bean 등록 applicationContext.register(DemoApplication.class); //Spring Container 실행(초기화) applicationContext.refresh(); // ========================================= //Servlet Container 구성정보 ServletWebServerFactory serverFactory = applicationContext.getBean(ServletWebServerFactory.class); //servlet 만들기 DispatcherServlet dispatcherServlet = applicationContext.getBean(DispatcherServlet.class); dispatcherServlet.setApplicationContext(applicationContext); //Servlet Container 인스턴스 WebServer webServer = serverFactory.getWebServer(servletContext -> { servletContext.addServlet("dispathcerServlet", dispatcherServlet).addMapping("/*"); }); //서버 실행 webServer.start(); } }1번의 이유로,// Bean 등록 applicationContext.register(DemoApplication.class);이걸 주석처리했습니다.같은 클래스내에 ApplicationContext가 있고, 생성도 완료한 시점이기 때문에, 본인이 Bean에 직접 접근해서 꺼내 써도 된다고 생각했습니다.실제로도 직접 Bean을 꺼내서 주입시켜버립니다. ServletWebServerFactory serverFactory = applicationContext.getBean(ServletWebServerFactory.class); DispatcherServlet dispatcherServlet = applicationContext.getBean(DispatcherServlet.class); 따라서 저는, Spring Container가아래 2줄의 코드에서 Bean을 다 생성하고 DI까지 완료한줄 알았습니다.//Spring Container 구성정보 AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); // Bean 등록 //applicationContext.register(DemoApplication.class); //Spring Container 실행(초기화) applicationContext.refresh();어차피 서블릿 환경 설정도 저 어딘가에서 ComponentScan 해서 Bean으로 등록하기 때문에자기자신을 Bean으로 등록하는건 필요 없는줄 알았습니다. 그리고 발생한 에러 입니다.No qualifying bean of type 'org.springframework.boot.web.servlet.server.ServletWebServerFactory' available =======주석만 풀면 잘 돌아갑니다. 왜이럴까요...?
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
pod 레이블 질문
pod의 레이블 키값은 정해진 것만 사용해야 하나요? 임의 지정할 수도 있는지요?
-
해결됨디자인 시스템 with 피그마
안녕하세요 선생님!
타이포그래피 피그마 토큰에서 default 값 16에서 14로 변경을 해도 폰트의 크기가 줄어들지 않는데 적용이 잘못된걸까요??..
-
미해결컴퓨터 일반론
부록 강의영상은 소리가 안들리는게 맞나요?
다른 강의영상은 소리가 들리는데 부록은 안들리네요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Argument Resolver. HTTP 메시지 컨버터
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@RequestBody타입의 파라미터 컨트롤러가 호출되기전에 @RequestBody의 argument를 처리하는 Argument Resolver가 HTTP 메시지 컨버터를 사용해서 필요한 객체를 생성하고 생성한 파라미터를 컨트롤러로 넘겨주는 것이다.Argument Resolver안에 HTTP 메시지 컨버터가 있다고 생각을 해도 괜찮을까요?Argument Resolver도 매우 다양한게 존재하고, HTTP 메시지 컨버터도 매우 다양하게 존재한다고 하셨는데 Argument Resolver-HTTP 메시지 컨버터가 쌍을 이룬다고 생각해도 될까요?Argument Resolver가 처리할 수 있는 argument는 결국 HTTP 메시지 컨버터가 생성해주는 것으로 이해했습니다.저는 이렇게 이해를 했는데 혹시 다르게 이해한 부분이 있을까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
궁금한게 있습니다.
언제 @MockBean 쓰고@Mock + @InjectMocks 을 이용하나요?? @MockBean은 자동으로 DI해주니 @MockBean 쓰는게 낫지 않나요?? 제가 설명해주신걸 놓친거 같은데..다시한번 설명 부탁드리겠습니다.미리 감사드릴게요.
-
해결됨코딩테스트 [ ALL IN ONE ]
링크드리스트의 while cur.next: 부분이 제가 이해한 것이 맞는지 질문드립니다.
else: cur = self.head # cur 포인터는 head가 가리키는 곳을 가리킴(현재는 1의 값을 가진 노드를 가리킴) while cur.next: # cur.next값은 곧 head가 가리키는 new_node의 next값인 Node이므로 False라서 while문 탈출 cur = cur.next cur.next = new_node # None값을 가지는 노드를 새로 들어온 노드와 연결 링크드 리스트부터 갑자기 이중 포인터가 사용되서 이해하기가 어려웠는데요, 결국에는 cur가 가리키는 값이 head이고, head가 가리키는 것이 new_node인데, 현재 new_node의 next값은 None이므로, 이것을 새로 추가된 노드를 가리키게 하기 위해 cur.next = new_node로 작성한 것인가요?
-
미해결이것이 진짜 크롤링이다 - 실전편
쿠팡 검색 후 제품명 가져오기 오류
''' 아래 키워드별로 순위, 브랜드명, 제품명, 가격, 상세페이지링크를 엑셀에 저장하기(1~100위 까지) [게이밍마우스, 기계식 키보드, 27인치 모니터] ※ 주의사항 - 광고 상품은 제외한다 (AD라고 표기됨) - 브랜드명이 없거나 이상하면 빈칸 ''' import requests from bs4 import BeautifulSoup import time import pyautogui # 헤더에 User-Agent, Accept-Language 를 추가하지 않으면 멈춥니다 header = { 'Host': 'www.coupang.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Language': 'ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3', } url = f'https://www.coupang.com/np/search?component=&q=%EA%B2%8C%EC%9D%B4%EB%B0%8D+%EB%A7%88%EC%9A%B0%EC%8A%A4&channel=user' response = requests.get(url, headers=header) html = response.text soup = BeautifulSoup(html, 'html.parser') items = soup.select("div.descriptions-inner") for item in items : name = soup.select_one("div.name").text print(name) 쿠팡 첫페이지에서 '게이밍 마우스' 검색하여 각 상품별 이름을 가져오는 코드를 작성했는데요.(강의에서처럼 상품별 url에 들어가서 가져오는 것이 아닌, 검색 완료 페이지에서 바로 가져오기)각 상품별로 div의 descriptions-inner tag를 가지고있고 div의 name tag를 가지고있어 해당 방법으로 가져오기를 해봤습니다.위와 같이 실행을 하면 상품별 이름을 가져오기는 하는데 해당 페이지내 랜덤한 상품명이 하나로 쭉 나오는데... 어디서 잘못된걸까요?(결과는 아래 처럼 페이지중 하나의 상품명이 쭉나옵니다.)로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
비밀번호 수정 기능에 관해 궁금한 점이 있습니다.
마이페이지에서 비밀번호 수정 기능을 구현 중에 있습니다.현재 비밀번호와 새로운 비밀번호를 입력하고 뮤테이션을 날릴 때에는 새로운 비밀번호만 넣어서 저장을 하는 것으로 이해를 했습니다. 기존 비밀번호의 체크는 백엔드에서 이루어지는 과정이 따로 없는 것 같아서요. 제가 가볍게 생각해보기로는 loginUser api를 활용해서 체크를 해야하나 싶은데요, 현재 비밀번호 체크 로직이 이 과정에서 구현 가능한지 아니면 추가로 다른 기능이 있어야 가능한건지 궁금합니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
시작은 프리캠프 final 과제 질문
안녕하세요 과제 중 해결되지 않는 문제가 있어 문의 드립니다. 인증 확인 버튼을 누를 때'인증이 완료되었습니다' 안내창 띄우기안내창 확인을 누르면, 인증 확인 버튼 텍스트 인증 완료로 변경인증 확인 버튼 비활성화가입하기 버튼 활성화과정을 하고 있습니다.const timer__button = () => { alert("인증이 완료되었습니다.") document.getElementById("timer__button").innerText = "인증 완료" document.getElementById("timer__button").disabled = true document.getElementById("submit").disabled = false }인증 확인 버튼을 누르면,'인증이 완료되었습니다.' 안내창이 뜨고, 인증 확인에서 인증 완료로 텍스트가 변경됩니다.하지만 버튼의 활성화와 비활성화가 되지 않습니다. 타이머가 작동되고 있는 동안 타이머가 활성화되도록 한 코드 때문에 씹히는 걸까요? 혹시 몰라 타이머 부분 코드도 첨부합니다.const randomNumber__button = () => { document.getElementById("randomNumber__button").disabled = true let randomNumber = String(Math.floor( Math.random() * 1000000 )).padStart(6,"0") document.getElementById("randomNumber__number").innerText = randomNumber let time = 7 let timer = true timer = setInterval(function(){ if(time >= 0){ let min = Math.floor(time/60) let sec = String(time%60).padStart(2,"0") document.getElementById("timer__number").innerText = min + ":" + sec time = time - 1 document.getElementById("timer__button").disabled = false } else { document.getElementById("timer__button").disabled = true document.getElementById("randomNumber__number").innerText = "000000" document.getElementById("timer__number").innerText = "3:00" clearInterval(timer) } },1000) } 혹시 이 코드에 영향을 받아 버튼 비활성화가 안 되는 거라면 타이머 숫자를 3:00(기본 세팅 값)으로 바꾸면 될까 했지만 역시 안 됐습니다.const timer__button = () => { document.getElementById("timer__button").innerText = "인증 완료" alert("인증이 완료되었습니다.") document.getElementById("timer__number").innerText = "3:00" // document.getElementById("timer__button").disabled = true // document.getElementById("submit").disabled = false } 여기저기 찾아본 결과 alert 기능은 안내창이 떠 있는 동안 동작을 일시정지 시키고, alert 다음으로 이어지는 동작을 적어줄 땐 첨부 코드와 같이 단순 나열로 가능하다고 합니다. 다른 코드들 찾아봤을 때도 제가 쓴 코드와 유사했고요. 어느 부분이 문제인 건지, 만약 앞서 작성한 타이머 코드 때문에 씹히는 거라면 어떻게 해결해야 좋을지 힌트를 좀 받고 싶습니다.alert button disabled 이 키워드로 해결책을 검색하며 찾아봤는데요, 혹시 더 적절한 검색 키워드가 있다면 그것도 추천 부탁합니다. 검색도 기술인 것 같은데 요령이 없네요.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
배열을 생성할때
String[] a = new String[] {“abc”, “bcd”}; 이 방법과String[] a = {“abc”, “bcd”} 의 방법중 아래의 방법이 조금 더 깔끔하고 효율적인 코드가 아닌가요? 첫번째 방법을 사용하는 이유를 알고 싶습니다
-
해결됨ChatGPT 영어 상황극 채팅 서비스 만들기 (Feat. 파이썬/장고채널스)
07/02 강의에서 질문 드립니다.
강의 내용 4:00에 get_room 함수 관련하여room: RolePlayingRoom = None 지정하는 과정에서 에러가 나옵니다TypeError: unsupported operand type(s) for |: 'ModelBase' and 'NoneType'이러한 에러가 나오는데 파이썬의 버전 문제일까요?파이썬은 3.9.12 버전을 사용중입니다.
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
몇가지 질문 부탁 드립니다.
이번질문은 수업내용과는 다르지만 부탁드립니다. 리눅스나윈도우에서 모듈을 많이쓰잖아요 예를들면 리눅스에서 부팅할떄 모듈들 많이쓰고 pam에서도 모듈쓰고하잖아요 근데 프로그램안쓰고왜 모듈쓰나요? 설치된프로그램없나요?아니면 모듈들이 합쳐져서 프로그램으로 변환이라도 하나요? 데몬프로세스랑 백그라운드 프로세스랑 차이가 뭔가요? 일단 데몬은 윈도우의 서비스로생각하면 되고 가전제품 예를들면 냉장고여기까지는 알고있습니다. 3.유틸리티라는게 무슨프로그램이죠? 예를들면 알집생각하면 된다는데
-
미해결AB 테스트 실무자 완벽 가이드
샘플 사이즈 관련 질문
AB 테스트 평가지표로 활용되는 경우는 크게 평균지표와, 비율 지표가 있습니다. 이때 어떤 지표가 평가기준으로 하는 가에 따라 샘플 사이즈 계산 방법도 달라지게 될텐데요,강의에서는 실험목표에 지정된 평가지표(비율지표)를 기준으로 샘플사이즈를 계산하고 해당 모수들을 기반으로 ARPU와 같은 평균지표 검정도 같이 수행하고 있습니다.이부분 또한, 평가 지표마다 각기 다른 모수를 셋팅하기 어렵다는 현실적인 문제가 엮여 있을것 같습니다. 현업에서도 메인 평가지표를 기준으로 샘플사이즈를 계산하고, 해당 수준을 만족하는 동일한 그룹에 대해 여러 종류(비율/평균)의 평가지표를 같이 검정하는지 질문드립니다.
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
들여쓰기 맞추는 방법
2:48 보면 def 2개 하셨잖아요! 그런데 저는 두번째 def 입력할때는 들여쓰기가 똑같지 않고 안 맞거든요ㅠㅠ 들여쓰기 맞추는 방법이 무엇인가요...? 스페이스로 맞춰야하나요??
-
미해결AB 테스트 실무자 완벽 가이드
카테고리별 통계적 검정관련 질문
안녕하세요 카테고리별 통계적 검증 관련해서 질문 있습니다.최초 실험 설계시 유의 수준과 검정력, 베이스 수준에 따른 리프트 수준을 고려하여 통계적 검증을 위한 최초 샘플 사이즈를 계산합니다.그러나 동일한 모수에 대해 카테고리별 구매 전환율을 검정하는 경우와 달리, OS별 구매 전환율은 검정 수행시 각 실험 그룹의 모수가 절반 수준으로 줄어들게 되는데, 강의에서는 이 상태로 통계적 검정을 진행하고 있습니다.검정 결과는 공식에 따라 계산 될 수 있겠지만 샘플사이즈가 줄어들면서 사전에 고려했던 베타 오류수준을 만족하지 못하게 될텐데요, 이 상태에서 나온 검정 결과도 현업에서 전체 그룹에 대한 검정 결과와 동일한 수준의 검정 결과로 판단하고 있는지 궁금합니다.물론 현실적으로 각 세그먼트별 샘플사이즈 까지 최소 샘플 사이즈를 맞추려면 비용이 과다하게 들어서, 세그먼트 분할에 따라 모수가 줄어들 경우에는 검정 결과를 참고용 정도로만 활용할 수 있을것 같은데 현업에서는 이와 관련해서 어떤 기준을 갖고 계신지질문 드립니다.
-
미해결코딩테스트 [ ALL IN ONE ]
할당되지않은 메모리
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요, 강사님!강의 잘 듣고있습니다. 정말 감사합니다 :)아주 간단한...! 질문입니다!ㅎㅎ섹션 2. List의 배열(Array) 강의에 @3:04부분에서오른쪽 메모리 그림과 함께 '아직 할당이 되지 않은 메모리가 있다, 비어있기 때문에 어떤 데이터든 집어넣을 수 있다.'고 말씀하셨는데, 메모리를 보면 01001 이렇게 2진수 값이 들어있는것같은데 이것도 아직 할당되지않은 메모리로 보면 되는건가요~? 감사합니다~~!
-
미해결Slack 클론 코딩[실시간 채팅 with React]
로그아웃시 쿠키 남아있는것 관련 질문
안녕하세요 제로초님! 강의 잘 듣고 있습니다.다름이아니라 강의 내용대로 따라가면서 무리없이 로그인 로그아웃 동작하도록 만들었는데현재 상태는 로그아웃을 하게되면 swr을 revalidate 해서 로그아웃을 수행한 상태에서는 유저정보 api를 호출할 수 없으니 undifined가 되어서 그 값으로 페이지 이동을 제어한다 라고 이해를 했는데 혹시 맞을까요? 맞다면 로그아웃 후에도 클라이언트 사이드에 쿠키에 토큰값이 아직 지워지지 않은채로 남아있는데 백엔드에서는 로그인처리가 되었어도 프론트에서 쿠키값을 따로 지워줄 필요는 없는것인지 궁금합니다!
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
강의중에 램에대한 질문
안녕하세요 유튜브 보고 강의 신청하게 되었어요 두가지만 질문 할게요 1.강의 컴퓨터가 연산하는과정 여기에서 7분즘에 2의 32승 32bit이고 이건 4GB를 관리한다 그래서 32bit는 4G밖에 관리 못한다고 하셨는데 무슨말이죠? 이부분이 좀 이해가 안되서요 2.그리고 하드디스크와 파일시스템 보고 질문드리는데요트랙과 섹터 수업하시는데 그럼 볼륨이랑 섹터랑 차이가 뭐죠?그리고 클러스터 언급하셨는데 클러스터는 섹터들의 모음인가요?>
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
안녕하세요. 질문이 있습니다.
강의 내용대로 따라하고 있는데 'Player Controller Class' 부분이 변경 되지 않는데 왜 그런걸까요.ABPlayerController.cpp 파일 내용입니다.#include "Player/ABPlayerController.h"void AABPlayerController::BeginPlay(){ Super::BeginPlay(); FInputModeGameOnly GameOnlyInputMode; SetInputMode(GameOnlyInputMode);}ABPlayerController.h 파일 내용입니다.#pragma once#include "CoreMinimal.h"#include "GameFramework/PlayerController.h"#include "ABPlayerController.generated.h"/** * */UCLASS()class ARENABATTLE_API AABPlayerController : public APlayerController{ GENERATED_BODY() protected: virtual void BeginPlay() override;};