묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
파이썬 병렬처리 관련 질문이 있습니다.
안녕하세요 질문이 있습니다. 스레드 또는 프로세스 최대 생성 개수을 300개로 제한을 두고,특정 스레드 또는 프로세스의 작업 종료시점에 새로운 스레드 또는 프로세스 생성하여 제한 개수를 지속적으로 유지할 수 있는 방법이 궁금합니다. 즉 생성 제한개수 300개는 넘지 않지만300개 이하시 계속적으로 추가하며 300개를 지속적으로 유지하며 실행할 수 있는 방법이 있을까요? 구체적으로 예를들면 300개를 생성했는데몇개의 프로세스가 작업을 완료하면 300개의 제한선에서 몇개의 생성 가용 개수가 허용될텐데(ex, -3개 종료 시 남은 수 297개: 3개 추가 가능)이를 다른 스레드나 프로세스 종료를 기다리지 않고, 바로 다시 생성해서 채울 수 있는 방법이 있을까요?(ex, 남은 수 297개 + 추가 가능 3개: 300개)단 항상 최대 수치는 300개입니다. 코멘트 주시면 감사하겠습니다.(만약 가능하시다면 코드로 말씀해주시면 더욱 감사하겠습니다!)
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
from config import get_secret 질문
"05-scraping.py" 파일에from config import get_secret --> 이 코드가 있는데요,제가 Linux에서 이 파일을 실행해 보면 위 코드에서 아래 에러가 납니다. 뭐가 문제인지요?ImportError: cannot import name 'get_secret' from 'config' (/home/sean2/.pyenv/versions/3.8.17/lib/python3.8/site-packages/config/__init__.py)
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
안녕하세요 강사님 낙관적 락 질문있습니다.
낙관적 락도 데드락이 터질 수 있다는 글을 많이 봤는데, 강의에서는 다루지 않아서 좀 헷갈립니다. 사람마다 코드가 다 다르기 때문에 데드락이 무조건 터진다 안 터진다를 말할 수 없을 거 같은데,어떤 상황일 때 데드락이 발생하는지에 대해 간단하게라도 설명해주실 수 있으신가요?항상 감사합니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
네임드락 레포지토리
"Stock을 사용하면 안되고.."라는 표현을 사용하셨는데요.Stock Entity를 사용하면 안되고 어떤 Entity를 통해서 repository를 만들어야한다고 말씀하시는건가요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
테스트 코드에서 매번 1번 유지
테스트 코드에서 매번 stock id 1번으로 조회하는데 이게 어떻게 가능한건가요?저의 경우 1번 객체가 없어서 에러를 처리합니다.
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
혹시 추가예정인 강의가 대략 언제쯤 나오는지 알수있을까요..?
재차 여쭤봐서 죄송합니다..!
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
10:10쯤에 질문있습니다.
안녕하세요,process.join()하면 subprocess의 job이 모두 complete된 것인데, 왜 다시 while True에서 process가 끝날 때까지 무한대기를 해야 하는 것인가요? 이미 process의 job은 종료된 것 아닌가요?... q = Queue() process = [] for i in range(5): t = Process(name=str(i), target=worker, args=(1, 100000000, q)) process.append(t) t.start() ... while True:
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
레디스에서 락이 필요한 상황에 대하여
안녕하세요, 강의를 보고 공부를하다 궁금한 점이 생겨 질문드립니다.제가 예측한 강의 내용으로는, "경쟁 상태 예시(재고 수량)에 대하여 레디스 를 활용한다." 라고 예측 했습니다.이에 대하여, "레디스는 싱글 스레드 기반이니깐, 락킹 없이 해당 작업이 가능할 것" 이라고 추측하였는데요, 그러나 제가 생각지 못한 레디스 lock 과 관련된 내용을 접하게 되어 신기하면서도 또 궁금한 부분이 생겨 질문드립니다. 레디스 락 전략이 사용되는 이유와 예시를 조금더 들어볼 수 있을까요? 혹은 이와 관련하여 추가적으로 공부해볼 수 있는 자료를추천해주시면 감사하겠습니다.
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
multiprocessing(5) - Queue 공유 질문 in multiprocess
안녕하세요,강의에서 선언한 큐를 여러개의 프로세스의 args로 넘겨주면서 마치 큐가 process 들에서 공유되는거처럼 보였는데 실제로 id를 통해 주소를 찍어보면 각 프로세스에서 다른 주소값을 보여주네요. 관련해서 내부적으로 어떻게 작동하는지 설명해주시거나 참고 자료 같은거 추천해주시면 감사하겠습니다.
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
TimeUnit이 안 됩니다
아래처럼 TimeUnit이 적용되지 않아서,구글링하여 maven 디펜던시 추가 등등 해보았지만 안됩니다.혹시나 다른 방법이 있는지 궁금해서 문의드려봅니다. java는 17입니다.
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
동시성 부분 추가 공부하면서 헷갈리는 부분 질문 드립니다.
안녕하세요 선생님!동시성과 병렬성 관련해 기초가 약해 해당 강의를들으면서 OS 부족한 부분을 많이 알게되어 도움이 많이되고 있습니다. 다름이 아니라 해당 강좌 범위는 벗어나지만..구글링해도 명확하게 해결되지 않아 질문 드립니다. 동시성을 구현하는 방법으로멀티쓰레드나 코루틴 방법으로 구현을 할 수있고멀티쓰레드 방법에서 쓰레드 전환 간 context switch가 많기 때문에 오버헤드도 많아 Coroutine 방법을 많이 쓰고 또한 유저가 이벤트루프(스케쥴링)을 app에서 관리한다는 측면에서 디버그가 유용하다 정도로 이해하고 있습니다. 많은 블로그에서멀티쓰레드보다 코루틴을 소개하면서 동시성 구현시 코루틴을 더 상위(혹은 좋은) 방법으로 서술이 많이 되어 있더라구요.I/O작업이 빈번할 경우 코루틴이 더 유리하다는 이해가 됩니다. 싱글스레드 + async싱글스레드멀티스레드 + async멀티스레드2개의 구현방법이 레이어가 다르다(thread와 task)보니 4가지 경우의 수를 적용할 수 있는데 실제 동시성을 적용해야되는 상황이면 어떻게 판단하고 최적의 구현방법(4가지 중 선택)을 적용할 수 있을까요?(파이썬 스택을 쓰고 있으며 GIL도 이해하고 있는 상태입니다.) 다시한번 해당 강의와 조금 벗어난 질문드려 죄송합니다. ( _ _ )
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
synchronized 사용
RDB 사용시 좋아요나 조회수 같은 자주 변경되는 데이터에 Pessimistic Lock을 걸면 락을 자주 걸어 성능 저하가 발생할 수 있고 Optimistic Lock의 경우도 롤백되는 경우가 많아져 성능 저하가 발생할 수 있습니다.이때 데이터가 엄청 많지는 않아 Redis가 아닌 로컬 캐시를 사용해서 해결해보려 한다면 synchronized 키워드를 사용해서 애플리케이션에서 동시성 문제를 해결하고 일정 시간에 한번씩 RDB와 동기화 하는 방식을 생각해보았는데 이렇게 하는 경우도 있나요?
-
미해결운영체제 공룡책 강의
피터슨 알고리즘과 compare_and_swap 명령어 질문입니다
WSL2 환경에서 자바를 설치하고 컨슈머 프로듀서 예제를 설명하신 AtomicBoolean으로 flag값을 그리고 turn을 static 영역에 할당하고컨슈머 프로듀서의 잡을 각기 다른 두 개의 쓰레드로 실행시켰습니다turn이나 flag값이 클럭단위로 문맥교환하는 경우를 가정해서 뜯어보며 경우의 수를 따져봤지만 딱히 문제되는 경우는 없어보였습니다 while의 조건문을 고려해도 딱히 문제는 없어보였구요 그런데 count값은 이상하게도 0이 항시적으로 나오지 않았고 예상된 값을 벗어났습니다리눅스라 에러가 생기는건가 싶지만 JVM에서 가동되는 환경이라 딱히 다를것은 없다고 생각했고 실제로도 윈도우즈 환경에서도 똑같은 동시성문제가 발생했습니다도대체 무엇이 문제일까요
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
파이썬 코루틴활용 영상 질문
코드를 실행해보니까 naver쪽 데이터만 불러오는 것같습니다. 속도도 너무 빠르고 뭐가 문제일까요? 그리고 할때마다 시간이 다르네요 ㅠㅠ aiohttp 버전도 3.7.3으로 설치했습니다
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
가상환경 설정 질문
가상환경 들어가서 pytho hello.py실행해도 파일이 없다고 오류가 뜨네요. 처음에 들어갔을때는 앞에 가상환경 venv가 안떠서 powershell하나더 만드니까 저렇게 앞에 venv가 떴습니다. 이렇게 하는거 맞을까요 그리고 이거랑 무슨 차이인지도 궁금합니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
oracle관련 질문있습니다!
안녕하세요!강의 잘 보고 있습니다.oracle db를 사용중인데요, 선착순 쿠폰 발급을 진행중에 중복 발급, 과발급 등의 문제가 있는 상황인데요.oracle을 사용중인 환경에서는 동시성이슈를 어떻게 해결할 수 있는지 궁금합니다.답변해주시면 감사하겠습니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
PessimisticLock와 findById
안녕하세요. 강의를 보던중 의문이 생겨 질문 드립니다.JpaRepository를 만들면 정의하지 않아도 findById는 기본적으로 존재 하는 것으로 알고 있습니다.findByIdWithPessimisticLock를 사용한 매서드가 락을 반납하기 전에 다른 매서드에서 findById을 이용한 update가 발생하게 된다면 findById가 Lock을 감지하는지가 궁금합니다. public interface StockRepository extends JpaRepository<Stock, Long> {@Lock(value = LockModeType.PESSIMISTIC_WRITE)@Query("select s from Stock s where s.id=:id")Stock findByIdWithPessimisticLock(Long id);}
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
pydantic import error
아래 질문자님께서도 글을 남기셨듯, 저 또한 이러한 에러가 계속 발생합니다. pydantic.errors.PydanticImportError: pydantic.datetime_parse:parse_datetime has been removed in V2. 이 문제는 odmantic import 과정에서 발생하고 있으며.V1에서는 가능했지만 V2에서 제거되면서 발생되는 문제라고 생각됩니다. odmantic의 버전을 낮춰보았으나 반응이 없었고,pydantic의 현 버전이 2.3이기에 1.10.12버전으로 낮춰보아도 현 문제가 지속되고 있습니다. 교육자료의 requirement.txt를 열어봐도 사용된 라이브러리만 명시되어 있으뿐 버전에 대한 부분은 없어서 진행에 어려움을 겪고 있습니다. 다시 한번 도움을 부탁드립니다. 감사합니다!
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
seleniumwire multiprocessing 에러
셀레니움 멀티프로세싱하면 잘 돌아갑니다. 하지만 from seleniumwire import webdriver셀레니움와이어를 멀티 프로세싱으로 돌리게 되면[37052:24192:0901/174906.460:ERROR:cert_verify_proc_builtin.cc(701)] CertVerifyProcBuiltin for z.cdp-dev.cnn.com failed:----- Certificate i=1 (CN=Selenium Wire CA) -----ERROR: No matching issuer found위와 같은 에러 문구가 나네요구글링해도 관련 내용이 안보여서 질문 남겨봅니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
lettuce 클라이언트는 락 획득
안녕하세요 강사님. 강의 잘 듣고 있습니다. 궁금한 부분이 있는데요.lettuce 클라이언트는 락 획득을 스핀락을 돌면서 자체적으로 얻어온다고했는데 그렇다면 어떻게 애플리케이션의 비니지스 코드까지 락을 얻지못했다는 값을 넘겨주나요?while(!redisLockRepository.lock(id)) 구문이 어떻게 실행될 수 있는지 모르겠습니다.왜냐하면 위에서 말한것처럼 lettuce 클라이언트에서 락을 얻기 위해 내부적으로 계속 스핀락을 돌다가 결국 얻어내서 true 를 리턴할것으로 예상되기 때문인데요.답변 부탁드리겠습니다