=================================== [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요, 수업을 열심히 따라가며 코드를 작성해보면서 궁금한 점이 생겨 이렇게 질문드립니다. 앞서 제네릭 부분에서 타입이레이져 방식 때문에 제네릭 타입정보는 컴파일 이후 모두 사라지고 타입변수의 상한타입으로 바뀐다고 이해하였습니다. 그래서 위 처럼 new 로 직접 타입변수 T의 인스턴스를 생성하거나 instanceof T 구문을 쓰지 못한다고 하셨습니다. 컴파일 이후에는 T에 대한 정보가 없으니까요. 그런데 리스트에서 제네릭을 사용하는 부분을 보면 LinkedList<T>처럼 제네릭 타입을 활용해 클래스를 정의하였고 내부에 new Node<T>(); 와 같은 부분이 있어 위의 언급한 내용과 상충하는 것 같아 이 경우는 왜 가능한지 의문이었습니다. 구글에서 찾기 쉽지않아 직접 T를 생성하는 것(new T(); )과 Node<T>를 생성하는 것(new Node<T>(e);)의 차이를 혼자 고민해보았습니다. T를 생성하는 것은 힙영역에 T 인스턴스를 생성하는 것인데 컴파일 이후 T에 대한 정보가 전혀 없어 T 직접생성이 불가능하지만, Node<T>의 경우 Node의 인스턴스를 생성할 때 T타입인 item이 있지만 이때 T타입의 객체를 생성하는 것이 아니라 언젠가 생성될 T객체의 참조값을 담을 변수만 선언하는 것일 뿐이고 이는 컴파일 이후 T의 정보가 없어 Object 타입으로 변수 item이 선언되더라도 후에 T타입의 객체(의 참조값)가 item에 할당될때 저절로 업캐스팅이 되어 문제없이 item변수를 사용할 수 있다고 결론내렸습니다. 이렇게 생각하면 문제없는걸까요?
예를들어 TSoftObjectPtr로 된 TSoftObjectPtr<class USkeletalMeshComponent> 타입의 포인터는 UPROPERTY() 로 설정하게 될 경우 TObjectPtr 과 마찬가지로 GC의 자동 수거대상에서 제외되는 않고 명시적으로 참조를 해제해야만 GC가 수거하게 되나요? 그리고 TObjectPtr 과 TSoftObjectPtr 전부 UPROPERTY()로 설정하지 않을 경우, GC 시스템에 의해 자동으로 메모리가 회수당하게 되나요?
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 선생님. 실습 과정중 mysql과 연결이 잘 안 되는 것 같아 질문드립니다 처음에 있었던 에러였는데요 화면 접속 자체는 잘 되는데 이름과 나이를 저장하면 2024-11-28 16:57:49.886 ERROR 13764 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.group .libraryapp.dto.user.request.UserCreateRequest]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.group.libraryapp.dto.user.request.UserCreateRequest (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 2]] with root cause com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.group.libraryapp.dto.user.request.UserCreateRequest (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 2] 이런 오류가 떴습니다. 검색해보니 UserCreateRequest에 기본 생성자를 만들라고 해서 만든 후 실행하니 이 오류는 안뜨긴합니다. 인자 있는 생성자가 있었는데 왜 기본 생성자를 만들어야하는건가요? 지금 제 코드가 꼬여서 그런걸까요? 또한 에러 해결 방법으로 애노테이션 누락 : Jackson 라이브러리에서 객체를 직렬화/역직렬화할 때 필요한 애노테이션이 누락되었을 수 있습니다. 예를 들어, 생성자에 @JsonCreator 와 각 필드에 @JsonProperty 를 추가해 보세요. 이런 방법을 추천하는데 이건 무엇인가요?? 위 에러 고친 이후에는 SQL 문법 오류가 발생하는데요 선생님과 똑같이 문법을 사용했는데 왜 오류가 생기는지 모르겠습니다.. sql에 테이블 자체는 잘 생성되어있는 상태입니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 회원 리포지토리 테스트 케이스 작성중 4:43 test 결과 저만 -1 나오는게 비정상인가요? package hello.hello_spring.repository; import hello.hello_spring.domain.Member; import org.junit.jupiter.api.Test; class MemoryMemberRepositoryTest { MemberRepository repository = new MemoryMemberRepository(); @Test public void save() { Member member = new Member(); member.setName("spring"); repository.save(member); //repository.findById(member.getId()); Member result = repository.findById(member.getId()).get(); System.out.println("result = " + (result == member)); } }
별건 아니고 단순한 궁금증이 생겨서 질문 남깁니다. 강의에서는 플레이어의 입력을 받고 움직임을 처리하는 것을 ABCharacterPlayer 클래스에서 처리하였는데요. 그렇다면 Controller는 어떨 때 사용하는건가요? 제가 강의를 봤을 때 움직임 등을 PlayerController에서 처리한다고 했는데 Character 클래스에서 처리해서 질문 남깁니다. 강의를 위해 카메라와 움직임을 하나의 클래스로 보여주신 것인지 아니면 원래 이렇게 하는지 궁금하네요
강의 채점 사이트 안녕하세요 강사님 기존 강의인 "자바 알고리즘 문제풀이 입문 :코딩테스트 대비"를 너무 잘 듣고 공부해서 강사님의 다음 강의를 의심없이 샀는데 채점 사이트가 없어서 너무 불편합니다... 왜 기존에는 있었는데 이번 강의에는 없는걸까요... 하나 똑같이 만들어주시면 안되나요? 이미 강의자료도 의심없이 받았다가 환불도 안되고.. 이전 강의엔 채점 사이트가 있어서... 채점 사이트가 없을 줄은 꿈에도 몰랐네요 후속강의임에도 불구하고 더 불편해진 것 같아서 문의드립니다.
의문점이있습니다. public interface UsernameOnly { String getUsername(); } 이런식으로 사용자 이름만 가져올수있게 하는건 알겠는데 그냥 레파지토리에 @Query("select m.userName from Member m ") 그냥 이런식으로 하면되는거아닌가요?굳이 projection안쓰고?햇갈립니다
안녕하세요 강사님 강의 잘 보고 있습니다. 올려주신 최종 소스코드 파일을 보면서 강의를 듣고싶은데 올려주신 프로젝트의 솔루션 파일이 계속 빌드에 실패합니다. 파일을 받고 바로 빌드하면 문제가 발생합니다. D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\Shared\ EpicGames.Build \ EpicGames.Build .csproj : warning NU1904: 'System.Drawing.Common' 4.7.0 패키지에 알려진 위험 심각도 취약성인 https://github.com/advisories/GHSA-rxg9-xrhp-64gj이(가) 있습니다. [D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj] D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj : warning NU1904: 'System.Drawing.Common' 4.7.0 패키지에 알려진 위험 심각도 취약성인 https://github.com/advisories/GHSA-rxg9-xrhp-64gj이(가) 있습니다. D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj : warning NU1903: 'System.Text.Json' 6.0.0 패키지에 알려진 높은 심각도 취약성인 https://github.com/advisories/GHSA-8g4q-xg66-9fp4이(가) 있습니다. D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj(2,3): error MSB4019: 가져온 프로젝트 "D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\Shared\UnrealEngine.csproj.props"을(를) 찾을 수 없습니다. Import 선언 "..\Shared\UnrealEngine.csproj.props"의 식이 올바르고 디스크에 파일이 있는지 확인하세요. 경고 6개, 오류 1개 저렇게 해당 파일이 없다고 컴파일에 실패해서 프로젝트 버전을 5.4로 스위치 해서 빌드해봤는데 HakEditor modifies the values of properties: [ bStrictConformanceMode: False != True ]. This is not allowed, as HakEditor has build products in common with UnrealEditor. Remove the modified setting, change HakEditor to use a unique build environment by setting 'BuildEnvironment = TargetBuildEnvironment.Unique;' in the HakEditorTarget constructor, or set bOverrideBuildEnvironment = true to force this setting on. 이런 오류가 뜹니다. (5.5버전 스위치도 동일하네요..ㅠ) 이외에 프로젝트 빌드를 위해 많은 시간을 할애해봤지만 제가 아직 강의 초반부를 듣고있어서 따로 해주어야 하는걸 안해줘서 그런건지 궁금합니다. 위의 오류에서 수정하라는대로 수정도 해보고 인터넷에 검색도 많이 해봤는데 잘 해결이 되지않아 질문드립니다.
강의를 듣다가 의문이 생겨 글 남깁니다. 분수대를 만드는데 BP와 C++을 이용해서 각각 만들어봤는데 BP를 통해서 만들때는 너무 쉽고 간단하지만 C++을 사용할때는 복잡하고 초기에 해줘야하는 세팅이 너무 많은것 같아서 굳이 왜 C++을 통해서 액터를 만들어야하는가? 라는 의문이 듭니다. 가령 액터를 꾸미는? 작업은 BP로 하고 주요 로직은 C++로 작성하는게 맞지 않나 라는 생각이 드는거죠. 실제 현업에는 어떻게 사용하지는 모르겠지만, 프로그래머가 C++을 통해 맵에 배치할 모든 액터를 작성하지 않을 것 같아서 질문 드립니다. 액터를 만들때에는 왜 C++을 사용해야하는지? 만약 그렇다고 한다면 일련의 노가다와 같은 초기화 작업을 다 해야하는지? 지금까지 강의를 들었을 때 제가 내린 스스로의 해결법?은 C++ A클래스를 만들고 헤더 파일에 UPROPERTY(VisibleAnywhere, BlueprintReadWrite)를 통해 프로퍼티를 열어둔 상태에서 B라는 블루프린트 클래스를 만들어서 A를 상속 받은 후 에디터를 통해 작업하는 것 입니다. 이것도 어떻게 생각하시는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 저와 비슷한 질문을 남긴 사람들의 글을 읽어보았는데, 명확하게 이해가 가질 않아서 질문을 남깁니다. 부모 변수가 자식 인스턴스를 참조하는 상황 Parent poly = new Child(); 이 상황은 Parent를 상속받은 Child라는 객체를 생성하여, 현재 Parent,Child 두 객체가 생성된 상황이며, poly를 부모 변수로 선언하였습니다. 부모는 자식에 대해 알 수 없다라는 논리에 따라 Child라는 객체가 있어도 부모 Parent는 Child에 선언된 메서드와 필드를 모른다는 것이 영한님의 설명인 것 같습니다. 그런데, 오버라이딩을 하게 되더라도 제 생각에는 여전히, Parent는 Child의 메서드와 필드를 모르는 상황은 여전한데, 어떻게 Parent가 Child 메서드가 오버라이딩을 한 상황을 알고, 오버라이딩된 Child 메서드가 우선권을 갖는지 잘 모르겠습니다. 이는 '부모는 자식에 대해 알 수 없다'라는 논리와 맞지 않는 것 같아서 부가적인 설명을 원합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! 혹시 다대다의 경우는 중간테이블을 두어 푸는 것이 실무에서 필수적이라 했는데, 일대 다의 경우에도 비즈니스 로직 분리 : 중간 테이블을 통해 비즈니스 로직(보상 분배, 순위 계산 등)을 별도로 관리함으로써, 엔티티 간의 복잡성을 줄입니다. 데이터의 독립적 관리 : 과거 랭킹 기록, 보상 내역 등 변경하지 않아야 할 데이터를 독립적으로 저장하고 관리할 수 있습니다. 이런 이유로 중간테이블을 두기도 하나요? 예를 들어 사용자와 랭크 관계가 일대 다인 상황에서(사용자는 한 랭크만 참가 가능) 과거 정보들을 저장하기 위해 중간테이블을 두고 거기에 전적 같은 정보를 저장하고자 하는데 이런 경우 일대 다임에도 중간테이블을 놔두어 관리해도 되나요?
Entity들의 id를 따로 Column으로 name을 지정해주지 않아도 괜찮나요?? 연관관계 매핑할 때 예를 들어 MEMBER랑 TEAM을 매핑하면 MEMBER의 FK 이름은 TEAM_ID인데 TEAM의 PK는 ID라서 TEAM의 ID를 TEAM_ID로 바꾸지 않아도 괜찮은건가요??
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 이전에 들었던 실전! JPA1편에서는 https://start.spring.io/ 이곳에서 다운로드 하고 설치했는데 이번 강의에선 왜 따로 소스코드를 주시고 시작했는지 궁금합니다! 단순하게 springBoot를 사용하지 않아서인가요? 아니면 초기 설정이 힘들어서인가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 강의에서 volatile을 적용하지 않은 예제에서 MyTask flag값을 false로 바꾸고 count값을 출력했는데 이때 MyTask Thread의 캐시메모리에있는 값을 메인메모리로 업데이트하고, Main Thread는 메인메모리에있는 count값을 캐시메모리에 동기화해서 갖고온걸까요? 출력할 때 컨텍스트 스위칭이 일어났다고 가정하면, 1_100_000_000이 출력될거라 생각했는데 궁금해서 질문드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 저는 memberForm을 생성해서 뷰로 전송 -> 뷰에서 memberForm을 setter로 채움 -> 채운 memberForm을 post요청에 함께 전송 으로 이해했습니다. 근데 create에서 받은 memberForm하고 createForm에서 받은 memberForm하고 다른 객체로 나옵니다. 어디 부분이 잘못됐는지 알고싶습니다.