묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
필드 주입 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 필드 주입에서 제가 이해한 바로는 스프링 컨테이너가 만들어지지 않는 경우는 의존성 주입이 되지 않아서 변수에 값이 할당되지 않기 때문에 순수한 자바 코드로는 테스트가 어렵다라고 이해하였는데 혹시 틀린 부분이 있을까요?
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
시간복잡도 계산 시 1회 연산당 연산량은 왜 고려하지 않는 건가요?
물론 시간복잡도 측정 방식 중 대표적인 빅오 표기법 자체가 n이 점점 커져서 무한대로 커지는 걸 가정하니까 1회 연산량이 몇 배 차이 난다 해도 aN+b에서 a나 다름 없으므로 제거하는 것 같긴 합니다. 하지만 같은 O(n)이면 n이 절반만 줄어도 (n이 무한히 커진다고 가정할 때) 그 효과가 무시할 만한 수치가 아닐 것 같아서 여쭤 봅니다. (ChatGPT 답변은 뭔가 신통치 않고, 근거자료 달라고 해도 못 가져오길래 질문드립니다.)
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
정적 메서드가 자식 클래스에만 있는 경우
예시 코드에서 static void print()가 부모 클래스에 없고 자식 클래스에만 있다면,하이딩이 일어나지 않고 자식 클래스에 있는 static void print()를 출력하나요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요 질문잇습니다
안녕하세요 dto로 변환할때 컨트롤러나 서비스에서ex)Member member = Member() .name("name") .build(); 해준는 것이 좋을까요생성자 메서드처럼Member 엔티티에서@Builderpublic Member(String name) {this.name = name;}생성해서 사용하는 것중에 어떤방법이 좋은방법인지 궁금합니다감사합니다
-
미해결
안드로이드 스튜디어 메모리 설정
안녕하세요 제가 노트북이 사양이 좋지 않지만 안드로이드 스튜디오를 사용하여 코딩공부를 하려 합니다.현재 노트북이 8기가 메모리는 사용하고 있는데 기본적으로 2기가만을 사용하도록 설정되더라구요. 이걸 4기가로 올리면 큰 문제가 되려나요...?간단한 답변이라도 남겨주시면 감사하겠습니다~~!!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Transactional Ouxbox 질문 있습니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1."Message Relay는 전송이 실패한 이벤트에 대해서만 Outbox Table에서 polling하면된다 "그리고 생성 10초 이후 이벤트를 polling 하는 이유가"중복 이벤트 발송을 방지하기 위해서"라고 말씀하셨는데 그 부분이 잘 이해가 안됩니다. 우선 첫번째로,예를 들어 위와 같은 상황에서1.Article Service는 API 요청을 받으면 2가지 동작을 한다.2.Message Relay로 직접 이벤트를 전달하고, Outbox table에 이베트를 삽입한다. 위와 같이 이해를 했습니다. 그런데 이 2가지 동작 다음에"Message Relay는 전송이 실패한 이벤트에 대해서만 Outbox Table에서 polling해서 중복된 이벤트를 처리하는 일이 없도록 한다"라는 동작을 어떻게 어떤 순서로 수행할 수 있는건가요?? 그리고 여기에 추가로"생성 10초 이후 이벤트를 polling 해서 중복 이벤트 발송을 방지할 수 있다"라는 부분도 어떤 순서로 동작하기에 가능한 일인지 잘 모르겠습니다 제가 헷갈리는 부분은 이벤트를 직접 받기도 하고, 2.위 ppt 설명에서 2개의 애플리케이션이 있다면, 0~1번 샤드와 2~3번 샤드를 각각 polling한다.가 잘 이해가 되질 않습니다.예를 들어 A 애플리케이션이 0~1번 샤드에 할당된 상태B 애플리케이션이 2~3번 샤드에 할당된 상태일때, 만약, A 애플리케이션의 데이터가 유실됐다는 오류가 발생 -> Message Relay는 Outbox table에서 0~1번의 샤드만 polling한다. 이런 식으로 이해하면 옳게 이해한 것이 맞을까요? 매번 질문글에 상세한 답변 감사합니다좋은 하루 되세요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
info.plist 코드 실행 이상
이렇게 코드 실행이 안되는 것 처럼 색이 하나도 없는데 뭐가 문제일까요??.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
강의 외 질문입니다.
제가 현재 NPC가 플레이어가 공격 범위 내에 없으면 쫓아오게 하였습니다. 이때 NPC에서 공격범위의 값을 바꾸고 싶어서 UPROPERTY로 변수를 선언을 하였습니다.커스텀 데코레이터에서 공격범위 값을 가져오기 위해 Interface를 만들어서 캐스팅을 해주었습니다.하지만 플레이를 해보면 Interface가 없다고 나옵니다. 뭐가 잘못된 것일까요..? class LIFEOFLUCK_API IOLNPCInterface { GENERATED_BODY() // Add interface functions to this class. This is the class that will be inherited to implement this interface. public: virtual float AttackRange() = 0; };#include "CoreMinimal.h" #include "Character/OLCharacterBase.h" #include "Interface/OLNPCInterface.h" #include "OLNPCBasic.generated.h" UCLASS() class LIFEOFLUCK_API AOLNPCBasic : public AOLCharacterBase, public IOLNPCInterface { ... protected: virtual float AttackRange() override; UPROPERTY(EditAnywhere, Category = "AttackRange") float AttackRangeValue = 160; // 공격 범위 값 };float AOLNPCBasic::AttackRange() { return AttackRangeValue; }#include "AI/BTDecorator_AttackRange.h" #include "AIController.h" #include "BehaviorTree/BlackboardComponent.h" #include "Interface/OLNPCInterface.h" DEFINE_LOG_CATEGORY(Not); UBTDecorator_AttackRange::UBTDecorator_AttackRange() { } bool UBTDecorator_AttackRange::CalculateRawConditionValue(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) const { Super::CalculateRawConditionValue(OwnerComp, NodeMemory); APawn* NPC = OwnerComp.GetAIOwner()->GetPawn(); if (NPC == nullptr) { UE_LOG(Not, Error, TEXT("No NPC")); return false; } FName PlayerName = TEXT("Target"); APawn* Player = Cast<APawn>(OwnerComp.GetBlackboardComponent()->GetValueAsObject(PlayerName)); // 타겟인 플레이어 가져오기(캐스팅하기) if (Player == nullptr) { UE_LOG(Not, Error, TEXT("No Target")); return false; } IOLNPCInterface* NPCInterface = Cast<IOLNPCInterface>(NPC); // NPC가 인터페이스를 생성한 경우 캐스팅이 됨 if (NPCInterface) { UE_LOG(Not, Error, TEXT("No NPCInterface")); return false; } float Distance = FVector::Dist(NPC->GetActorLocation(), Player->GetActorLocation()); // NPC와 플레이어 사이의 거리 구하기 float AttackRange = NPCInterface->AttackRange(); bool AttackRangeResult = Distance <= AttackRange; UE_LOG(LogTemp, Display, TEXT("Distance: %f"), Distance); UE_LOG(LogTemp, Display, TEXT("AttackRange: %s"), AttackRangeResult ? TEXT("True") : TEXT("False")); return AttackRangeResult; }
-
해결됨Airflow 마스터 클래스
안녕하세요 대학생 질문드립니다
강의를 들으면서 데이터 엔지니어를 준비하고 있는 학부생입니다.취업사이트에 데이터 엔지니어를 찾아보면 대게 경력 위주로 채용을 진행하고 있는데데이터 엔지니어가 신입으로 일을 할 수 있는 방법이 있는 지 ?아니면 신입으로서 바로 데이터 엔지니어로 일하기는 조금 어려운게 현실인지 궁금하여 글 작성합니다.괜찮으시다면 데이터엔지니어 직무 입사자가 이런 경험이 있으면 채용하겠다는 부분이 있는 지 알려주시면 감사하겠습니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
static 메서드 기출문제 질문
안녕하세요. Java의 정적 변수, 정적 메서드(static)강의 중 9분에 나오는 빈칸 채우기 기출 문제에서 질문이 있어서 남깁니다. Test라는 클래스에서 void타입을 리턴하는 static 메서드 main()에서 Test.check(1);을 출력하게 되는데, 이 때 Test는 클래스명이므로, 클래스에서 직접 접근 가능한 메서드이기 때문에 check는 int형 파라미터를 받는 static 메서드인 것으로 보입니다. 혹시, 여기서 앞에 public, private, protected 등을 붙일 경우 오답처리가 되나요?? 아니면, 이런 경우는 명확하게 정답의 글자 수를 알려준다는 등의 방법으로 답이 static이 될 수 밖에 없는 방식으로 문제가 출제되나요? 우선 강의를 다 들은 후에 기출문제를 풀어보려 하니 아직 문제가 나오는 형식을 잘 몰라서 질문을 남깁니다!추가적으로, 9분 14초 정도에 나오는 기출문제에서, 인스턴스 변수인 name에 접근하기 위해서는 (파라미터를 받는 Person 생성자에서, 인스턴스 메서드인 print()에서) this 키워드를 통해 해당 생성자나 메서드 등을 호출한 주체를 찾아야 한다고 배웠었는데, 왜 여기서는 this.name으로 접근하는 것이 아닌 name으로 접근해도 에러가 발생하지 않는 것인가요??
-
미해결비전공자도 합격하는 개발자 이력서/포트폴리오 작성법
이력서에 데모 동영상
이력서에 개발한 어플리케이션 시연 영상 링크를 첨부하면 좋을까요?? 좋은 강의 감사합니다.
-
미해결친절한 블렌더 - [LV.2] 모델링 연습
나뭇가지들이 안 꼬이고 뱅뱅 돌기만 해요
마법봉 24:16여기서 이제 윗면을 선택하면 덩쿨처럼 꼬이기 시작해야 하는데 제꺼는 그냥 뱅뱅 회전하고 꼬이지 않아요..
-
미해결버그헌팅과 시나리오 모의해킹 전문가 되기
인터넷 연결문제
칼리리눅스 ping: connect: Network is unreachablenat 네트워크 설정 다 했는데도 이렇게 뜨네요 정말 모르겠습니다. 할 수 있는건 다 해봤습니다.
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
중복 질문 삭제
비슷한 질문 답변 올라온 게 있네요
-
미해결
[섹션10] 빈 스코프 - request 예제 만들기 : 콘솔창에서 tomcat 포트번호 안보입니다 어떻게 해야할까요
package hello.core; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class CoreApplication { public static void main(String[] args) { SpringApplication.run(CoreApplication.class, args); } }build.gradle에 web 도 추가해줬고, 외부라이브러리에 들어온것도 확인했습니다. 정상실행은 되는데 콘솔창에 tomcat 포트 번호가 왜 안나올까요? 2025-03-11T20:28:43.171+09:00 INFO 31192 --- [ main] hello.core.CoreApplication : Starting CoreApplication using Java 17.0.12 with PID 31192 (C:\Users\user\Desktop\study\core\build\classes\java\main started by user in C:\Users\user\Desktop\study\core)2025-03-11T20:28:43.179+09:00 INFO 31192 --- [ main] hello.core.CoreApplication : No active profile set, falling back to 1 default profile: "default"2025-03-11T20:28:44.874+09:00 WARN 31192 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'memoryMemberRepository' defined in class path resource [hello/core/AutoAppConfig.class]: Cannot register bean definition [Root bean: class=null; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=autoAppConfig; factoryMethodName=memberRepository; initMethodNames=null; destroyMethodNames=[(inferred)]; defined in class path resource [hello/core/AutoAppConfig.class]] for bean 'memoryMemberRepository' since there is already [Generic bean: class=hello.core.member.MemoryMemberRepository; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in file [C:\Users\user\Desktop\study\core\build\classes\java\main\hello\core\member\MemoryMemberRepository.class]] bound.2025-03-11T20:28:44.898+09:00 INFO 31192 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2025-03-11T20:28:44.986+09:00 ERROR 31192 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : ***************************APPLICATION FAILED TO START***************************Description:The bean 'memoryMemberRepository', defined in class path resource [hello/core/AutoAppConfig.class], could not be registered. A bean with that name has already been defined in file [C:\Users\user\Desktop\study\core\build\classes\java\main\hello\core\member\MemoryMemberRepository.class] and overriding is disabled.Action:Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
프로젝트명 변경 또는 이주 시 발생하는 문제를 여쭤보고 싶습니다.
프로젝트명을 변경할 때 겪는 문제들로 인해 삭제하고 다시 생성하느라 시간을 많이 소비하고 있습니다.제가 겪고 있는 문제점들을 짚어보겠습니다! 공식적으로 편리하게 이주 또는 프로젝트명 변경을 할 수 있는 방법을 알고싶습니다.버전은 5.4.4 사용 중입니다. 기존 프로젝트명: ArenaBattle변경한 프로젝트명: BEAD 프로젝트명 변경 이후 기본적으로 진행한 작업들DefaultEngine.ini에 Redirect할 경로들 모두 적은 후 .uasset 데이터들 옮기기소스코드 내 모든 모듈명 교체, .uproject 명세서 내 모듈명 교체, Build.cs 내 모듈명 교체 (버전 확인도 제대로 수행)Saved, Intermmidate, DerivedDataCache, Binaries, 솔루션 삭제 후 generate -> Rebuild에디터 내 Content 폴더 우클릭 > Update Redirector ReferencesC++ 클래스 생성자 내 참조하는 경로 모두 변경한 프로젝트 경로로 설정 & 에디터의 모든 블루프린트 내 Parent 경로 Redirect한 것으로 적용된 것 확인에픽게임즈 라운처 > 언리얼 엔진 > 검증 수행 질문 모음1. Redirect를 시도했는데도 불구하고 "행동 트리"와 "데이터 애셋"의 경우, 참조하는 클래스가 새로운 프로젝트명의 클래스를 찾지 못하는 문제시도한 내용:Redirect 사용 시 Widget Blueprint 등은 Parent 경로는 잘 찾았으나 Behavior Tree 내 클래스 경로와 데이터 애셋의 경로는 제대로 찾지 못해 삭제하고 다시 생성해야 하는 경우가 발생했습니다. (물론, Redirect 작성 이후 .uasset을 옮기고 캐시 삭제 및 generate 수행)// DefaultEngine.ini // [CoreRedirects] +ClassRedirects=(OldName="/Script/ArenaBattle.ABComboActionData", NewName="/Script/BEAD.ABComboActionData") // 애셋 데이터 +ClassRedirects=(OldName="/Script/ArenaBattle.BTService_Detect",NewName="/Script/BEAD.BTService_Detect") // 행동트리 ... 이하 생략 2. Animation Montage의 경우, 정보들은 그대로 잘 옮겨져 Notifies도 제대로 배치되어 있지만삭제하고 다시 설치하지 않으면 C++ 클래스 내 Notify 함수가 호출되지 않는 현상아래 AM_ComboAttack 몽타주는 Redirect를 사용하여 정상적으로 열리고, 모든 내용들이 잘 배치가 되어 있으나아래 AttackHitCheck 노티파이를 삭제하고 다시 배치하지 않으면 C++ Notify 함수가 재생되지 않는 현상이 발생합니다. 3. 기존 모듈명은 이미 수정하여 어느 곳에도 존재하지 않는데 자꾸 VerifyImport: Failed to find script package for import object 'Package/Script/ArenaBattle' 경고가 뜨는 현상모든 소스코드와 명세서, 그리고 블루프린트 내에도 이전 모듈명과 관련된 내용이 없는데도 엔진을 실행하면 아래 경고문이 나옵니다. (당연히 캐시 삭제와 generate, rebuild, update redirector references 수행했습니다.)물론, BP_ABGameMode.uasset을 다시 지우고 생성하면 해결되겠지만위의 질문들을 포함해서 Redirect를 사용하고 코드를 전부 수정해도 자꾸 적용이 안되는 게 생기고 아래 오류가 생기니 새로 삭제하고 다시 만들어야 하는 번거로움이 있습니다 ㅜ 해결방법을 알고싶습니다.LogLinker: Warning: [AssetLog] D:\4.Unreal\BEAD\Content\ArenaBattle\Blueprint\BP_ABGameMode.uasset: VerifyImport: Failed to find script package for import object 'Package / Script / ArenaBattle'
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
버튼 미작동
우선 강의를 들어주셔서 감사합니다. 강의 들으시면서 궁금하신 부분을 남겨주세요.배리어블 인터페이스와 친해지기 편의 6:07분에서 '리네임' 버튼을 눌러도 이름 변경이 되지 않아요 이유가 뭘까요?이미지: 제 컴퓨터 상황 회사 일 관계로 빠른 답변이 어려울 수 있으며, 최대 3일 이내에 답변드리도록 하겠습니다. 이해를 돕기 위해서 스크린샷 이미지, 피그마 파일 링크를 반드시 첨부해주세요. 마지막으로 먼저 유사한 질문이 있는지 한번 찾아보시는 걸 권장 드립니다. 인프런 서비스 운영 관련해서는 1:1 문의하기로 인프런 쪽으로 연락 주시기 바랍니다.
-
미해결스프링 핵심 원리 - 기본편
request 스코프 예제 만들기 빌드 오류
package hello.core; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class CoreApplication { public static void main(String[] args) { SpringApplication.run(CoreApplication.class, args); } }Build.gradle에 web 라이브러리를 추가했습니다.Gradle로 빌드했습니다 왜 이런 오류가 날까요? Execution failed for task ':CoreApplication.main()'.> Process 'command 'C:\Program Files\Java\jdk-17\bin\java.exe'' finished with non-zero exit value 1* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.12.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 18s3 actionable tasks: 1 executed, 2 up-to-date 2. 빌드를 IntelliJ로 바꾸자니 tomcat 8080이 안뜹니다ㅜ
-
해결됨포토샵 마스터 클래스 (만들면서 배우는 포토샵 입문)
브러시 커서 모양 질문입니다!
저도 선생님처럼 브러시 커서 원 안에 점이 있었으면 좋겠는데 도무지 찾을수가없네요 ㅠㅠ 혹시 알려주실수있으신가요?
-
미해결비전공자도 합격하는 개발자 이력서/포트폴리오 작성법
안녕하세요! 조언해주신대로 수정하고 있습니다
이때까지 3페이지 이내로 줄여야 한다는 생각으로 꾹꾹 눌러 담아놨는데..재성님이 조언해주신대로 구체화 시키면서 분량 limit을 풀어버리니, 진짜 내세우고 싶은 기술들만 썼는데도 구체적으로 풀어쓰니 이력서가 거의 7 8 페이지까지 되어버리네요 ㅎㅎ 분량은 최대 어디까지 작성하면 좋을까요!? 너무 많이 써도 5분 법칙을 어길 수 있을 거 같아서요 장시간 진행했고 성과가 있는 아래 세 개 프로젝트만 쓰고 있는데.. 한 개를 버려야 하는지도 고민입니다!https://github.com/ForPawTeam/ForPaw_BEhttps://github.com/LlmnTeam/LLMN-Docshttps://github.com/hoyaii/Tily_BE