묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'
3shool 에서INNER JOIN 할때A.키 넣으려는데점 찍으면 뒤에오는 것들이 빨간색으로 나오고쿼리 돌리면'dause' 나와요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
IpPortToStringConverter이 호출되는 이유
11:40부터 시작하는 form을 제출했을때 호출되는 컨버터에 대한 질문입니다. 강의에서 제출 버튼 눌렀을때 127.0.0.1:8080라는 문자가 컨트롤러에 넘어간다고 하십니다. 해당 컨트롤러에는 @ModelAttribute가 있고 Form 을 변환하려고 했더니 IpPort객체가 있어서 문자를 IpPort객체로 변환해야하는데 이때 IpPortToStringConverter 이 또 호출된다고 하시는데요.여기서 왜 IpPortToStringConverter이 호출되는건가요? 문자에서 IpPort 객체로 변환해야하는 것이니까 StringToIpPortConverter가 호출되어야하는 것 아닌가요?
-
미해결강화학습 입문에서 Deep Q-learning/Policy Gradient까지
Cartpole 환경 이해 및 시각화 관련 문의
[1]안녕하세요? 강화학습 입문 강의 듣고 있습니다. 순서적으로 듣고 있는데 환경이 Jupyter note에서 VS로 갑자가 바뀐 이유가 궁금합니다. [2]VS를 새로 설치해야하나요? 답변 부탁드립니다.2025.06.28from Olivetree
-
미해결해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱
디스코드 서버
디스코드 서버 올바르지 않은 초대장이라고 떠요.
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
AWS EKS 클러스터 생성 후 에러 문구 질문
리소스 로드 중 오류 발생Amazon EKS is unable to communicate with your Kubernetes cluster API server. The cluster must be in an ACTIVE state for successful connection. Please try again in few minutes. 안녕하세요 선생님 고생 많으십니다 ^^ 질문 하나 하도록 하겠습니다!이렇게 에러가 나오는데요! 분명 활성 상태인데 왜 이런 에러가 발생되는걸까요? IAM 도 분명 잘 설정 했는데도요 ㅠㅠ
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
스스로 고민하고 답을 보지 않고 구현을 해보았는데요
# 1012 T = int(input()) dx = [0, 0, 1, -1] dy = [-1, 1, 0, 0] for _ in range(T): M, N, K = map(int, input().split()) graph = [[0] * M for i in range(N)] st = [] seen = set() # seen.add((0, 0)) for i in range(K): x, y = map(int, input().split()) graph[y][x] = 1 st.append([y, x]) cnt = 0 while st: cur = st.pop() for i in range(4): x = dx[i] + cur[0] y = dy[i] + cur[1] if not (0 <= x < N and 0 <= y < M): continue if (x, y) in seen: continue if graph[x][y] == 0: continue st.append([x, y]) seen.add((x, y)) if (cur[0], cur[1]) in seen: continue else: seen.add((cur[0], cur[1])) cnt +=1 print(cnt)값이 처음 구현 햇을때 제대로 안나오길래원래는 cur를 for i in range(4) 위에서 seen에 찍어줬었는데 -> 실패그래서 cur를 방점을 찍어주듯이 주변을 다 돌고 자신을 seen에 찍게 했더니 통과가 되서혹시 코드에 조언해주실 수 있는지 질문드립니다!
-
해결됨Flutter로 웹 서비스 개발하기 (1) - Responsive Web
seo 강의
안녕하세요seo 강의가 연기된 것으로 알고 있는데요.대략 언제쯤 나올 수 있는지 알 수 있을까요???
-
해결됨스프링 핵심 원리 - 기본편
discountPolicy 클래스에 대해서 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]할인 정책에 클래스 에 대해서 궁금증이 생겨서 질문을 드립니다.동영상에서 영한님은 인터페이스를 통해서 fix, rate를 통해서 할인율을 분리 하는 것을 알 수 있었습니다.여기서 질문이 생깁니다.전에 중급1편에서 enum을(회원 등급을 만들 때 이넘이 생각나서 pdf를 찾아 보았습니다.)배울 때 할인율 넣은 게 있더라고요.(pdf 파일이 최신 버전이 아닐 수 있음)이넘에 할인율 을 넣기, 아니면 인터페이스를 통해 할인율 넣는 거에 따라 코드가 많이 바뀔 것 같은데요.이런 경우 어떤 게 나은지 알려 주실 수 있으신가요?답변 부탁 드립니다. 수정1 : "이런 경우"가 2개가 있어서 한개 로 수정.
-
미해결2시간으로 끝내는 코루틴
코루틴과 가상 스레드의 차이가 궁금합니다.
안녕하세요. 좋은 강의 감사드립니다.코루틴에 대한 설명을 듣고 보니,자바 21에 등장한 Virtual Thread와 그 개념이 매우 비슷하다고 생각이 들었습니다.코루틴을 실행시키는 스레드는 어찌보면 Virtual Thread 의 carrier thread로 생각할 수 있고,코루틴 자체를 virtual thread 라고 생각해보면,결국 두 개념이 용어만 다를 뿐 결과적으로는 동일한 기능(?)을 수행하는 것으로 보입니다.제가 궁금한 것은 자바에서 Virtual Thread로 작성된 코드가 100퍼센트 코틀린 - 코루틴으로 변환 가능한지,그리고 그 역도 성립하는 것인지 궁금합니다.감사합니다.
-
미해결
모르다가 막히면 질문하면 답변을 잘받을수 있는지요
안녕하세요. 저는 파이썬 백준 알고리즘을 오래 준비했는데 자료구조에서 막혀서 이강의를 구매하게 되있는데요. 모르다가 막히면 질문하면 답변을 잘받을수 있는지, 또 글로 답변이 부족시 줌링크로 설명을 들을수있는지요
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.
오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요. 답으로 안될때는 줌으로도 알려주시면 감사하겠습니다!!! 좀 절실해서요
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
테스트 간헐적 실패에서 대해서 다루나요?
안녕하세요섹션5 코드 다듬기까지 들은 시점에서 테스트 코드를 여러번 실행했을때 간헐적으로 실패를 경험합니다혹시 해당 내용 수정하는 부분이 끝까지 들으면 나오나요아래 에러내용 삽입했습니다. Failed to resolve parameter [com.clean.splearn.application.provided.MemberFinder memberFinder] in constructor [com.clean.splearn.application.provided.MemberFinderTest(com.clean.splearn.application.provided.MemberFinder,com.clean.splearn.application.provided.MemberRegister,jakarta.persistence.EntityManager)]: Failed to load ApplicationContext for [WebMergedContextConfiguration@350ec690 testClass = com.clean.splearn.application.provided.MemberFinderTest, locations = [], classes = [com.clean.splearn.SplearnApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OnFailureConditionReportContextCustomizerFactory$OnFailureConditionReportContextCustomizer@476fe690, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@6dd1c3ed, [ImportsContextCustomizer@49cb1baf key = [com.clean.splearn.SplearnTestConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@7fdab70c, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@a451491, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2aff9dff, org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory$DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@15639440, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@cbfbc3c], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter [com.clean.splearn.application.provided.MemberFinder memberFinder] in constructor [com.clean.splearn.application.provided.MemberFinderTest(com.clean.splearn.application.provided.MemberFinder,com.clean.splearn.application.provided.MemberRegister,jakarta.persistence.EntityManager)]: Failed to load ApplicationContext for [WebMergedContextConfiguration@350ec690 testClass = com.clean.splearn.application.provided.MemberFinderTest, locations = [], classes = [com.clean.splearn.SplearnApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OnFailureConditionReportContextCustomizerFactory$OnFailureConditionReportContextCustomizer@476fe690, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@6dd1c3ed, [ImportsContextCustomizer@49cb1baf key = [com.clean.splearn.SplearnTestConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@7fdab70c, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@a451491, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2aff9dff, org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory$DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@15639440, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@cbfbc3c], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at java.base/java.util.Optional.orElseGet(Optional.java:364) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@350ec690 testClass = com.clean.splearn.application.provided.MemberFinderTest, locations = [], classes = [com.clean.splearn.SplearnApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OnFailureConditionReportContextCustomizerFactory$OnFailureConditionReportContextCustomizer@476fe690, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@6dd1c3ed, [ImportsContextCustomizer@49cb1baf key = [com.clean.splearn.SplearnTestConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@7fdab70c, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@a451491, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2aff9dff, org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory$DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@15639440, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@cbfbc3c], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) at org.springframework.test.context.junit.jupiter.SpringExtension.getApplicationContext(SpringExtension.java:351) at org.springframework.test.context.junit.jupiter.SpringExtension.resolveParameter(SpringExtension.java:337) ... 3 more
-
미해결Git & GitHub, 원리부터 차근차근 - 근본깃 [기초편]
git branch 결과
안녕하세요, git branch 결과에 대해 궁금한 점이 있어 질문을 남깁니다. git branch를 한 제 결과는 강사님과는 다르게 main 대신 master로 나옵니다.현재는 기본 세팅값이 main 브랜치가 아닌 master 브랜치인 것인지 궁금합니다. 감사합니다.
-
미해결AI 시대, 이제 현업이 개발한다! Cursor와 ChatGPT로 시작하는 바이브코딩
실습2 fastapi 생성시 오류(supabase 누락)
두번째 과정을 따라하는데 강의처럼 진행이 되지 않아서 몇번 다시 해보면서 저의 경우, 도움이 되실까 적어봅니다.오류가 접속이었는데, url이나 인증키부분 동일하게 넣었는데 계속 안되더라고요. 그래서 강의자료의 소스나 supabase의 연결정보를 보니 예시가 createClient(SUPABSE_URL, 이렇게 되어 있는데, 저의경우 postgre로 연결이 되었습니다..agent 에 db접속 정보를 아래와 같이 프롬프트 주고 나니 requirements에 supabase가 추가되었고, pip install > run하여 docs가 호출되었습니다.. @database.py 접속방식은 틀렸어요. SUPABASE_URL = os.getenv('SUPABASE_URL')SUPABASE_KEY = os.getenv('SUPABASE_KEY')if not SUPABASE_URL or not SUPABASE_KEY: raise ValueError("Supabase credentials not found in environment variables")supabase = create_client(SUPABASE_URL, SUPABASE_KEY)이런 형태로 해주세요.
-
미해결타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
여러 단어 선택해서 한번에 수정하는 법!
안녕하세요.이번 영상 4:33쯤에서 커서를 여러군데에 만들고 수정하는 부분이 나오는데 어떻게 하신건지 궁금해요! 그리고 단어를 한번에 수정하더라도 원래 소문자였던 부분은 소문자, 원래 대문자였던 부분은 대문자로 처리되던데 이 부분도 궁금해요!
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
JPA Entity Class 와 Domain Model Entity Class 를 분리해야 하는가? 에 대한 추가 질문
안녕하세요. 토비님!먼저 제가 정말 오랜 기간 고민해온 주제에 대해서 이렇게 강의를 내주셔서 너무 감사드립니다!!특히 강의에서 여러 차례에 걸쳐서 깊게 다룬, "JPA Entity Class 와 Domain Model Entity Class 를 분리해야 하는가?" 에 대한 토비님의 의견이 너무 공감되고 유익했습니다! 감사합니다!그리고 이에 대해서 두 가지 질문이 있습니다.첫 번째는,저는 사실 지난 3년 간 스타트업에서 Domain Entity 와 JPA Entity 를 분리해서 사용해왔습니다.그런데 강의에서 다뤄주신 내용이 제가 겪으며 갖게 된 생각과는 결이 조금 다르다고 느껴서 이렇게 질문을 드리게 되었습니다.제가 느꼈던 "Domain Entity 와 JPA Entity 를 분리해서 사용했을 때의 장단점"은 이랬습니다.장점 1. 도메인 모델의 수정이 DB 데이터 마이그레이션을 꼭 강제하는 게 아니라서, 도메인 모델 수정이 매우 자유롭습니다.상황에 따라 의도적으로 JPA Entity 클래스와 도메인 모델 클래스를 다른 모양으로 만들어두고 유지할 수 있습니다.(ex. User, UserDetail 이 쪼개져 있었는데, 어떠한 의사결정으로 인해 User 하나로 합쳐서 관리하는게 맞다는 판단이 든 경우, UserEntity, UserDetailEntity 는 놔둔 채로 User 만 합치는 게 가능.)장점 2. 도메인 모델들을 완전히 정규화된 구조로 가져갈 수 있습니다. 회사에서 비즈니스가 발전하다보면 종종 어쩔 수 없이 테이블에 성능을 위한 반정규화 필드나 soft delete 용 deleted_at 필드 등을 넣게 됩니다. 하지만 사실 이런 필드들은 순수 비즈니스 로직을 기술하는데에는 방해가 될 뿐인, 너무 Technical 한 부분들입니다. 이러한 반정규화 or 기능 필드들을 도메인 모델에는 넣지 않고 JPA Entity 에만 넣어서 어댑터에서 처리하면, 도메인 모델 내에서는 항상 순수 비즈니스 로직만을 기술할 수 있게됩니다.단점 1. JPA 의 lazy loading 을 활용할 수 없습니다. 항상 도메인 모델 객체는 완전한 상태로만 존재합니다. 그래서 성능 문제로 CQRS 패턴이 강제됩니다. 특히 저는 GraphQL 을 사용중이라 더욱 더 CQRS 가 필요했습니다.단점 2. Repository 의 save(= upsert) 로직을 직접 구현해야 합니다. 특히 복잡한 비즈니스의 핵심 도메인 모델들은 관계된 테이블도 많아가지고 이 save 구현이 엄청나게 길어집니다. 저는 이 save 로직을 직접 구현하고 관리할 때 회의감이 가장 많이 들었습니다. Spring Data JPA 가 그 동안 얼마나 압도적인 생산성을 제공해주고 있었는지도 느끼게 됐습니다.저는 스타트업에서 일하고 있다보니 특히 생산성을 중요하게 생각합니다.그런 점에서도 위의 장점들과 단점들이 모두 너무 치명적으로 느껴졌습니다.그래서 이 관점들에 대한 토비님의 의견과 토비님이 제 상황이시라면 어떤 선택을 하셨을지가 너무너무 궁금합니다. (참고로 저는 Kotlin Springboot + Spring Data JPA + Kotlin JDSL + GraphQL-Kotlin(code first)을 사용하고 있습니다.)두 번째는,사실 저는 Kotlin Springboot 를 사용중인데, 코틀린 언어와 JPA 가 너무 안 어울린다는 생각을 종종 합니다.예를 들면, DB table 에 정의된 column default 값을 쓰려면 JPA Entity 의 해당 필드에 null 을 넣어서 보내야하는데, 보통 테이블 컬럼에 default 를 쓰는 경우는 대부분 해당 컬럼이 not null 타입입니다. 그래서 당연히 JPA Entity 에도 필드 타입은 not null 로 하고 싶어집니다.물론 @Column(insertable=false)를 사용하긴 하지만, 결국 그럼 이 JPA Entity 객체를 생성할 때 해당 필드에 실제로 저장되지도 않을 값을 거짓으로 넣어야 하는 상황이 생깁니다.그래서 조금 더 Kotlin 에 잘 맞는 Exposed 를 고려하자니, 도메인 모델 클래스와 JPA Entity 클래스 분리가 강제되는 느낌이고, 이게 과연 JPA 의 생산성을 따라올 수 있을까? 올바른 선택이 맞을까? 하는 의문이 듭니다.그래서 궁금한 점은,혹시 토비님이 추천하시는 좀 더 Kotlin 언어에 잘 맞고 Kotlin Springboot 를 생산적으로 사용할 수 있는 방법이 있을까요?
-
미해결[Rookiss University] Haker님의 UE5 소스코드 분석 시리즈 #1 (게임 프레임워크)
AActor를 APhysicsVolume으로 Cast가 되는 이유
안녕하세요!아래 코드는 UPrimitiveComponent의 UpdatePhysicsVolume 함수인데, 컴포넌트의 owner인 액터를 가져와서 그대로 Cast<APhysicsVolume>을 했는데, 액터가 캐릭터일 수도 있을 텐데 이게 어떻게 가능한 것인지 모르겠습니다... 감사합니다// haker: just get the owner Actor and compare Physics Volume's priority APhysicsVolume* V = Cast<APhysicsVolume>(OtherComponent->GetOwner()); if (V && V->Priority > BestPriority) { if (V->IsOverlapInVolume(*this)) { BestPriority = V->Priority; BestVolume = V; } }
-
미해결코딩 몰라도 OK! CursorAI로 시작하는 개발 생활 (웹/초급)
뽀모도로 insert 버튼이 안나오고 에러가 뜹니다
뽀모도로 이제 막 시작했는데, ctrl + j, ctrl+k 인가 눌러서 말씀하신 명령어 입력했더니 화살표 처럼 나옵니다.insert 라는게 안떠서 그냥 엔터 눌렀더니 아래 빨간 글자로 막 오류가 뜨네요 ㅠㅠ어떻게 해야 제대로 설치가 될까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
user-loanHistory 폴더 구조 질문
안녕하세요!@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List<UserLoanHistory> userLoanHistories = new ArrayList<>(); 이 코드를 봤을 때 User와 UserLoanHistory는 강한 연결관계를 가지고 있는 것 같습니다(이를 같은 aggregate라고 하는 것 맞나요?). 그래서 폴더 구조를 user 밑에 loanHistory를 넣으신 것 같은데, 일반적으로 이런식으로 폴더 구조를 잡나요? 아니면 domain 폴더 아래에 user와 같은 레벨로 loanHistory를 만들고, 대출 기능도 BookService에서 구현하는 게 아니라 UserLoanHistory용 컨트롤러/서비스/레포지토리를 따로 만들어 구현해도 되나요?
-
미해결코딩 몰라도 OK! CursorAI로 시작하는 개발 생활 (웹/초급)
node.js 설치 링크가 안열립니다
실습 첫강의 수업노트에 링크 눌렀는데1번 사진처럼 존재하지 않는 사이트라고 뜨네요ㅠㅠ링크 수정 및 전달 부탁드립니다! ㅠㅠ얼른 만들어보고싶은데 진행을 못 하고 있습니다! 답변 기다리겠습니다. 감사합니다:)