묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
내부 클래스 static 질문입니다.
@Configuration @ComponentScan( includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = MyIncludeComponent.class), excludeFilters= @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = MyExIncludeComponent.class) ) class ComponentFilterAppConfig{ } } 이 코드 static class ComponentFilterAppConfig{ }에서 static 이 있는 이유가 궁금하여 빼서 돌려보니org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'componentFilterAppConfigTest.ComponentFilterAppConfig': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.scan.filter.ComponentFilterAppConfigTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}이런 오류가 나왔습니다.구글링을 해보니 제생각에는CommponentFilterAppConfigTest.class에서 빈을 찾지 못하여 발생한 것 같은데 보통 어노테이션을 지정하지 않으면 이런 오류가 나온다고 하더군요https://sas-study.tistory.com/385하지만 저는 단지 static 만 뺏을 뿐인데 이런 오류가 왜 나는지 궁금했습니다.마우스를 올려보니Inner class 'ComponentFilterAppConfig' may be 'static'이런 글이 있었습니다.그래서 찾아보니 https://siyoon210.tistory.com/141'외부 참조'로 인한 단점때문에 내부 클래스는 가능한 static으로 만들어야 합니다. 라고 하고'외부 참조'로 인한 2가지 단점은아래 와 같다고 하더군요참조값을 담아야 하기 때문에, 인스턴스 생성시 시간적, 공간적으로 성능이 낮아진다.외부 인스턴스에 대한 참조가 존재하기 때문에, 가비지 컬렉션이 인스턴스 수거를 하지 못하여 메모리 누수가 생길 수 있다.그러면 종합에서 생각한게 빈을 찾지 못하는건 외부참조가 가능해서인가? 라는 의문이 들었습니다.그리고 정확한 이유가 궁금해졌습니다.<전체 코드>public class ComponentFilterAppConfigTest { @Test void filterScan(){ ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentFilterAppConfig.class); BeanA beanA = ac.getBean("beanA", BeanA.class); assertThat(beanA).isNotNull(); assertThrows( NoSuchBeanDefinitionException.class, () -> ac.getBean("beanB", BeanB.class)); } @Configuration @ComponentScan( includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = MyIncludeComponent.class), excludeFilters= @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = MyExIncludeComponent.class) ) static class ComponentFilterAppConfig{ } }정리하자면 이 코드에서 static class ComponentFilterAppConfig{ } 가 static 이 없으면 왜 오류가 나는지 궁금합니다.
-
미해결홍정모의 따라하며 배우는 C언어
15.11 비트필드의 패딩
int main(){ struct { bool member1 : 1; bool member2 : 1; unsigned long long : 0; }none; printf("%zu bytes", sizeof(none)); return 0;} 해당 코드를 통해 강의에서와 같이 16bytes가 출력 되는지 확인해봤습니다. 그러나 16bytes가 아닌 8bytes가 출력되더군요. 이유를 알 수 있을까요?
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
로또번호 생성기 질문
저도 어느 분과 같이 012345로 나옵니다. 몇 번을 해 봐도 그러네요.그리고 수업에 보면 Print Text 노드를 연결 안했는데도 어떻게 번호가 출력되는 거죠?
-
해결됨만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)
강의 관련 질문입니다!
members.add.ts 25번째 줄에 return이 없어도 괜찮은건가요?또 개인적인 생각으로는 api를 호출하는 부분에서 axios를 사용하면 코드가 더 간단해질 것 같은데 fetch가 사용된 이유가 있을까요?바쁘실텐데 여러 사소한 질문들 드려서 죄송합니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Token 관련 질문 드립니다.
안녕하세요. 학습중 궁급해서 질문 드립니다. test@codefactory.ia:testtest 이 부분을 인코딩하고 포스트맨에서 로직 검사를 여러번 시험해보면서 username 즉 ID값을 다르게 변경해도 패스워드만 정확하게 맞다면 accessToken 과 refreshToken을 받을 수 있었습니다.Password부분 같이 값이 같아야 토큰을 받을 수 있는건데 ID값은 달라도 왜 토큰 값이 받아지는 거죠? 사진은 ID값을 다르게 해서 토큰을 받은 겁니다.
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Vivado simulation 단축키
안녕하세요 간단한 질문드립니다.시뮬레이션을 확인할 때 마우스 근처에 있는 노란색의 실선과 점선을 어떻게 동시에 나타낼 수 있는 건가요? 또한 시뮬레이션 단축키 및 조작방법을 익힐 수 있는 링크 추천해주신다면 감사하겠습니다.감사합니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
다음과 같은 error가 나는데 원인을 못찾겠네요..
구글링 해봐도 잘 나오지 않는데, 혹시 해결방법이 있을까요? 여기에 ChromeDriverManager().install() 이부분이 명암처리 되는거 보면, 여기서 에러 나는거 같은데, 확인좀 부탁드리겠습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
4 : 48초에 쿼리 날라가는 거 질문입니다.
제가 셋팅을 다르게 한 건지 모르겠는데콘솔창에 create, insert쿼리는 뜨는고업데이트 쿼리는 따로 안 뜨는데이유를 알 수 있을까요?try { Address address = new Address("city", "street", "zipcode"); Member member1 = new Member(); member1.setUsername("member1"); member1.setHomeAddress(address); member1.setWorkPeriod(new Period()); Member member2 = new Member(); member2.setUsername("member2"); member2.setHomeAddress(address); member2.setWorkPeriod(new Period()); member1.getHomeAddress().setCity("newCity"); em.persist(member1); em.persist(member2); tx.commit();이건 똑같이 작성했씁니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
연속된 자연수의 합(수학) - 이렇게 풀어도 괜찮을까요?
public int solution(int n) { int answer = 0, sum = 0, lt = 1; for(int rt=1; rt <= n/2+1; rt++) { sum += rt; if(sum == n) answer++; while(sum >= n) { sum -= lt++; if(sum == n) answer++; } } return answer; }이렇게 해도 정답이 되었습니다. 문제가 풀리긴 했지만 좋은 답인지는 잘 몰라서 문의드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
<p> 태그의 나머지 문자 안보이는 이유
view 환경설정 강의에서 hello.html 소스 내 <p> </p> 태그 내 "안녕하세요 손님" 문자는 브라우저에서 안보이는 이유가 무엇인지 궁금합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
그래프와 탐색- 4. 미로탐색 시간복잡도 관련
안녕하세요 항상 좋은 강의 잘 듣고 있습니다!선생님께서 가르쳐주신 풀이 방식이 생각한대로 나름 직관적(?)이여서 다른 문제에서도 잘 사용하고 있는데 아무래도 재귀방식이다보니 시간복잡도에서 시간초과가 발생합니다. 이러한 DFS 방식에서 시간복잡도를 낮추는 방법이 있을까요?또한 선생님께서는 이러한 문제 풀때 시간복잡도 관련해서 어떻게 해결하시나요?(예를들어 다른 풀이방식을 선호한다던지.. 등등)
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이분검색 while문 조건
안녕하세요 강사님 수업을 듣다가 궁금한 점이 생겨서 질문드립니다.while문의 조건이 lt<=rt: 인데 lt>rt가 되는 경우는 탐색이 완료되는 동안에는 없을것같아서 while문의 조건을 true로 하고 실행 시켜봤는데 채점프로그램을 돌려보면 오류가 발생합니다.true가 아니라 lt<=rt를 써야되는 이유가 어떤 상황일까요
-
미해결마케터를 위한 구글 애널리틱스 실무
강의북 요청
안녕하세요! 강의북 pdf 파일로 요청드립니다! jpejhp@gmail.com
-
미해결스프링 핵심 원리 - 기본편
프로젝트 생성 관련 질문있습니다.
안녕하세요. 혹시 스프링 프로젝트를 새로 만들 때마다 initializer로 매번 generate을 해서 라이브러리를 매번 다운 받아야 하는 걸까요???
-
해결됨리눅스 커널 해킹. A부터 Z까지
Kernel KPTI 적용시 영향?
/mnt/c/Users/msh/Desktop/stack_based_BOF 1m 26s ❯ grep ": mov rdi, rax ; rep" ./gadgets.txt 0xffffffff8145a958 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff8145a368 0xffffffff814747df : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff81474961 0xffffffff81479c79 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff81479cd8 0xffffffff8150a792 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff8150a391 0xffffffff81b08ab4 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff81b08a75 0xffffffff82a213e5 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff82a212b9 0xffffffff82a48d7c : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff82a48d92 0xffffffff81b098e6 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; pop rbx ; pop rbp ; ret 0xffffffff82a081f0 : mov rdi, rax ; rep movsd dword ptr [rdi], dword ptr [rsi] ; ret 0xffffffff81132ad8 : mov rdi, rax ; rep movsq qword ptr [rdi], qword ptr [rsi] ; jmp 0xffffffff81132970 0xffffffff81b2413b : mov rdi, rax ; rep movsq qword ptr [rdi], qword ptr [rsi] ; retgef➤ x/10xi 0xffffffff82a081f0 0xffffffff82a081f0: Cannot access memory at address 0xffffffff82a081f0 gef➤ x/10xi 0xffffffff81132ad8 0xffffffff81132ad8: mov rdi,rax 0xffffffff81132adb: rep movs QWORD PTR es:[rdi],QWORD PTR ds:[rsi] 0xffffffff81132ade: jmp 0xffffffff81132970 0xffffffff81132ae3: call 0xffffffff81b26270 0xffffffff81132ae8: nop DWORD PTR [rax+rax*1+0x0] 0xffffffff81132af0: push r15 0xffffffff81132af2: push r14 0xffffffff81132af4: push r13 0xffffffff81132af6: mov r13,rdi 0xffffffff81132af9: push r12KPTI가 적용된 커널에서 일부는 주소를 찾아도 gdb로 확인을 할 수 없는데, 왜 그런건가요?user level에서 page table이 줄어들어서 특정 부분이 빠지다보니, 그 가젯이 있는 부분도 빠져서 안보이는거 같은데, 약간 이상한거같습니다.[ Legend: Modified register | Code | Heap | Stack | String ] ───────────────────────────────────────────────────────────────────────────────────────────────────────── registers ──── $rax : 0xffffffff81b2c390 $rbx : 0x0 $rcx : 0x0 $rdx : 0x22a $rsp : 0xffffffff82403eb0 $rbp : 0x0 $rsi : 0x83 $rdi : 0x0 $rip : 0xffffffff81b2c3ae $r8 : 0xffff88801f01dec0 $r9 : 0x200 $r10 : 0x0 $r11 : 0x2f7 $r12 : 0x0 $r13 : 0x0 $r14 : 0x0 $r15 : 0x0 $eflags: [ZERO carry PARITY adjust sign trap INTERRUPT direction overflow resume virtualx86 identification] $cs: 0x10 $ss: 0x18 $ds: 0x00 $es: 0x00 $fs: 0x00 $gs: 0x00 ───────────────────────────────────────────────────────────────────────────────────────────────────────────── stack ──── [!] Unmapped address: '0xffffffff82403eb0' ─────────────────────────────────────────────────────────────────────────────────────────────────────── code:x86:64 ──── 0xffffffff81b2c3a5 verw WORD PTR [rip+0x4d94d6] # 0xffffffff82005882 0xffffffff81b2c3ac sti 0xffffffff81b2c3ad hlt → 0xffffffff81b2c3ae mov ebp, DWORD PTR gs:[rip+0x7e4e4fab] # 0x11360 0xffffffff81b2c3b5 nop DWORD PTR [rax+rax*1+0x0] 0xffffffff81b2c3ba pop rbx 0xffffffff81b2c3bb pop rbp 0xffffffff81b2c3bc pop r12 0xffffffff81b2c3be ret ─────────────────────────────────────────────────────────────────────────────────────────────────────────── threads ──── [#0] Id 1, stopped 0xffffffff81b2c3ae in ?? (), reason: SIGINT ───────────────────────────────────────────────────────────────────────────────────────────────────────────── trace ──── [#0] 0xffffffff81b2c3ae → mov ebp, DWORD PTR gs:[rip+0x7e4e4fab] # 0x11360 ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── gef➤ x/10xi 0xffffffff82a081f0 0xffffffff82a081f0: Cannot access memory at address 0xffffffff82a081f0혹시 몰라서 qemu script에서 qemu64로 바꿔서 kpti를 끄고 gdb를 달아서 테스트를 해봤더니, 이상하게 나오네요.$r12 : 0x0 $r13 : 0x0 $r14 : 0x0 $r15 : 0x0 $eflags: [ZERO carry PARITY adjust sign trap INTERRUPT direction overflow resume virtualx86 identification] $cs: 0x10 $ss: 0x18 $ds: 0x00 $es: 0x00 $fs: 0x00 $gs: 0x00 ───────────────────────────────────────────────────────────────────────────────────────────────────────────── stack ──── [!] Unmapped address: '0xffffffff82403eb0' ─────────────────────────────────────────────────────────────────────────────────────────────────────── code:x86:64 ──── 0xffffffff81b2c3a5 verw WORD PTR [rip+0x4d94d6] # 0xffffffff82005882 0xffffffff81b2c3ac sti 0xffffffff81b2c3ad hlt → 0xffffffff81b2c3ae mov ebp, DWORD PTR gs:[rip+0x7e4e4fab] # 0x11360 0xffffffff81b2c3b5 data16 data16 data16 xchg ax, ax 0xffffffff81b2c3ba pop rbx 0xffffffff81b2c3bb pop rbp 0xffffffff81b2c3bc pop r12 0xffffffff81b2c3be ret ─────────────────────────────────────────────────────────────────────────────────────────────────────────── threads ──── [#0] Id 1, stopped 0xffffffff81b2c3ae in ?? (), reason: SIGINT ───────────────────────────────────────────────────────────────────────────────────────────────────────────── trace ──── [#0] 0xffffffff81b2c3ae → mov ebp, DWORD PTR gs:[rip+0x7e4e4fab] # 0x11360 ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── gef➤ x/10xi 0xffffffff82a081f0 0xffffffff82a081f0: int3 0xffffffff82a081f1: int3 0xffffffff82a081f2: int3 0xffffffff82a081f3: int3 0xffffffff82a081f4: int3 0xffffffff82a081f5: int3 0xffffffff82a081f6: int3 0xffffffff82a081f7: int3 0xffffffff82a081f8: int3 0xffffffff82a081f9: int3 gef➤vmlinux를 잘못 추출한건가 싶어서 다시 추출해봤는데도 이상합니다.
-
해결됨만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)
useState의 set 함수에 대해서 질문이 있습니다.
useState의 set 함수가 비동기로 실행된다고 이해하고 있는데setLoading(true); setAuthUser({ uid: authState.uid, email: authState.email, photoURL: authState.photoURL, displayName: authState.displayName, }); setLoading(false);이 부분의 코드가 어떻게 순서대로 실행이 되는건가요? set 함수끼리는 순서가 지켜지나요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
VsCode : Import하지 않은 컴포넌트 경고표시X(설정?)
현재 버전 정보들입니다 "next": "^11.1.4", "prop-types": "^15.8.1", "eslint": "^8.33.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0"TypeScript와 React를 사용해서 프로젝트 했을 때는 VsCode에서(웹스톰만의 기능은 아니라고 생각합니다.) import하지 않은 컴포넌트에 대한 경고문이 나와서, 맥북 기준 커맨드+.을 하면 Code Action으로 import을 시켜줄 수 있었습니다.그런데강의를 진행하면서 컴포넌트를 import하지 않은 상황인데도 불구하고, 따로 경고문이 나타나지 않는데, 이게 어떤 설정을 해야하는건지 잘 모르겠습니다.<Menu /> , <Col /> , <UserProfile /> 같은 컴포넌트들입니다.(코드는 이 정도만 첨부하겠습니다.)import PropTypes from "prop-types"; import Link from "next/link"; import { Menu, Input, Row, Col } from "antd"; ... <Row gutter={8}> <Col xs={24} md={6}> {isLoggedIn ? <UserProfile /> : <LoginForm />} </Col> <Col xs={24} md={12}> {children} </Col> <Col xs={24} md={6}> <a href="https://velog.io/" target="_blank" rel="noreferrer noopener">Velog</a> </Col> </Row> </div> ); }; AppLayout.propTypes = { children: PropTypes.node.isRequired, }; export default AppLayout;Import되지 않은 컴포넌트인 <UserProfile />, <LoginForm /> 경고문이 뜨지 않는 사진도 첨부했습니다.
-
미해결스프링 시큐리티
spriing boot 3 .acccess() 질문입니다.
spring boot 3 로 진행시 .access() 강의하신것처럼 값이 들어가지지않는데 어떻게 넣어야하나요?
-
미해결스프링 핵심 원리 - 기본편
(수정) CoreApplication을 실행 후,테스트 코드까지 같이 실행되어 문제가 발생했습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]어제 작성한 질문 답변을 반영하여 다시 작성했습니다. (수정) CoreApplication을 실행하면 테스트 코드 속 내용까지 실행되는 것 같습니다. 1. BeanDefinitionOverrideException 오류 CoreApplication 실행 후 (Run Java / Debug Java 둘 다 안 됐습니다.) 다음과 같은 오류가 떴습니다. (전에는 제가 추려서 간략한 버전으로 올렸지만, 콘솔창 전체를 보여주시라고 하셔서 지저분하지만 사진 올려봅니다.)제가 로그를 본 후 해당 ApplicationContextExtendsFindTest 테스트 파일 속 TestConfig의 @Configuration을 제거하자 실행은 됐습니다.2. 1번 문제 해결 후 로그 보니 BeanLifeCycleTest 관련 로그가 뜹니다.TestConfig의 @Configuration을 제거그 후 다시 실행한 후 콘솔창 전체 사진위의 두 번째 사진에서 아래와 같이 테스트 코드 관련 출력이 보입니다. "생성자 호출, url = nullconnect: http://hello-spring.devcall: http://hello-spring.dev message = 초기화 연결 메시지"3. 결론왜 이런지 이유가 궁금합니다. 단순히 inteliJ와 vsCode 실행환경 차이인지, 아니면 그 외에 다른 이유가 있는지 궁금합니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
Switch case 관련 질문
안녕하세요.switch case(후반전) 강의 3분 30초 부분에서 궁금한 점이 생겨 질문을 남깁니다. 제가 알기로는 switch case를 사용할 때, 그 case에 해당하는 경우에만 수행 동작을 실행하는 걸로 알고 있습니다. 이 영상에서도 마찬가지로 grade를 1이라고 가정할 때, case 1은 조건을 만족하므로 price에 1000을 더해주었습니다. 하지만 그 이후 case 2를 만족하지 않음에도 불구하고 1000을 더해주고, case 3도 만족하지 않지만 1000을 더한 결과 값이 출력 되었습니다.즉, break를 넣으면 switch문을 빠져나갈 수 있다는 것은 알고 있으나, 왜 break가 없어졌다는 이유로 다음 case의 수행 동작이 실행되는지 잘 모르겠습니다. 이와 관련하여 매커니즘을 조금 더 자세히 설명해주시면 감사할 것 같습니다..!