
WebSocket, STOMP in springboot
무료
초급 / Spring Boot, stomp-websocket, Java
5.0
(5)
1시간만 투자하면 springboot 에서 WebSocket, STOMP 관련 핵심 사항을 모두 배울 수 있습니다.
초급
Spring Boot, stomp-websocket, Java
삼성전자, LG CNS, LG 전자 등을 거쳐 현재는 대기업 S 사에서 백엔드 개발업무를 하고 있습니다.
강의준비를 하면서 스스로 더 깊이 알게 되어 강의하는 걸 좋아하는 개발자입니다. 🙂 😃 😆
youtube: https://www.youtube.com/@HelloWorldStudy
WebSocket, STOMP in springboot
무료
초급 / Spring Boot, stomp-websocket, Java
5.0
(5)
1시간만 투자하면 springboot 에서 WebSocket, STOMP 관련 핵심 사항을 모두 배울 수 있습니다.
초급
Spring Boot, stomp-websocket, Java
그대는 springboot 를 제대로 활용하고 있는가?
무료
초급 / Spring Boot, asynchronous-programming, trace-logging
4.9
(10)
springboot 자동설정으로 해결되는 문제들을 확인해보고, 특별한 이유가 없으면 springboot 자동설정과 연동되도록 개발해야 겠구나! 라고 깨닫게 됩니다.
초급
Spring Boot, asynchronous-programming, trace-logging
1시간만에 끝내는 virtual thread in spring boot
무료
초급 / Spring Boot, Java, virtual thread, thread, 동시성
4.9
(27)
spring boot 3.2.0 ( + JDK 21 )부터 지원되는 virtual thread 를 빠르게 알아보고, 성능개선에 대한 힌트를 1시간만에 무료로 얻을 수 있습니다.
초급
Spring Boot, Java, virtual thread
1시간만에 끝내는 spring boot rest api 서비스 개발
무료
초급 / Spring Boot, swagger, mybatis, JPA
4.9
(89)
spring, spring boot 를 하나도 모르는 개발자를 위한 spring boot 로 rest api 를 한시간만에 만드는 방법을 라이브코딩으로 보여드립니다.
초급
Spring Boot, swagger, mybatis
spring boot actuator 파헤치기
무료
초급 / Spring, Spring Boot, spring-boot-actuator
5.0
(9)
spring boot actuator 기본 설정/사용법 및 나만의 custom endpoint와 metrics를 만들 수 있는 방법을 배우게 됩니다. 사용법만 익히는 게 아닌 내부 코드 및 spring boot 기본 지식도 함께 다루어 조금 더 깊이 있는 이해를 할 수 있게 됩니다.
초급
Spring, Spring Boot, spring-boot-actuator
질문&답변
item을 id로 get하는데 1을 넣었을 때 500에러가 나와요.
예외가 발생한것 같은데, 예외발생시점의 intellj 의 console 에 찍힌 stacktrace 를 보면 에러난 코드 및 라인을 알 수 있습니다. 한번 봐보세요. 예상되는 원인은...DB 에 1 이라는 id 값으로 된 데이터가 없는데, 이걸 읽으려다가 null pointer exception 이 발생할 수 있습니다. 코드를 보면 select 만 이고 insert 문은 없는데, DB 에 값은 수동으로 쿼리문으로 입력했나요?보다 정확한 원인은 stacktrace 를 보면 알 수 있습니다. :)
질문&답변
ThreadPoolTaskExecutor에서의 가상스레드
좋은 질문이네요. SimpleAsyncTaskExecutor를 아래처럼 spring 에서 제공하는 builder 를 이용하지 않고 직접 만들면 virtual thread 를 사용하지 않습니다.@Bean public SimpleAsyncTaskExecutor taskExecutor(SimpleAsyncTaskExecutorBuilder builder) { return new SimpleAsyncTaskExecutor(); // return builder.build(); }아래처럼 virtual thread factory 를 설정해서 bean 을 만들었다면 virtual thread 로 동작합니다.new SimpleAsyncTaskExecutor(factory);결국, SimpleAsyncTaskExecutor 자체는 virtual thread 를 사용할수도 있고, 아닐수도 있습니다. 해당 객체를 생성할 때 어떤 설정을 했냐에 따라 달라지는 것이죠.yml 에 virtual thread 를 사용하겠다고 설정을 해두었기에, spring 에서 만든 thread pool 관련 builder bean 들은 virtual thread 사용하는 설정이 되어 있어서, builder 를 통해 만들면 항상 virtual thread 를 사용합니다. ThreadPoolTaskExecutor 의 경우에도 아래처럼 spring 이 만든 builder 를 통해 만든다면 virtual thread 를 사용합니다.@Bean public ThreadPoolTaskExecutor threadPoolTaskExecutor(ThreadPoolTaskExecutorBuilder builder) { return builder.build(); } 도움이 되셨길 바랍니다. :) *주의할점은 task scheduler 도 내부적으로 thread pool 을 사용하므로 ,TaskExecutor 공부할때는 TaskScheduler 는 disable 해두고 공부하는게 좋습니다. ( 특정 상황에서 @Async 에서TaskExecutor 가 아닌 taskScheduler 의 thread pool 을 사용할 수 도 있는데 , 이 경우 처음 공부하는 입장에서는 상당히 혼란스럽게 느껴집니다.)
질문&답변
swagger spring boot 3 적용 run 실행 에러
제가 방금 springboot 3.4.3 으로 변경하고swagger 2.8.5로 변경하면 아래처럼 잘 다운받아집니다. github 에 올린 코드 그대로를 사용했을 때 문제가 있는지, 버전만 올리면 문제인지 등을 확인해보세요.(사진)
질문&답변
다음 강의를 준비하신다면 음질좀 높여주실 수 있으신가요..?ㅠㅠㅠ
본 강의가 제가 인프런에 올린 첫번째 강의라서 음량이 낮게 녹화되었습니다. ㅡㅜ 제가 이후에 올린 다른 강의들은 음량문제는 해결하였습니다. 저도 속상하네요 ㅜㅡ
질문&답변
Invalid bound statement (not found): com.helloword.fitstStart.mapper.QuickMapper.findById 에 대한 질의 입니다.
1) mybatisX 플러그인 설치시 mapper xml 이동이 잘 되나요? 2) yml 에 xml 파일의 위치를 정확히 설정했나요? 오타등등3) xml 의 namespace 부분에 java package + class name 에 오타가 없나요?4) 위 에러 코드를 보면 firstStart 가 아니라 fitstStart 라고 오타가 있는데, java, xml 모두 동일한 단어를 썼나요? 위 체크를 해도 여전히 알수 없으면 github 에 전체 코드 push 한 후 알려주시면 확인해보겠습니다.
질문&답변
pinned 확인법
https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html#GUID-2BCFC2DD-7D84-4B0C-9222-97F9C7C6C521위 oracle guide 에는 명확히 적혀있지 않아서 저도 잘 몰랐네요. 제보 감사합니다.
질문&답변
1강 성능비교 질문
네 맞습니다. 500개로 늘리면 둘다 성능이 비슷하게 나올겁니다. 그러나 500개가 아니라 1만개 처럼 숫자가 너무 커져버리면 virtual thread 가 훨씬 빨라집니다. 제일 처음나오는 성능 비교영상은 intro 성격이라서 자세한 설명을 생략한것이고, 뒤쪽 강의 다 보시면 특정 갯수 이상의 platform thread 생성은 성능 한계가 있는걸 알 수 있을겁니다. :)
질문&답변
Performance 테스트에서 CPU 작업도 Virtual이 빠른것 같습니다
2000바퀴라는건 platform thread pool size도 2000개로 설정했을것 같습니다. 너무 많은 platform thread 를 생성했기에 그 자체만으로 thread 생성비용 및 context switching 비용이 많이 들어서 오히려 느려진것 같습니다. 2000개가 아닌 100개, 300개 정도 적정(?)수준의 thread pool 에서는 platform thread 가 더 빠르게 나올겁니다.
질문&답변
스케쥴러 질문드립니다
virtual thread 가 생성될 때 마다 숫자가 하나씩 증가합니다.virtual thread 는 생성->수행->삭제 되므로, 5초마다 새로운 virtual thread 가 생성되어 번호가 1,2,3... 식으로 증가하게 됩니다.virtual thread 실행시 platform thread 를 사용하는데, 질문자님의 cpu core 수는 10개여서 ForkJoinPool-1-worker-1 부터 ForkJoinPool-1-worker-10 까지 나오는 걸로 보입니다. ForkJoinPool 은 platform thread pool 이며, cpu core 수 만큼 만들어집니다.
질문&답변
mybatis의 hashmap 데이터 호출시 대문자로 불러와야 되나요?
아래처럼 ID, NAME 을 가져오는 거라면 map.get("ID"); 처럼 대문자로 적어줘야 합니다. select ID, NAMEfrom XXX 대문자 대신 소문자를 쓰고 싶으면 쿼리문을 아래처럼 as 를 이용해서 소문자로 적어주면 됩니다.select ID as id, NAME as namefrom XXX