Waiting 상태의 쓰레드를 Runnable 상태로 만들기 위해선 두 가지 방법이 있다고 배웠습니다. LockSupport 기능 인터럽트 발생 2번 방법에 대해서 궁금한 것이 있습니다. 결과적으로 인터럽트를 발생시켜 쓰레드를 대기 상태에서 실행 가능한 상태로 전이시킨다는 것인데 인터럽트 상태가 정상(false)이 아닌 상태가 나오게 되는데 그럼 실무에서 1번 방법을 더 많이 사용하나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 섹션4 회원 서비스 테스트 강의 13:13즈음에서 설명하신 내용에 대해 질문 드리려고 합니다. 강사님께서는 MemberService에 있는 memberRepository와 MemberServiceTest에 있는 memberRepository가 서로 다른 객체여서 애매하다고 설명해주셨습니다. 두 클래스 모두 new로 새로 생성해줘서 서로 다른 객체인건 이해가 갑니다. 하지만 Test에서 확인하려는건 작성한 코드가 제대로 돌아가는지 확인하기 위함이므로 서로 다른 객체이긴 하지만 동일한 메서드를 이용하므로 Test차원에서는 상관없다고 생각되어 질문드려봅니다! 감사합니다~
안녕하세요 영한님. 다대다 연관관계를 공부하고 제 프로젝트에 적용하려다가 오류가 발생해서 질문드립니다. Product와 Tag를 다대다로 관계시키기 위해 ProductTag테이블을 만들었습니다. ResponseProduct에 Product를 넣어서 응답으로 보내려 하는데 이렇게 하니 Product->ProductTag->Tag ->ProductTag 이 과정이 무한반복이 일어나고 있습니다. 이것을 어떻게 해결하면 좋을까요? 항상 영상 잘 보고 있습니다. 화이팅 하세요!! public class ResponseProduct { private Product product; private Long categoryId; } @Entity public class Product { @OneToMany(mappedBy = "product", orphanRemoval = true) private List<ProductTag> productTags = new ArrayList<>(); } @Entity public class ProductTag { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id") private Product product; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "tag_id") private Tag tag; } @Entity public class Tag { @OneToMany(mappedBy = "tag", orphanRemoval = true) private List<ProductTag> productTags = new ArrayList<>(); }
안녕하세요, 20달러가 아깝지 않은 gpt활용법 강의중에 질문있습니다.~ 위와같이, 강의내용대로 똑같이 질문을 해봤습니다. 출력된 코드는 아래와 같습니다. import requests from bs4 import BeautifulSoup # Fetch the HTML content url = 'https://startcoding.pythonanywhere.com/basic' response = requests.get(url) html_content = response.text # Parse the HTML content soup = BeautifulSoup(html_content, 'html.parser') # Define the container for products, modify this as needed to match the actual structure product_containers = soup.select('.product-container-selector')[:10] # Assuming there are selectors to find product containers # List to hold product data products = [] for container in product_containers: category = container.select_one('.category-selector').text.strip() # Modify with the actual selector for category product_name = container.select_one('.product-name-selector').text.strip() # Modify with the actual selector for product name detail_link = container.select_one('.detail-link-selector')['href'].strip() # Modify with the actual selector for link price = container.select_one('.price-selector').text.strip() # Modify with the actual selector for price products.append({ 'Category': category, 'Product Name': product_name, 'Detail Page Link': detail_link, 'Price': price }) # Print or use the product data as needed for product in products: print(product) 여기서 질문이 있습니다. 같은 챗gpt4로 했음에도, 결과는 다를수 있는건가..?(그럴수 있을거같긴하네요..) 강의에서 보여준 analyzing 이라는 기능은, 제가했을때는 안나온것같습니다. 이것은 버젼차이일까요..? 아니면 제가 좀더 명령어를 쳐보면 될까요.? 제가 출력 받은 코드는 지금 css선택자를 제가 설정해야하는걸로 나오는데, 이것을 좀더 수정해달라고 명령어를 내려서 해결도 가능한것이지요..? 혹시 제가 다운로드 받아서 업로드한 파일이 잘못된것은 아닐까요? html예제 사이트() 다른이름 저장 하여 html 저장시, 파일과 폴더(Electro - HTML Ecommerce Template, Electro - HTML Ecommerce Template_files)가 2개 생성되던데 제가 업로드한것은 앞에 있는 파일 1개입니다. 수업내용보단.. 챗gpt 관련 내용이긴한데.. 답답해서 질문드립니다.~ 질문이 똑같으면, 출력도 똑같아야 하는게 아닌가~ 하는 생각이..ㅎㅎ 감사합니다.
다음처럼 하면 의도대로 동작합니다! int32 size = 0; // _poolTable이 4097 크기인 이유는 요구 사이즈가 1부터 시작해서 4096까지 가야 하므로 int32 table_index = 1; for (size = 32; size < 1024; size += 32) { MemoryPool* pool = new MemoryPool(size); _pools.push_back(pool); while (table_index <= size) { _pool_table[table_index] = pool; ++table_index; } } for (; size < 2048; size += 128) { MemoryPool* pool = new MemoryPool(size); _pools.push_back(pool); while (table_index <= size) { _pool_table[table_index] = pool; ++table_index; } } for (; size <= 4098; size += 256) { MemoryPool* pool = new MemoryPool(size); _pools.push_back(pool); while (table_index <= size) { _pool_table[table_index] = pool; ++table_index; } } 반복문의 조건문에서 등호(=)를 빼면 됩니다. 경계의 값은 다음 반복문에서 처리할 수 있으니까요. 마지막 반복문은 다음 반복문에서 처리할 게 없으므로 끝까지 가야 해서 등호를 살려놓습니다. 예를 들어 두 번째 반복문에서, table_size는 이전 반복문에서 1024가 되고, 두 번째 반복문의 size는 1024부터 시작하니까 아귀가 딱딱 맞게 돼요. 경계값에 문제 없는 것도 확인했습니다. 약간 갸우뚱하셨던 분들은 참고하면 좋을 것 같습니다!
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
우선 완강을 앞두고 있는데 추가 강의가 정말 흥미롭고 재밌었습니다. 감사합니다! 질문으로 넘어가자면.. [질문1 - 강의 중 allopen 플러그인 사용 여부] 강의를 듣는 와중에 7:30초쯤 말씀에는 사용했다고 하셨지만 제가 강의를 따라가면 작성해온 프로젝트 코드 내에서는 allopen관련 plugin이 build.gradle에 없었습니다. 혹시나 해서 강의 초반 자료로 주셨던 library-app-complete.zip 파일 내 build.gradle을 열어보았지만 안적혀 있었고 혹시 자동으로 연관된 dependency가 설치되었나 싶었지만 allopen을 검색해보았을때 찾기 못했습니다. 해당 플러그인이 사용안했던 것이 맞는지 궁금합니다! [질문2 - allopen 플러그인이 없어도 되었던 이유] 이게 없어도 프로젝트가 잘 작동한 이유가 Entity 클래스는 org.jetbrains.kotlin.plugin.spring 플러그인이 open 시켜주고 MappedSuperclass나 Embeddable 클래스는 강의 중 사용한 적이 없었기 때문에 몰랐다고 보는게 맞는건지도 궁금합니다! [강의 중 나온 allopen 플러그인 적용 코드 예시] id 'org.jetbrains.kotlin.plugin.allopen' version '1.6.21' allOpen { annotation("javax.persistence.Entity") annotation("javax.persistence.MappedSuperclass") annotation("javax.persistence.Embeddable") }
코랩 프로 플러스를 사용하고 있는 수강생입니다. 먼저 cloudflare를 다운받습니다. 이후 !pip install colab-ssh --upgrade from colab_ssh import launch_ssh_cloudflared, init_git_cloudflared launch_ssh_cloudflared(password='임의로 설정') # password는 임의로 설정 이걸 코랩 노트북에 작성해놓습니다. 그리고 vscode에서 ssh.config에 다음 사항을 작성해놓습니다. Host *.trycloudflare.com HostName %h User root Port 22 ProxyCommand C:\Program Files (x86)\cloudflared\cloudflared.exe access ssh --hostname %h 그 이후에 ssh로 접속해서 vscode에서 구글 드라이브와 연동하여 사용하고 있습니다. 개인적으로 gpu 작업이 필요할 때 사용하는 방법이었는데, 일반적으로 많이 사용하는 방법인지 궁금합니다. gpu 자원을 갖고 있지 않아 코랩 프로 플러스를 구독하여 사용하고 있는데, 매번 작업할 때마다 환경을 조금씩 설정해줘야 하는 불편함이 있어서 코랩을 사용하려면 어쩔 수 없는 방법인지가 궁금합니다.
umg를 캐릭터 클래스에서 addtoviewport 하면 캐릭터에서는 보이는데 이때 컨트롤러를 이용해 다른 폰에게 빙의 하면 캐릭터에서 보이던 umg는 사라지나여? 아니면 말 그대로 레벨을 새로 로드하지않는이상 다른 폰에 빙의해도 캐릭터클래스에 있던 umg는 그대로 보이나여?
#include <stdio.h> void strcopy(char d[], const char s[]) { int i = 0; while (s[i] != '\0') { d[i] = s[i]; i++; } d[i] = '\0'; } int main() { char str1[] = "first"; char str2[50] = "teststring"; int result = 0; strcopy(str2, str1); for (int i = 0; str2[i] != '\0'; i++) { result += i; } printf("%d\n", result); for (int i = 0; i < 10; i++) { printf("%c", str2[i]); } } 출력값: 10 first ring printf("%c", str2[i]); // first ring 이렇게 출력되었는데 while (s[i] != '\0') { d[i] = s[i]; i++; } d[i] = '\0'; 여기서 while타고 s[i]에 first 마지막인 t 가 들어가면 다음 배열이 들어가지않으니 d[i] = '\0'; 들어가고 firist\0 담기는게 아닌가해서 질문드립니다. 그래서 출력값이 first ring 이렇게 나오는게 맞을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 위와 같은 에러가 뜹니다. 프로그램에서 java 11이나 jdk 11 버전은 모두 삭제되어 있습니다. (choco uninstall openjdk11 명령어 실행 시 openjdk11이 uninstall 되어있다는 fail이 뜸) 환경변수도 모두 17버전으로 맞춰놓은 상태입니다. ./gradlew build까지는 됐는데 java -jar 했을 때 오류가 납니다.
강의의 내용중 3:35 즈음에 인메모리 같은 ssd 같은 메모리를 사용을 한다고 하셨는데 궁금증이 생겼습니다. ssd는 제가 알기로는 디스크로 알고 있는데 메모리라고 하셔서 궁금하고, ssd를 언급하신 이유는 지속성 옵션 관련해서 말씀 하신건지 이 두 부분이 궁금하여 질문 올려봅니다:)