널널한 개발자님. 항상 잘 듣고 있습니다! 좋은 강의 감사합니다. 복습을 하던 도중 잘 이해가 안되는 부분이 있어 질문드립니다. 인스턴스의 메타데이터라 함은 강의 내용 중 해시코드, 오브젝트 나이, 락플래그를 말하는 것 같습니다. 강의 4분경에서 이런 메타데이터가 Klass word에서 참조하는 Metaspace에 저장되어 있다고 하셨습니다. 그리고 강의 6분경 핫스팟 VM 객체 Lock flag슬라이드 보거나, 실제 예제를 실행시켜 나온 결과(23:35)를 보면 Markword에도 해쉬파일과 락플래그가 있는 것으로 보입니다. Metaspace, Markword 둘 다 같은 인스턴스의 해시코드값(+락플래그)을 가지는 건가요? 그러면 Metaspace는 생성된 인스턴스 모두의 메타데이터를 가지는건가요? 새벽에 보느라 머리가 잘 안돌아가네요.. 긴 글 읽어주셔서 감사합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이렇게 설정하고 연결을 눌러도 연결이 되지 않는 이유를 모르겠습니다.! 이런 오류가 뜨네요. ㅠ 윈도우 사용자입니다! 그리고 실행 자체를 cmd에서 명령어 입력 말고 설치하니 생긴 이 파일로 실행을 해도되는건가요?
안녕하세요. 강의 잘 듣고 있습니다. 제가 이해한바로는 LIMIT, OFFSET은 앞에서부터 data를 순차적으로 읽기때문에 성능 상 좋지 않고 이를 개선하기 위해 범위 기반 방식을 사용한다고 이해하였습니다. 범위 기반 방식은 직접 ID 값을 지정 해주는 방식이며, id 기반으로 5000단위로 조회한다고 가정하면 1회차: select * from users where id > 0 AND id <= 5000 2회차: select * from users where id > 5000 AND id <= 1000 위와 같이 구현될 것으로 예상됩니다. 관련해서 궁금한 점이 생겼는데요. 결국 두번째 쿼리를 실행 시 5000보다 큰 id를 찾는 과정에 시간이 소요될 것으로 예상되는데요, id가 index로 지정되어있어 LIMIT, OFFSET 방식보다 빠르게 찾을 수 있는 것인가요?? LIMIT, OFFSET 방식 사용 시 어떤 컬럼이 index로 지정되어있는지와 상관없이 무조건 순차 탐색이 일어나는 것이고 범위 기반으로 조회 시 index로 서치하기때문에 더 빠르게 시작점을 탐색할 수 있다고 이해하면 될까요?
안녕하세요. 앞서 전파기본 강의와 전파예제 강의를 듣고나서 이해가 되지않는 부분이 몇가지 있어서 질문드립니다. 1. 강의 자료중에, 트랜잭션매니저에 커밋하는것이 논리적인 커밋이라면, 실제커넥션에 커밋하는것을 물리 커밋이라고 할수있다 = 내부트랜잭션인 txManager.commit(inner)을 하는것이 논리적인 커밋이고, 외부트랜잭션인 txManager.commit(outer)을 하는것이 물리커밋이다. = 트랜잭션 매니저를 통해 txManager.commit(inner)를 하는것이 논리적인 커밋이고, 트랜잭션 매니저를 통해 txManager.commit(outer)를 하는것이 물리커밋이다. 이렇게 생각하는게 맞을까요?? 2. 1번 질문에 더해서, 트랜잭션 매니저를 통해서 txManager.commit()을 하는것이 논리적인 커밋이라면, 물리적인 커밋은 코드상 어떤것인가요? 외부트랜잭션도 txManager.commit()을 통해 커밋하는거같은데, 이렇게 외부트랜잭션을 커밋하는것이 논리적인 커밋임과 동시에 물리커밋인것인가요?? 3. 외부트랜잭션도 논리트랜잭션이고 내부트랜잭션도 논리트랜잭션인가요? 그래서 이 두가지를 묶어서 물리트랜잭션이라고 하는것인가요??
Path(), Query(), Form() 모두 Depends에 사용이 가능할까요? 물론 BaseModel에는 인자와 동일한 이름의 클래스 변수가 정의되어 있다는 가정에서 의미합니다. form의 일부 인자들만으로 구성되게 사용이 가능할까요? 함수의 입력 인자로 정의된 값이, Depends에서도 중복으로 사용이 가능한가요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
김치,라면,삼겹살 등등의 값을 바꾼뒤에 filter 를 하면 가끔씩 필터가 안되는 아이들이 보이는 문제가 왜 발생되는지 궁금합니다! 강의 영상에서도 보였구요, 두 번째로는, toggleHasBought() 로 값을 변경하면 화면이 다시 그려지는데 왜 필터는 적용되지 않는지 이유도 알고싶습니다!
강의 그대로 따라하며 모든 코드를 입력했으나, 강의에서처럼 System.out.println("new member = " + member.getName()); System.out.println("find Member = " + findMember.getName()); 이를 출력했을 때 값이 정상적으로 안나옵니다. 찾아보니 gradle 파일 내부 문제가 있는듯 한데, 뭐가 문제인지 모르겠습니다. 코드 전부를 첨부합니다.. 도와주세요...! plugins { id 'java' id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.6' } group = 'hello' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation ('org.springframework.boot:spring-boot-starter-test'){ exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; public class MemberApp { public static void main(String[] args) { MemberService memberService = new MemberServiceImpl(); Member member = new Member(1L, "memberA", Grade.VIP); memberService.join(member); Member findMember = memberService.findMember(1L); System.out.println("new member = " + member.getName()); System.out.println("find Member = " + findMember.getName()); } }
안녕하세요 🙂 공유해주신 코드파일 중 최종 PRJ코드 질문 드립니다 PRJ-HW-matbi_dma_ip- matbi_dma_wrapper 여기서 파라미터 설정에 의문이 있습니다! parameter integer C_M00_AXI_DATA_WIDTH = 32 로 설정하는 이유가 궁금합니다~! (제 생각에는 64일 것 같았습니다!)
plugins { id 'org.springframework.boot' version '3.0.2' id 'io.spring.dependency-management' version '1.1.0' id 'java' } group = 'hello' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //테스트에서 lombok 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' } tasks.named('test') { useJUnitPlatform() } 위와 같이 build.gradle을 구성하고 강의대로 따라가고 있는데 여기에 있는 외부라이브러리 (롬복,테스트라이브러리)가 인식이 되지 않고 있습니다. 롬복까지는 수동으로 다운로드해서 진행하고 있는데 계속 이러면 부트를 사용하는 의미가 없는것 같아서 문제를 해결하고 싶습니다!
해당 강의 다른분의 질문과 유사할 것 같은데요... 배열 요소의 타입 추출하기 part에서 type PostList = { title: string; content: string; author: { id: number; name: string; age: number; }; }[]; 위와 같이 배열 안에 들어가는 타입이 정해져있는 것이 아니라 string도 들어가고, 객체도 들어가는데 그 객체 안에 들어가는 프로퍼티도 다양하다면, 강의에서 언급해주신 인덱스드 액세스 타입으로 타입을 추출하는 것은 부적절한가요?
안녕하세요 교수님. 델리게이트를 리스트에 담아주기 위해 구조체를 이용해서 감싸주었는데, 델리게이트만으로는 리스트에 담는것이 어려운 것인지 궁금해 질문남깁니다. 예를 들어, 래퍼 없이 직접 TakeItemActions을 TArray<FOnTakeItemDelegate>로 정의하고 TakeItemActions.Add(FOnTakeItemDelegate::CreateUObject(this, &AABCharacterBase::EquipWeapon)); TakeItemActions.Add(FOnTakeItemDelegate::CreateUObject(this, &AABCharacterBase::DrinkPotion)); TakeItemActions.Add(FOnTakeItemDelegate::CreateUObject(this, &AABCharacterBase::ReadScroll)); void AABCharacterBase::TakeItem(UABItemData* InItemData) { if (InItemData) { TakeItemActions[(uint8)InItemData->Type].ExecuteIfBound(InItemData); } } 와 같이 래퍼 없이 사용하는 것입니다. 이에는 문제가 없을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 8장 빈 생명주기 콜백 의 빈 등록 초기화, 소멸 메서드 관련 질문입니다. 마지막 종료 메서드 추론 부분에서 "추론 기능을 사용하기 싫으면 destroyMethod="" 처럼 빈 공백을 지정하면 된다"라고 말씀 하셨습니다. 그런데 추론 기능을 사용하기 싫으면 destroyMethod에 close나 shutdown이 아닌 내가 지정한 메소드 이름을 입력해야 하는 거 아닌가요? 빈 공백을 지정하면 소멸 메서드를 아예 지정하지 않아서 실행도 되지 않는 것 같은데 저게 무슨 말인지 이해가 안갑니다. 답변 미리 감사합니다. (destroyMethod의 디폴트 값이 close와 shutdown이어서 @Bean에 destroyMethod를 적지 않으면 자동으로 close와 shutdown 메소드를 실행하는 것까진 이해했습니다.)