묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
cascade의 위치 질문드립니다.
cascade는 연관관계의 주인쪽에 있어야하나요, 아니면 거울쪽에 있어야하나요?강의에서는 Parent(조상 엔티티)쪽에 위치했는데 연관관계의 주인 같은것과 상관없이 조상 엔티티 쪽에 있어야하는 것 같기도 하고 말이죠...
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
알려주신 명령어키가 안눌려요
맥북 사용중인데 아톰에서 알려주신 cmd+i눌러도 실행이 되지 않습니다 ㅠ
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
혹시 웹팩 5 내용으로 강의 업데이트는 안되는건가요?
혹시 웹팩 5 내용으로 강의 업데이트는 안되는건가요?
-
미해결스프링 핵심 원리 - 기본편
메서드 추출 시, @NotNull 이 자동으로 붙습니다
윈도우에서 ctrl + alt + M 을 입력했을 때, 강의처럼 Extract Method 창이 뜨지 않고이렇게 바로 추출할 수 있게 나오는데 이 방법으로 생성을 하면 @NotNull 이 붙은 채로 같이 생성이 됩니다.붙이고 사용해도 되는걸까요?(+ 그리고 사진과 같은 방식 말고 강의에서처럼 타입같은거 바로 바꿔서 추출할 수 있게 하는 창을 띄울 순 없을까요? 이렇게 하니 static도 자동적으로 붙어버리네요)
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
코드 작성 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]코드 작성하실 때 항상 첫줄 비우고 작성하시는 이유가 궁금합니다보기 더 편해서 그런 건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
try-catch 3개로 구현한 이유?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 ~ 순수 JDBC 11:08를 보면리소스를 해제하는 close 메서드가 있습니다.3개의 try - catch 문에서 매개변수 3개가 null이 아니면 close를 하고 예외가 발생하면 SQLException을 던지는 방식인데요 발생하는 모든 예외가 다 똑같이 SQLException인데 try - catch 3개로 한 특별한 이유가 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
데이터 초기화하는 방법(@PostConstruct)
제 문제 해결 접근이 맞는것인지 질문드립니다! 테스트할 때마다 회원, 상품을 새로 등록해야하는 것이 번거로워서, 기본편에서 배운 초기화 콜백을 이용해 우선 Item을 초기화해보려고 했습니다. // ItemService.java @PostConstruct @Transactional public void initData() { Book book1 = new Book(); book1.setName("book1"); book1.setPrice(1000); book1.setStockQuantity(10); book1.setAuthor("Steven"); book1.setIsbn("10000"); itemRepository.save(book1); }위와 같이 ItemService에 초기화 메서드를 추가했는데 계속 해서 에러가 났습니다. 검색해보니 아무래도 초기화 콜백과 트랜젝션 처리를 initData()하나로 동시에 처리하려다보니 발생한 문제 같았습니다. 초기화 콜백을 확실히 완료하고나서 트랜젝션 처리를 해야 트랜젝션이 정상적으로 작동하는 것 아닌가 싶습니다. 단순히 코드상으로 이를 보장할 방법이 떠오르지 않았습니다. 이 때 떠오른게 DB2편의 @EventListener(ApplicationReadyEvent.class)인데, ApplicationReadyEvent가 스프링 컨테이너 초기화를 완전히 마치고 발생하는 이벤트라고 알고 있습니다. 이렇게 하니 초기화가 잘 됐습니다. 이처럼 선언적 트랜젝션을 적용하는 상황에서 초기화를 하기 위해서는 @EventListener(ApplicationReadyEvent.class)를 적용하는 것이 맞는 접근법일까요?@EventListener(ApplicationReadyEvent.class) @Transactional public void initData() { Book book1 = new Book(); book1.setName("book1"); book1.setPrice(1000); book1.setStockQuantity(10); book1.setAuthor("Steven"); book1.setIsbn("10000"); itemRepository.save(book1); }정상 작동한 최종 코드입니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
window 환경 powershell의 UnauthorizedAccess오류
만약 window환경 powershell 에서 아래 해당 권한 오류가 발생한다면 해당 명령어로 해결됩니다.Set-ExecutionPolicy RemoteSigned
-
해결됨코딩테스트 [ ALL IN ONE ]
오픈카카오톡 비밀번호
노션에 오픈카톡이 있던데 비밀번호가 있더라고요 혹시 입장코드 알수있을까요?
-
미해결[React 2부] 고급 주제와 훅
[4.3장 리듀서 훅] 4.3.7 활용 MyForm(풀이) 오타 제보 및 질문이 있습니다.
안녕하세요 선생님 코드에 오타가 있습니다.const formReducer = (state, action) => { if (action.type === "SET_VALUES") { console.log("SET_VALUES, state ", state); return { ...state, values: { ...state.values, //value --> values [action.name]: action.value, }, }; }value에서 values로 수정되어야 할 것 같습니다. 질문:1) value 인 상태에서는 전화번호에 숫자를 입력했을 때 onChange event에 의해서 state가 변경이 됨2) 이때 state.value는 undefined 이라 기존에 주소 값에 적어뒀던 "123" 이 무시되고 전화번호 값만 action에 의해서 state에 저장.3) useEffect가 state 변경을 감지하고 validate를 진행후에 reducer의 forceupdate 에 의해 re render 4)주소값이 없었으니 errorr값에 "주소를 입력하세요" 들어있다.라고 이해하면 맞을까요?
-
미해결스프링 시큐리티
HttpSessionSecurityContextRepository를 사용안하는 문제
선생님 안녕하세요.스프링 시큐리티 업데이트 버전만 손꼽아 기다리는 중입니다ㅠㅠ우선 저는 프로젝트에서 기존 버전이 아니라 최신 버전으로 Security를 적용하고 session 저장소로 @EnableRedisHttpSession를 사용해 Redis를 사용하는 중입니다.Redis에 sessionId가 저장되는것까지 확인했습니다.선생님 강의보면서 참고하면서 잘 따라왔다고 생각했는데, 아래처럼 에러가 뜹니다. HttpSessionSecurityContextRepository에서 SPRING_SECURITY_CONTEXT Key를 이용해서 찾은게 SecurityContext가 아닌 Authentication 인증객체라는 내용 같은데요.Authentication < SecurityContext < SecurityContextHolder가 아니라 Authentication < SecurityContextHolder가 된것 같습니다.20240322 21:08:43.930 [http-nio-8080-exec-2] WARN o.s.s.w.c.HttpSessionSecurityContextRepository - SPRING_SECURITY_CONTEXT did not contain a SecurityContext but contained: '{authentication={authorities=[{authority=ROLE_ADMIN}], details={remoteAddress=0:0:0:0:0:0:0:1, sessionId=null}, authenticated=true, principal={password=null, username=sejinpark@email.com, authorities=[{authority=ROLE_ADMIN}], accountNonExpired=true, accountNonLocked=true, credentialsNonExpired=true, enabled=true}, credentials=null, name=sejinpark@email.com}}'; are you improperly modifying the HttpSession directly (you should always use SecurityContextHolder) or using the HttpSession attribute reserved for this class?그래서 로그인한 상태에서 아래 내용을 출력해도 AnonymousUser가 뜨는데요.SecurityContextHolder.getContext().getAuthentication() 인증 저장소 필터 챕터에서 SecurityContextPersistenceFilter를 deprecated되서 SecurityContextHolderFilter를 디버깅해봤더니, SecurityContextRepository 구현체 2개 (HttpSessionSecurityContextRepository, DelegatingSecurityContextRepository) 중에서 DelegatingSecurityContextRepository로만 가서 문제인것 같습니다. 아예 HttpSessionSecurityContextRepository로 들어가질 않더라구요. 이게 문제인것 같은데, 어느부분을 확인해아할지, 혹은 어떤 필터를 커스텀해야할지 여쭙고싶습니답참고로 securityContext를 아래처럼 설정했습니다 .securityContext((securityContext) -> securityContext .securityContextRepository(new DelegatingSecurityContextRepository( new HttpSessionSecurityContextRepository() ))
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
for(char a:str) cnt[a]++가 어떻게 알파뱃의 개수를 출력하는건가요?
안녕하세요. cnt[a]가 어떻게 알파벳의 개수를 출력하는지 이해가 되지 않습니다. 근본적으로 이해가 되지 않아 좌표이동 개념은 제외하고 질문드립니다! for(char a:str) cnt[a]++; 에서be가 입력되면 b,e가 각각 a로 들어와서 cnt[b]=98cnt[e]=101위와 같이 받는 것까지는 알겠는데 cnt[a]++면, 1개씩 증가한다는 연산자인데.. 그럼 99,102가 되는 거 아닌가요..?어떻게 알파벳의 개수를 출력하는건지 모르겠습니다 감사합니다!
-
미해결[도서 포함] 현직 11년차 대기업 UX 디자이너가 알려주는 UX 취업 가이드
도서 발송 관련 문의
강의는 겨우 1시간이라 너무 짧고, 강사님의 책을 통해 자세히 배우고 싶은데 언제쯤 책을 받을수 있나요? 선착순 100명만 받는건지, 제가 100명에 포함이 되었는지 자세한 답변을 부탁 드립니다.
-
해결됨[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
섹션 5 - 북마크 탭 만들기부분에 랜더링이 안됩니다
2024-03-23 10:28:11.256 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I ViewPostIme pointer 02024-03-23 10:28:11.275 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I onDisplayChanged oldDisplayState=2 newDisplayState=22024-03-23 10:28:11.388 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I ViewPostIme pointer 12024-03-23 10:28:11.403 21448-21448 WindowOnBackDispatcher com.dk.mylivealonelife W OnBackInvokedCallback is not enabled for the application. Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.2024-03-23 10:28:11.456 21448-21448 BLASTBufferQueue_Java com.dk.mylivealonelife I update, w= 1080 h= 2340 mName = ViewRootImpl@6687397[MainActivity] mNativeObject= 0xb400007915241710 sc.mNativeObject= 0xb4000077b5238810 format= -1 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2968 android.view.ViewRootImpl.relayoutWindow:9998 android.view.ViewRootImpl.performTraversals:4056 android.view.ViewRootImpl.doTraversal:3239 android.view.ViewRootImpl$TraversalRunnable.run:11197 android.view.Choreographer$CallbackRecord.run:1650 2024-03-23 10:28:11.456 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I Relayout returned: old=(0,0,1080,2340) new=(0,0,1080,2340) req=(1080,2340)0 dur=1 res=0x0 s={true 0xb400007865290520} ch=false seqId=02024-03-23 10:28:11.460 21448-21509 ViewRootIm...nActivity] com.dk.mylivealonelife I mWNT: t=0xb4000077d52539d0 mBlastBufferQueue=0xb400007915241710 fn= 2 caller= android.view.ViewRootImpl$6.onFrameDraw:5539 android.view.ViewRootImpl$2.onFrameDraw:2103 android.view.ThreadedRenderer$1.onFrameDraw:788 2024-03-23 10:28:11.461 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I registerCallbackForPendingTransactions2024-03-23 10:28:11.511 21448-21778 TrafficStats com.dk.mylivealonelife D tagSocket(108) with statsTag=0xffffffff, statsUid=-12024-03-23 10:28:12.351 21448-21448 BookmarkFragment com.dk.mylivealonelife E DataSnapshot { key = -NtZSdcbSItwNWK2vCbE, value = {bookmarkIsTure=true} }2024-03-23 10:28:12.352 21448-21448 BookmarkFragment com.dk.mylivealonelife E DataSnapshot { key = -NtZSdcg99SS483hV45y, value = {bookmarkIsTure=true} }2024-03-23 10:28:12.352 21448-21448 BookmarkFragment com.dk.mylivealonelife E DataSnapshot { key = -NtZV1bPRolzlfUx3tLj, value = {bookmarkIsTure=true} }2024-03-23 10:28:12.352 21448-21448 BookmarkFragment com.dk.mylivealonelife E DataSnapshot { key = -NtZV1bS1QRxpkI6E6GN, value = {bookmarkIsTure=true} } 이건 로그파일이구요 로그는 찍히는데 화면에 랜더링이 안되네요 이것저것 열심히 찾아봐도 안되서 파일도 같이 첨부합니다.https://drive.google.com/file/d/1VUq5si9BXmxutF1Q1C7E9CzHVVN5sP79/view?usp=sharing
-
해결됨실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
show more 버튼이 노출되지 않는 테스트 케이스에서 limit 오동작 문제
안녕하세요, 좋은 강의 잘 듣고 있습니다.보여줄 상품 리스트가 없는 경우 show more 버튼이 노출되지 않는다. 테스트 케이스에서 limit 를 20 이하로 입력해도 테스트 실패로 잡히지 않는 문제가 있는 것 같아 보이는데요..!원인을 찾아보려 조금 테스트하다 보니.. render -> screen.findAllByTestId 를 하면서 api가 두 번 호출되는 것 같습니다. 그 과정에서 offset이 limit 만큼 증가해 호출되고 있어요. (즉, 두번째 페이지까지 렌더링했을 때를 기준으로 테스트가 돌아가는 것 같습니다)it('보여줄 상품 리스트가 없는 경우 show more 버튼이 노출되지 않는다.', async () => { await render(<ProductList limit={2} />); // offset : 0 await screen.findAllByTestId('product-card'); // offset : 2 });offset 이 useInfiniteQuery에서 리턴해주는 pageParams로 인해 만들어지는 것 같아서 pageParams가 원인인 것 같긴 한데.. 해결방법을 모르겠네요.혹시 이 부분 수정이 어떻게 되면 좋을지 확인 부탁드립니다..! +)테스트하다가 발견한 건데요, apiRoutes.products 를 mocking하는 handler에서 lastPage로 리턴하는 조건이 잘못된 건 아닌가 해서요..!ctx.json({ products, lastPage: products.length < limit });이면 테스트 코드에서 limit을 10으로 준다고 해도, 두 번째 페이지에서 lastPage가 false인 것 같습니다.ctx.json({ products, lastPage: data.products.length <= offset + limit });으로 수정되어야 하지 않을까 조심스럽게 제안드려 봅니다..!
-
해결됨김영한의 실전 자바 - 기본편
부모는 자식을 담을 수 있지만 자식은 부모를 담을 수 없는 이유
[질문 내용]다형적 참조 시 부모 클래스는 자식 클래스를 참조하여 대입할 수 있으나, 자식 클래스는 부모 클래스를 참조하여 대입할 수 없는 부분에 대해 좀 더 작동 원리를 이해하고 싶어서 질문드립니다. 예시)Parent a= new Child(); -> 실행 가능Child b = new Parent(); -> 실행 불가. 컴파일 에러 발생. 위와 같이 규칙이 정해진 이유는하위 클래스는 인스턴스 생성 시 상위 클래스 생성자를 무조건 호출하여 인스턴스 내에 상위 클래스, 하위 클래스 정보가 모두 존재하는 반면, 상위 클래스는 인스턴스 생성 시 본인의 인스턴스만 생성하기 때문에 인스턴스 내부에 상위 클래스 정보밖에 존재하지 않아 하위 클래스 데이터 타입에 해당 인스턴스 참조값을 대입할 수 없는거라고 이해하면 될까요? 상기 작동 방식이 결국엔 다운캐스팅을 명시해야하는 이유와 일맥상통하는 것 같은데 제가 정확하게 이해한건지 모르겠습니다.
-
미해결태블로 레벨UP
계산식 누락 문의드립니다.
후반부 강의에 있는 'Profit Ratio'와 '레코드 수'를 어떤 식으로 계산하셨는지 궁금합니다.제 나름대로 계산을 했는데 강의와 상이한 값이 나와서요...
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]For 무한 루프 속에 switch 조건문을 넣으려고 하는데요Switch의 break로는 for 무한루프를 못 나와서요나오는 방법이 있을까요?
-
해결됨
강의 진도율 저만 이상하다고 생각하나요?
진도률을 보면 진행한 강의 수/총 강의수로 되어 있고 그 옆에 진행한 시간/총 강의 시간 이렇게 되어 있는데.수업자료를 다운로드 받는 강의도 강의1개로 진행하는것으로 보니 사용자의 진행률은 20%이지만 시간으로 보면 진행된 것은 10%밖에 진행한 것을 확인할 수 있었습니다. 이거 진도율을 시간으로 해야 더 정확한것 아닐까요? 라는 생각이 드네요. 우리가 책을 읽을때 쪽수로 어느정도 읽었다를 가늠하지, x챕터까지 읽었으니 y% 읽었구나를 생각하지 않는것 처럼요
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
추천을 통한 주문 전환율
#5. 결제 전환율 개선 프로젝트 강의에서메인지표를 추천 클릭율과 추천을 통한 주문 전환율(CVR)로 설정해주셨는데, 여기서 추천을 통한 주문 전환율을 이렇게 계산하는 걸까요?-> 결제 완료자 수 / 최소 주문 금액을 넘지 않은 상태로 카트페이지에 진입 후,추천 버튼 사용자 수