안녕하세요! 좋은 강의 잘 듣고 있습니다. CompletableFuture.runAsync() 에 커스텀 Executor 를 따로 넘기는 코드를 보면서 궁금한 점이 생겼습니다. 동기 방식은 어차피 요청 스레드에서 직접 처리되니까 별도 스레드풀 설정이 의미 없는 거라 비동기에서만 설정하는 건가요? 아니면 동기에서도 풀을 따로 구성하는 케이스가 있는지 궁금합니다. 그리고 Java 21부터는 Executors.newVirtualThreadPerTaskExecutor() 가 기존 플랫폼 스레드풀을 대체하는 권장 방식인지도 여쭤보고 싶습니다. Virtual Thread는 풀링 없이 매 작업마다 새로 생성하는 방식이라고 이해했는데, 실무에서 전환할 때 주의할 포인트가 있다면 함께 말씀해 주시면 감사하겠습니다!
hong님 안녕하세요! 인덱스 분할, 병합 내용을 보면서 단순하게 인덱스를 걸면 안되겠다는 생각이 들었습니다. 질문1 인덱스 분할, 병합 관점에서 인덱스를 걸어도 괜찮다는 결론에 도달할때 과정이 궁금합니다! 인덱스로 인해 줄어드는 조회 비용 > 인덱스로 인해 증가하는 쓰기 비용 을 정량적으로 계산해서 적용하시나요? ex) 쓰기 패턴 및 TPS 조사, redo log 증가량 확인, 인덱스 개수, 테이블 크기 등 질문2 라이브 환경에서 OPTIMIZE TABLE 실행해도 문제가 없을까요? 느낌상 최후의 수단으로 실행 해야하나 생각이 들었는데요. 고려해야할 사항이 있는지 궁금합니다!
링크 타고 들어가서 수락하기 누르면 아래와 같이 뜨는데 어떻게해야할까요 학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 어떤 섹션, 몇 분 몇 초의 내용인지 어떤 부분이 이해가 안 되는지 어떤 에러가 발생했는지 (에러 메시지 전체) 본인이 시도해 본 방법 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 같은 질문이 이미 답변되었을 수 있습니다 검색으로 더 빠르게 해결할 수 있어요e
1분30초 ~ 2분 쯤에 말씀해 주시기를 "부하를 100만건을 받는 가상 환경에서", "카프카가 100% 이득인 상황은 언제지?" 등의 긍정적인 예시를 들어주셨습니다. 하지만 면접관의 입장에서 "왜 부하를 100만건 받는 가상 환경을 만드셨나요?" "실제 트래픽이 얼마정도 였길래 100만 건의 부하 테스트를 하신건가요?", "현실적인 목표에 부합하는 부하 테스트를 하신 게 맞을까요?" 등의 질문을 할 수 있지 않나요? 그럼 결국에 "학습 목적으로 사용한 kafka = 학습 목적으로 구성한 100만건의 부하 환경"이 된다고 생각합니다. 즉 100만건의 부하를 받는 가상 환경을 만든 당위성이 없다고 생각합니다. 그럼 결국 당위성이 만들어지기 위해서는 꽤 많은 유저 트래픽을 받고 있는 사이드 프로젝트를 만들어야 하지 않나 생각이 들어서 질문드립니다.
조회를 하고 cache확인 api를 호출해도 캐시데이터가 보이지 않습니다.. 어디를 확인해봐야할까요? chatGPT를 통해 물어보고 확인해본 아래다섯가지는 정상적입니다. 코드도 깃허브 코드에서 수정한것이 없어서 질문남깁니다 spring.cache.type=ehcache 설정 확인 ehcache.xml 파일 존재 여부 및 경로 확인 Ehcache 의존성 ( ehcache 라이브러리) 추가 여부 확인 @EnableCaching 설정 확인 @Cacheable 이 정상적으로 적용되었는지 확인
안녕하세요! 비동기 코드에 관해 질문이 있습니다. ExecutorService 는 스레드를 관리하는 역할을 하는것이고 CompletableFuture 가 실제로는 비동기 요청을 처리하는 것으로 이해하였는데 맞을까요? Future 은 예외 처리를 할 수 없기 때문에 잘 쓰이기 않을까요??CompletableFuture 가 지원하는 기능이 더 많기 때문에 주로 CompletableFuture 를 사용하나요?
현업에서의 부하테스트와 Ngrinder 사용에 대해 질문드립니다. 현업에서는 부하테스트용 서버(e.g. Stage 서버)를 두고 해당 서버에 부하테스트를 하는지, 아니면 로컬에 띄워두고 간략하게 테스트를 하는지 궁금합니다. Ngrinder를 어떤 서버에 설치하는지 궁금합니다. 별도의 IDC 서버에 설치한 후, 팀 내 개발자가 모두 해당 Ngrinder를 사용해 부하테스트를 적용하는지, 아니면 Ngrinder는 로컬 컴퓨터(개인 노트북 등)에 설치 후 부하 테스트 대상 서버만 Stage 환경 등에 두고 해당 서버에 테스트를 하는지 궁금합니다.
인덱스를 걸때 카디널리티 수치를 확인해 높은 컬럼을 인덱스로 설정하라고 강의에서 들었습니다. 이에 궁금한 점이 몇가지 있습니다. Q1 : WHERE 절에 검색조건으로 사용되는 컬럼이 5가지라고 가정하면 가장 카디널리티가 높은 컬럼 1개만 인덱스로 걸어야 하나요?? 아니면 카디널리티가 높은 순서대로 묶어서 하나의 복합 인덱스를 만들어 주어야 하나요?? 차이점이 궁금하고 어떤 방식이 더 나은 방식인지 궁금합니다 Q2 : WHERE 절에 사용되는 검색조건인 컬럼 한개가 있다고 가정했을때 해당 컬럼의 카디널리티 수치가 낮더라도 인덱스를 만드는게 낫지 않나요? Q3 : Mysql의 경우 범위검색의 경우 B-Tree 인덱스를 사용한다고 알고있습니다 . 강의에서 만든 인덱스도 날짜이고 범위검색이니 B-Tree 인덱스를 사용한거 같습니다. 정확한 일치 검색의 경우 해시 인덱스를 사용할 수 있다고 들었습니다. 이때는 인덱스를 만들때 코드를 어떻게 써줘야 해시 인덱스를 만들 수 있나요?
다른 질문을 보니 www.nate.com 으로 시도해보라하여 했지만 똑같이 되지 않습니다. Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during conversion: Unsupported class file major version 61 java.lang.IllegalArgumentException: Unsupported class file major version 61 Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during conversion: Unsupported class file major version 61 java.lang.IllegalArgumentException: Unsupported class file major version 61
혹시나 저처럼 약간 헤매는 분들 계실까 싶어 남깁니다. 스카우트 모니터링 TOOL 설치(2)에서 옵션 추가하는 방법이 Editconfiguration 들어간 다음에 modify options 클릭 하고 나오는 리스트에서 Add VM Options 누르시면 옵션 추가할 수 있는 칸이 하나 나옵니다. 그 곳에 노션에 있는 아래 옵션 추가해주시면 됩니다. -javaagent:/Users/..생략../study/util/scouter/agent.java/scouter.agent.jar -Dscouter.config/Users/jo-eunho/Documents/eunho/study/util/scouter/server/conf/scouter.conf -Dobj_name=demoTomcat --add-opens java.base/java.lang=ALL-UNNAMED