코드가 실행이 안됩니다
미해결
운영체제 공룡책 강의
./a.out을 쳐도 문자열이 출력되지 않습니다ㅜ 에러가 뜨는 것도 아니라서 뭐가 문제인지 잘 모르겠습니다.
- 운영체제
- 동시성
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
운영체제 공룡책 강의
./a.out을 쳐도 문자열이 출력되지 않습니다ㅜ 에러가 뜨는 것도 아니라서 뭐가 문제인지 잘 모르겠습니다.
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
안녕하세요. 여기 강의소개 보고 CS 이론이라고 되어 있는데 학교에서 배우는 CS theory 랑 같은 맥락의 CS 이론인건가요 ?
미해결
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
선생님 안녕하세요 좋은 강의 감사합니다. 수업자료 3-3 io multi-threading.py 관련해서 질문 있습니다. 만약 fetcher 함수가 끝이 있는 함수가 아니라 while 문으로 계속 도는 (다른) 함수라고 가정하고, ThreadPoolExecutor 를 통해 2개 이상의 스레드에서 함수들을 돌린다고 했을 때 파이썬 스크립트 파일을 실행시키면 ctrl+c 를 눌러도 종료가 안되는데, 이건 왜 이러는 것이죠? 그리고 ctrl+c 를 통해 종료를 하게 하려면 어떻게 코드를 수정해야 하는지도 설명 부탁드립니다.
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
안녕하세요. 스레드 강의를 듣던 중에 만들고 싶은 프로그램이 생겨서 질문 드립니다. 스크랩 데몬 프로그램을 만들려고 하는데 DB에서 url 리스트를 조회하고 리스트를 스레드 갯수만큼 분할한 뒤 멀티 스레드를 활용해서 각 스레드에서 스크랩을 하고 DB에 저장 한 뒤 잠시 sleep 위를 무한 반복하는 역할을 합니다. lombok, logging, dev, prod.yml config 등 springboot의 편리함을 사용하고 싶고 gradle을 활용하여 멀티 모듈로 작성할 계획인데 (DAC: JPA를 사용하는 역할은 따로 분리, infra mailling 등 분리) spring-boot-starter만 web 없이 사용해서 구현하려고 했더니 마땅히 작성할 위치가 보이지 않아 일단 ApplicationRunner를 구현하고 작성하였는데 문제는 build 시에 ApplicationRunner를 springboot가 실행하여서 무한 반복에 빠져서 빌드가 완료가 안됩니다. 이를 환경변 수 등을 이용해서 피할 수는 있겠으나 이러다보니 springboot에 작성하는게 잘못된건가 싶기도하고 그냥 쌩 자바 프로그램으로 하는게 맞을까요? 선생님이시라면 어떻게 구현을 하실지 의견 부탁드립니다.
해결됨
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
join()시에 스레드는 CPU를 점유한 상태에서 대기하는 건가요? 아니면 스레드 큐에 들어가있나요?
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
궁금합니다!
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
자바 오버라이딩 규칙 중에서 부모보다 같거나 적은 개수의 예외를 던져야 한다고 알고 있습니다. 그런데, Runnable 구현 클래스의 run()에 'throws RuntimeException'을 선언하면 컴파일 오류가 발생하지 않는데 왜 그런건가요? 부모보다 많은 개수의 예외를 던졌으니 컴파일 오류가 발생해야 하는 것 아닌가요..? 제가 무엇을 잘못 알고 있는 걸까요?
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
public class HelloThreadMain { public static void main(String[] args) { System.out.println(Thread.currentThread().getName() + ": main() start"); HelloThread helloThread = new HelloThread(); System.out.println(Thread.currentThread().getName() + ": start() 호출 전"); helloThread.start(); System.out.println(Thread.currentThread().getName() + ": start() 호출 후"); System.out.println(Thread.currentThread().getName() + ": main() end"); } } 개인적으로 궁금한 부분이 있는데요. main에서 start를 호출할 때 main 스택 프레임 위에 start 스택 프레임이 쌓이나요? 쌓이고 바로 삭제되는 건가요?
해결됨
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
섹션 3. 스레드 제어와 생명 주기1 [스레드의 생명 주기 - 코드] 파트 첫 번째 코드에서 MyRunnable 정적 클래스의 run() 메서드 위에 @Override가 빠진 것 같습니다. 물론 코드를 실행하는 점에 있어 문제는 없지만 혹시나 하고 글 남깁니다.
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
질문이 몇가지 더 있어 질문남깁니다. 1.톰켓을 실행했을때 톰켓의 스레드풀에 있는 스레드에 의해 war의 클래스파일 로직들이 실행된다고하셨는데 만약 자바 로직에서 forkjoinpool같은 스레드풀을 또 생성하면 톰켓의 스레드풀과 별도로 스레드풀이 하나 더 만들어지는건가요? 수업외 질문이라면 죄송합니다 ㅠㅠ
해결됨
실전! Django 활용
안녕하세요, 강의 아주 재밌게 듣고 있습니다! 정말 필요한 강의 제공해주셔서 감사드립니다. 이번에 상품 검색 - 한글 full-text search를 듣고 궁금한게 생겨 질문 남깁니다. 이전 강의에서는 tags에 영문 데이터를 추가하여, search_vector과 역인덱스를 생성하여 상품을 검색했을때는 tags가 변경되었을 때, search_vector과 역인덱스도 수정해주는 코드를 마이그레이션에 추가하셨는데요. name에는 따로 그런 코드를 작성하지 않아서, name도 수정될 때 역인덱스가 수정되는지 궁금합니다.
해결됨
실전! Django 활용
안녕하세요 강사님! 상품검색 - 한글 full-text search 구현 부분 듣다가 궁금한 점이 생겨 질문 남깁니다. product_list_handler에서 query가 있을 때, products를 필터하는 orm에서 100개로 갯수를 제한하는데요. 강의에서처럼 explain으로 쿼리 실행계획을 볼 때, 데이터가 얼마 없을때는 full scan을 하고, 많으면 모델에서 생성한 'product_name_gin_index'를 통해 scan을 하더라구요. 언제부터 인덱스에서 스캔하나 궁금해서 limit를 늘려가면서 확인했는데, 제 로컬에서는 limit가 12,800개가 넘어갈 때 인덱스를 사용하더라구요. 이렇게 되면 100개로 제한해서 쿼리하면 어차피 인덱스를 사용하지 않을것 같은데 맞나요? 맞다면 결과적으로 product_name_gin_index 인덱스를 사용하지 않는데, 이 인덱스를 생성한게 의미가 있을까요?? 응답할 때 페이지네이션을 필요하니까 한번에 10,000개 이상 보낼 일은 없을 것 같은데 인덱스를 생성한 장점이 있는지 궁금합니다! def product_list_handler( request: HttpRequest, category_id: int | None = None, query: str | None = None ): """ 쿼리 파라미터인 category_id, query에 따라 상품 목록 조회 API """ if query: products = Product.objects.filter( name__contains=query, status=ProductStatus.ACTIVE )[:100] ... (생략) pass
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 예전부터 궁금하던건데 고급강의에서 스레드를 다뤄주셔서 너무 감사드립니다. 궁금했던 질문 1.war,jar 파일이 tomcat 에서 구동되면 강의에서 설명해준것처럼 tomcat 프로그램을 프로세스가 작동할텐데 동시에 3개의 요청이 tomcat 으로 들어오게 된다면 tomcat 을 돌리고 있는 프로세스는 총 3개의 스레드를 스레드풀에서 가져와서 각 각 요청에 1개씩 스레드를 할당하여 was 가 멀티스레드 처럼 작동되게 되는건가요? 2.tomcat 으로 war,jar 파일을 배포하고 운영하면 tomcat 의 스레드가 war,jar 의 소스를 1줄씩 읽는거고 war,jar(자바) 에서는 스레드가 따로 생성되지 않는건가요? (자바에서 멀티스레드 사용하지 않은경우) 3.2번이 맞다고 했을때 만약 자바소스에서 멀티스레드를(총3개 스레드사용) 사용했다면 tomcat 의 스레드는 1개일텐데 어떻게 멀티스레드가 되는건가요..? 자바에서 스레드를 2개 더 생성시켜버리는건가요? 궁금합니다 ㅠ 4.그리고 자바에서 스레드 숫자를 설정해버리면(4개로 설정) tomcat 에서 4명의 사용자 요청만 동시에 처리할 수 가 있다고 하셨는데 자바에서 스레드 숫자를 설정하는순간 톰캣의 스레드풀에서 4개의 스레드만 사용가능해지는건가요..?
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
자바21로 맞췄는데 왜 timeunit을 못가져올까요?>
미해결
자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
안녕하세요! 좋은강의 해주셔서 감사합니다! 저는 모니터라는 개념에 대해 잘 이해를 못하다가 이번 강의를 통해 좀 알것 같기도 한데 애매한 부분이 있어서 질문드리고자 합니다~ 강의 내용을 보면 synchronized = 모니터라고 볼 수 있을 것 같은데, 41분쯤에 장표에서 나온 모니터는 lock.wait()과 lock.notify()로 구현되어있잖아요! 그런데 저는 지금까지 동기화 코드를 작성할때 Object클래스의 wait()이나 notify()함수를 사용안하고, synchronized만 사용해도 동기화가 잘 됬던것 같거든요! synchronized만 사용할때랑 자바 모니터로 구현할때랑 무엇이 다른건지 아직 좀 잘 모르겠습니다..
미해결
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
안녕하세요 강사님 mongoDB를 이번에 처음 사용하는데, 세팅하는 과정에서 궁금한게 생겨 질문 남깁니다. 저는 지금까지 mysql로 토이프로젝트를 진행했었는데요~ fastAPI 기반의 프로그램을 실행시키기 전에 항상 mysql 을 구동시켜 놓았었습니다. 그런데 이번 mongoDB의 경우엔, 별도로 mongoDB 를 실행시키지 않고 바로 app을 실행시키더군요 ! 몽고DB도 결국 별도의 프로그램이기에, webapp이 띄워지기 전에 미리 프로세스로 올라온 상태이어야할 것 같은데, 맞을까요? 그렇다면 mongoDB가 프로세스로 띄워지는 순간은 언제인가요? 혹시 __ init__ .py 에서 connect() 함수에서 프로그램을 띄우고 연결하는 작업을 진행하는걸까요?
미해결
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
선생님 안녕하세요 좋은 강의 감사합니다. async await 등의 문법 관련해서 질문이 있습니다. 코루틴을 만들때 언제 async 나 await을 써야하는지 잘 이해가 되지 않고, 인터넷을 찾아봐도 이해가 잘 되지 않습니다. 이것을 설명하는 자료나 공식문서가 따로 있나요? 예를 들어, 4-2 코드 파일에서 # (a) 부분 async def fetcher(session, url): async with session.get(url) as response: # (b) 부분 return await response.text() # (c) 부분 async def main(): urls = ["https://naver.com", "https://google.com", "https://instagram.com"] * 10 async with aiohttp.ClientSession() as session: # (d) 부분 # (e) 부분 result = await asyncio.gather(*[fetcher(session, url) for url in urls]) "비동기 함수를 만들때 def 앞에 async 라는 것을 쓰는 것이다" 는 이해를 하겠는데, 예를 들어 (b) 부분에서 with 앞에 왜 async를 써야 하는지 (함수를 정의할때 async를 썼는데 왜 함수 안의 with 절 앞에 또 async를 써줘야 하나요?) , (c)에서 response.text() 앞에 왜 await을 써줘야 하는지 (async로 정의된 함수안에는 await을 무조건 써줘야 하나요? 그럼 모든 줄에 await을 써줘야 하나요? 아니라면 await을 써주는 줄과 안써주는 줄은 어떻게 구분하죠?) (d) 에서도 왜 async를 써주는지, (e) 에서는 await을 정의해주면서 왜 그 위에 urls 를 정의할때는 안 쓴것인지 이런 문법 자체가 궁금합니다. 혹시 이런것을 설명해주는 자료나 링크도 제공이 가능할까요?
해결됨
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
멀티태스킹과 멀티프로세싱 ㄴ첫 번째 줄에 '기념 개념들에 대해서' -> 기본 개념들에 대해서 단일 프로그램 실행 ㄴ그림5 다음 설명에서 '프로그램 안에 있는 코드를 모두 후에야' -> 모두 실행한 후에야
미해결
고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
선생님 안녕하세요 좋은 강의 감사드립니다. multiprocessing(5) - Queue, Pipe 강의 에서 질문이 있습니다. 파이썬 파일 2-6-1 을 보면 queue 를 사용해서 변수를 집어넣고 출력하는데요. 이것과 queue를 사용하지 않은 2-5-1 파일의 본질적인 차이점을 모르겠습니다. 똑같이 메인 프로세스 안에서 서브 프로세스를 실행하고, join을 사용하고, 각 서브프로세스가 끝나면 값을 출력하는 구조인 것 같거든요. queue를 사용하는 이유가 뭔가요?
해결됨
고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
선생님 안녕하세요 좋은 강의 감사합니다. multiprocessing(2) - Naming, Parallel processing 12분 경에서 질문이 있습니다. for i in range(1, 10): # 1 ~ 100 적절히 조절 # 생성; name은 str을 받기 때문에 형변환 t = Process(name=str(i), target=square, args=(i,)) # 배열에 담기 - 한번에 풀면서 join 하기 위해서 processes.append(t) # 시작 t.start() 이런식으로 코드가 실행될때, 왜 서브 프로세스가 순서대로 실행이 되지 않는지 잘 이해가 가지 않습니다. 분명히 for loop에서 i가 순서대로 증가하면서 t.start()를 하거든요. 예를 들어, i =1 일때 t가 정의되고 t.start()가 된다음에 다시 i=2 가 되면서 반복되는 식으로요. 그럼 "논리상" 1번째 서브 프로세스부터 순차적으로 실행되어야 하는 것 아닌가요?