묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자의 실무를 위한 올인원 기본기 클래스
강의 자료 링크
강의 자료 링크가 동작이 안되는데 확인 부탁 드립니다!
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
Facade 클래스에대 설명이 부족해요 ㅠㅠ
안녕하세요섹션 3. Database 이용해보기 - Optimistic Lock 활용해보기 강좌에 질문이 있습니다.Facade 클래스에서 버전이 달라 업데이트 실패한 경우에 재시도를 한다는건 이해했습니다.그런데 왜 재시도를 퍼사드 클래스를 따로 만들어서 수행하는지 궁금합니다
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
PESSIMISTIC_WRITE 테스트 시 테스트 클래스 위 @Transactional
@Transactional @SpringBootTest class StockServiceTest { @Autowired private StockService stockService; @Autowired private PessimisticLockService pessimisticLockService; @Autowired private StockRepository stockRepository; @BeforeEach public void before() {안녕하세요 PESSIMISTIC_WRITE 예제처럼 테스트 시에 @Transactional을 붙이면 테스트가 첫 스레드풀 사이즈 만큼의 쿼리만 나가고 계속 대기 중입니다.혹시 원인을 알수 있을까요?
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
깃허브 REAME.md
안녕하세요, 현재 깃허브 README에는 강의에 나오는 README 처럼 별도로 정리가 되어 있지 않은 건지 궁금하여 질문 드립니다..! 현재 README는 아래 이미지에 나온 게 전부인 것 같아서요!
-
해결됨스프링 핵심 원리 - 고급편
이중화된 서버에서 동시성 제어할 수 있는 방법 질문 드립니다!
안녕하세요 강사님 이번에 새로운 출발한다는 소식을 들었는데 진심으로 응원드립니다!오늘 ThreadLocal 강의를 듣던 중 궁금한 점이 생겨 질문드립니다.이중화된 서버의 경우 동시성 제어를 DB LOCK을 활용해야 하나요? 실무에서는 주로 어떤 방법으로 제어하나요?영화 예매 기능을 구현할 때 영화 정보 테이블(해당 시간에 상영하는 영화의 자리수를 가지고 있음)예매 내역 테이블(예매한 사람의 인적사항을 가지고 있음)해당 회차의 예매 가능한 총 자리수 - 해당 회차를 신청한 자리수에 신청하려는 인원수를 빼서 0보다 같거나 크면 신청할 수 있도록 아니면 예외를 throws하는 설계입니다..위 설계대로 서비스 레이어에서 아래와 같이 구현하면 신청자 수를 count하는 SQL에 SELECT LOCK을 걸어주는게 맞을까요?@Transactionalpublic void 예매신청(PersonDTO params) { int result = dao.총자리수() - dao.예매한수(); if (result - params.get신청하려는예매인원수() >= 0) { 신청 로직~~~ } else { throw new IllegalStateException("자리 없음!");}늘 좋은 강의 해주셔서 감사합니다 덕분에 많이 늘고 있습니다!
-
해결됨파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
파이썬 버전문의
안녕하세요 강의에 보면 파이썬 버전을 3.7.6으로 사용하고 계신데 현재 상위버전이 설치되어있습니다.이후 강의 시작할때 버전을 3.7.6으로 다운그레이드하고 진행할지 현재 설치되어있는 3.10 으로 진행해도 무방한지 알고싶습니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
RedissonLockStockFacade 트랜잭션시 실패 케이스
@Component class RedissonLockStockFacade( private val redissonClient: RedissonClient, private val stockService: StockService ) { @Transactional fun decrease(key: Long, quantity: Long) { val lock = redissonClient.getLock(key.toString()) try { val available = lock.tryLock(10, 1, TimeUnit.SECONDS) if (!available) { println("lock 획득 실패") return } stockService.decrease(key, quantity) } catch (e: Exception) { throw RuntimeException(e) } finally { lock.unlock() } } }RedissonLcokStockFacade 클래스의 decrease 메서드에 트랜잭션을 걸면 동일한 테스트 케이스가 실패하는데 이유를 알 수 있을까요?
-
미해결운영체제 공룡책 강의
좀비 프로세스와 고아 프로세스
수업 내용에 따르면 자식 프로세스보다 부모 프로세스가 먼저 종료되면 자식 프로세스는 고아 프로세스가 됩니다. 이런 경우 자식 프로세스가 init 프로세스를 바라보게 된다고 알고 있습니다. 그럼 init이 새로운 부모 프로세스가 되고, 자식 프로세스가 종료하게 되면 wait()으로 리턴 값이 회수되지 않아 좀비 프로세스가 되나요?
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
func 기능을 쓸때 self. 을 왜쓰는지 이해가 잘안되네요 ㅠㅠ
안녕하세요 func 기능을 쓸때 self. 이것을 많이 쓰는데 왜 써야하는지 100퍼센트 이해가 안되네요 혹시 어떨때 쓰는지 알수있을까요?
-
미해결운영체제 공룡책 강의
Demand Paging에서의 valid-invalid bit 질문
페이징에서 메모리 보호를 수행할때의 valid-invalid bit와 demand paging에서의 valid-invalid bit는 같은 건가요?이전에 페이징에 대해서 배울 때, 페이징에서의 메모리 보호를 valid-invalid bit를 이용해서 한다고 배웠습니다.valid : 관련된 페이지가 논리 주소공간에 있는경우(legal)invalid : 관련된 페이지가 논리 주소 공간에 없는 경우(illegal)7:58 부분에서 demand paging에 대해 배울 때 역시 valid-invalid bit가 등장하는 데요. 여기서 설명하는 건 좀 다릅니다valid : 페이지가 legal하고 실제 메모리에 있는 경우invalid : 페이지가 valid하지 않거나 현재 secondary storage에 있는 경우둘다 valid-invalid란 단어를 사용하지만 설명은 다른것이 의아해 여쭙습니다.
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
Closure2 강의에서 예문처럼 똑같이 myfunc2, myfunc3 만들었을때
저 같은경우에는 myfunc2,myfunc3 를 만들었을때 myfunc라고 타입했을경우 아무것도 안뜨는데 오류인가요?ㅠㅠ
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
비동기를 while로 반복하는 방법 문의
안녕하세요알려주신 코드를 10개씩 비동기로 묶어서 while로 돌리고 싶은데 잘 안되네요아래와 같은 코드로 했을 때 얼핏 잘 되는 것 같지만다른 티스토리 블로그로 바꿔서 해보면 중복 데이터가 발생합니다 비동기를 while 안에 넣어서 써도 되는건지 알고 싶습니다from bs4 import BeautifulSoup import aiohttp import asyncio async def fetch(session, url, i): async with session.get(url) as response: html = await response.text() soup = BeautifulSoup(html, "html.parser") tag = soup.find("p", class_="txt_thumb") # 첫번째 글제목만 print(tag.text) async def main(jump): BASE_URL = "https://bjpublic.tistory.com/category/%EC%A0%84%EC%B2%B4%20%EC%B6%9C%EA%B0%84%20%EB%8F%84%EC%84%9C" urls = [f"{BASE_URL}?page={i}" for i in range(j + 1, j + 11)] async with aiohttp.ClientSession() as session: await asyncio.gather(*[fetch(session, url, i) for i, url in enumerate(urls)]) if __name__ == "__main__": j = 0 while True: asyncio.run(main(j)) print("--------") j = j + 10 if j == 20: break
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
클론강의 tableViewCell
8:17 에 데이터모델을 받는 변수를 왜 굳이 함수로 만드는 이유를 자세히 알려주세요20:10 에 왜 movieModel처음에 nil에 할당 되어 있다가 바로 movieMoel 데이터가 안담겨지나요 ? 비동기적으로 처리한 데이터를 movieModel에 넣었을때, collectionView를 reloadData를 한 이유를 컨트롤러 생성 과정을 통해 자세히 알려주세요
-
미해결운영체제 공룡책 강의
pdf 자료
혹시 pdf 자료는 어디에 있나요?
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
Location.pin강의에서 self질문이요
안녕하세요 강의내용중에 질문있어서 글올립니다.PinLandMark라는 열거형에서 var title: String { return "\(self)" // self는 case를 가르킴 }이부분에 해당하는 self가 열거형의 case를 나타낸다고 이해했는데 왜 그렇게 되나요?밑의코드인 var coordinate:CLLocationCoordinate2D { switch self { case .Deoksugung: return .init(latitude: <#T##CLLocationDegrees#>, longitude: <#T##CLLocationDegrees#>) case .Hyeongbokgung: return .init(latitude: <#T##CLLocationDegrees#>, longitude: <#T##CLLocationDegrees#>) case .SeoulCityHall: return .init(latitude: <#T##CLLocationDegrees#>, longitude: <#T##CLLocationDegrees#>) } }의경우 switch self가 PinLandmark를 가르키지않나요?제가 이해한건 self라는건 class,struct,열거형의 인스턴스를 가르킨다고알고있는데 제가 잘못이해한건가요?
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
Capturing Valus
cloule 3번째 강의에서 // Capturing Valus// reference Type(class, function, closure)// value Type(Int, String, Array, Dictionary, struct)라고 알려주셨는데 String은 reference type가아닌가요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
redis lock과 mysql lock 성능 질문입니다.
강의를 보면 redis의 redisson과 mysql db lock 중 redisson을 이용한 방식이 더 성능이 좋다고 설명 해주셨는데요.강의의 테스트 코드 수행시간을 보면 mysql의 비관락이 약 2초, redisson을 이용한 방식이 약 5초 정도 걸리는 것을 보아 비관락의 성능이 더 빠른 것처럼 보이는데..이럼에도 불구하고 redisson의 성능이 더 좋다고 하시는 이유가 궁금합니다.
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
2-4 멀티프로세싱 예제
`04-3-cpu-multi-processing.py`는 멀티프로세싱 예제 인데요process id는 worker 만큼 출력이 되는데, threading.get_ident() 으로 얻은 thread identity는 동일한 값이 나와서요.서로 다른 프로세스가 같은 스레드를 사용하는 것인가요??
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
안녕하세요 todolist강의중에서 UI구성중 xib파일 오토레이아웃질문입니다.
안녕하세요 xib파일에서 오토레이아웃 설정중에 오류가 나와서 질문드려요위와같이 xib파일에서 테이블셀에 오토레이아웃을 적용했는데 시뮬레이터에서는 오토레이아웃이 적용이안되고있습니다. xocde껐다 실행하기와 컴퓨터를 껐다켰는데도 이러는데 혹시 왜이러는건지 질문드려도될까요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
낙관적 락, 비관적 락 말고 항상 분산락을 쓰는게 좋을까요?
공부하다가 의문이 생겼는데요,낙관적 락 - 충돌 잦으면 락 획득 재시도 로직 때문에 성능 안좋음비관적 락 - 충돌 잦으면 낙관적 락보다 성능좋음.분산 락- 스케일 아웃된 DB 환경에서도 사용 가능- Redis 라이브러리마다 다른데 Lettuce는 스핀락으로 구현되서 재시도 많으면 불리 Redisson은 pub-sub 기반이라 재시도 많으면 유리정확하진 않지만 이렇게 알고있습니다.질문은1. 잘못 알고 있나요?2. 제가 공부한게 맞다면, 무조건 비관적 락, 낙관적 락 말고 분산락 + Redis(Lettuce/Redisson) 쓰는게 좋은건가요?