inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

구분자로 분이된 형식의 파일 읽기 소스 오류 문의

미해결

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

☠ 질문 가이드 ☠ " 시스템 종결자의 지령이다. 질문하기 전에 이 규칙들을 숙지하도록. " 1. 코드 실행에 문제가 있다고? 전체 코드를 보여줘라. 단편적인 에러 메시지만으로는 아무것도 알 수 없다. 실행 환경도 알려달라. JDK 버전, 스프링 버전 등을 함께. 2. 오타를 발견했나? 즉시 제보하도록. 자네같은 날카로운 눈을 가진 동료가 필요하다. 3. 질문은 자유롭게 "이런 걸 물어봐도 될까요?" 같은 소심한 멘트는 불필요하다. 궁금한 건 바로 물어봐라. 배치 시스템에 소심한 건 없다. 4. 검색은 기본 비슷한 질문이 있는지 먼저 확인하도록. 하지만 이해가 안 된다면? 주저하지 말고 추가 질문해라. GPT가 거짓말친다고? 나에게로 오라. 💀 5. 서로 존중하라 여기는 모두가 시스템을 지배하고자 하는 동료들이다. 서로를 이해하고 돕는 문화를 만들어가자. ⛔ 인프런 서비스 자체에 대한 문의는 1:1 문의하기로. 💀 그쪽 서버는 막강한 CTO가 있어 건드리지 않는 게 좋을 거다 💀 - KILL-9 올림 구분자로 분리된 형식의 파일 읽기 org.springframework.batch.item.file.FlatFileParseException: Parsing error at line: 2 ... ... Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'severity' of bean class [com.system.batch.onego_batch.config.SystemFailureJobConfig$SystemFailure]: Bean property 'severity' is not writable or has an invalid setter method. 위와 같은 에러가 나는데 여기서 아래 소스 보면 set method가 없어서 그러는데 위에 @Data를 추가하면 될거 같아요! public static class SystemFailure { private String errorId; private String errorDateTime; private String severity; private Integer processId; private String errorMessage; // setter, toString() rm -rf } P.S. 존댓말로 질문하면 rm -rf를 시전한다. 편하게 물어보도록. 강의에서 놓친 부분이나 더 보충하면 좋을 내용도 자유롭게 제보하라. 너희의 피드백이 이 강의를 더 강력하게 만든다. 🔥 시스템을 함께 진화시켜 나가자. 🔥

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
nhs0912 댓글 3 좋아요 1 조회수 170

api모듈에대해 문의드립니다.

해결됨

실시간 채팅 서버 구축: 분산 처리부터 성능 최적화까지

안녕하세요, 선생님! 좋은 강의 감사합니다. 사이드 프로젝트를 진행하기 위해 이 강의를 신청해서 열심히 듣고 있습니다. 강의를 들으면서 궁금한 점이 생겨서 질문 드립니다. 제가 예매 시스템 을 개발하려고 하는데, 다음과 같은 여러 기능들을 구현해야 합니다: 채팅 기능 (강의에서 다루신 Chat API) AI 추천 기능 (Spring AI에서 제공하는 API) 데이터 수집 기능 (크롤링 API) 기타 예매 관련 API들 이런 상황에서 모듈 구조 설계 에 대해 고민이 됩니다. 방법 1: 모든 API 기능들을 하나의 API 모듈에서 관리 방법 2: 기능별로 모듈을 나누고, 각 모듈 내에서 해당 기능의 API들을 그룹화 어떤 방식이 더 적절한 설계일까요? 혹시 이런 다중 기능을 가진 시스템에서의 모듈 설계에 대한 조언을 해주실 수 있을까요? 감사합니다!

  • spring
  • kotlin
  • spring-boot
  • websocket
이경용 댓글 2 좋아요 0 조회수 122

(재업) 선생님 제발 도와주세요

미해결

Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기

일단 여기서 이렇게 뜨구요 이거 전에 Spring Initializr 여기서 설정하고 그거 열어줘서 작업하는건데 저렇게 뜨는데 어떻게해야하나요... 혹시나 PracApplication.java 에서 실행하면 Execution failed for task ':restapi.prac.PracApplication.main()'. > Process 'command 'C:\Program Files\Java\jdk-21\bin\java.exe'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org . BUILD FAILED in 12s 3 actionable tasks: 1 executed, 2 up-to-date 이렇게 또 에러가 뜨구요... 추가로 ai답변으로 build.gradle 의 dependencies 확인하래서 이거 확인했는데 이상없는거 같고 정상적으로 C:\Program Files\Java\jdk-21\bin\java.exe 이 경로에 있습니다. 마지막으로 이렇게 build.gradle을 연 상태로 run을 하면되는데 (localhost:8080 은 안열림) application.properties 에서는 run 버튼 자체가 활성화가 안되있고 PracApplication.java 에서는 run이 활성화는 되있지만 계속 제가 말헀던 에러가 뜹니다 제발 ai답변말고 선생님이 답변해주시면 감사하겠습니다

  • mysql
  • rest-api
  • spring-boot
  • jpa
  • react.js
이DH 댓글 1 좋아요 0 조회수 168

앞에 내용 다 따라했는데 실행이안됩니다 자꾸

미해결

Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기

일단 여기서 이렇게 뜨구요 이거 전에 Spring Initializr 여기서 설정하고 그거 열어줘서 작업하는건데 저렇게 뜨는데 어떻게해야하나요... 혹시나 PracApplication.java 에서 실행하면 Execution failed for task ':restapi.prac.PracApplication.main()'. > Process 'command 'C:\Program Files\Java\jdk-21\bin\java.exe'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org . BUILD FAILED in 12s 3 actionable tasks: 1 executed, 2 up-to-date 이렇게 또 에러가 뜨구요...

  • mysql
  • rest-api
  • spring-boot
  • jpa
  • react.js
댓글 1 좋아요 0 조회수 132

실행시 에러

미해결

Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기

실행시 이런 에러가 뜹니다..

  • mysql
  • rest-api
  • spring-boot
  • jpa
  • react.js
이DH 댓글 1 좋아요 0 조회수 118

최초에 서버 키는게 안됩니다 ㅠㅠ

미해결

Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기

스프링 오토컨피규어 이거 치는것도 회색글자로 저렇게 나오고 위에 spring boot 구성 파일은 얼티메이트에서 지원됩니다 이런것도 뜨고... 실행버튼도 안됩니다 ㅠㅠ

  • mysql
  • rest-api
  • spring-boot
  • jpa
  • react.js
이DH 댓글 1 좋아요 0 조회수 134

윈도우 gradlew build 실행 안됨

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] git bash 연동했고 터미널을 열어서 가장 먼저 ./gradlew를 입력하면 위 과정까지 수행이 됩니다. 하지만 그 다음으로 1. gradlew build (command not found), 2. ./gradlew build (Failed이라 뜸) gradlew (command not found) gradlew.bat (command not found) 뭘 입력해도 더이상 진행이 안됩니다. 도와주세요 선생님

  • java
  • spring
  • mvc
  • spring-boot
유영준 댓글 1 좋아요 0 조회수 474

react 소스 부탁드립니다!

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

강의 너무 잘 보고 있습니다. 덕분에 처음 서버 개발할 때 큰 도움 되었습니다. 좋은 강의 감사합니다! 메일 : kei02012@naver.com

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
김백곰 댓글 2 좋아요 0 조회수 79

MemberRegisterRequest 의 검증 방식으로 @Valid 와 초기화 스크립트의 차이가 무엇인가요?

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요, 토비님! 훌륭한 강의 너무너무 잘 듣고 있습니다. 토비님의 고견 덕에 제 개발 세계관을 정리하는데 도움이 많이 되고 있습니다. 감사합니다. 강의의 데이터 검증 파트에서 질문이 있습니다. MemberRegisterRequest 의 검증 방법으로 jakarta.validation 을 사용하도록 설명해주셨는데요. (1) MemberRegisterRequest 의 생성자 또는 팩토리 매서드에서 값을 검증하는 방식과 validation 어노테이션을 이용하는 방식을 어떻게 구분해서 쓰는지? 와 (2) validation 어노테이션이 활용되는 영역의 범위가 궁금합니다. 저는 코틀린 스프링부트로 강의를 따라가고 있어서 코틀린 기준으로 예시를 들면, 보통 저렇게 도메인 레이어에서 비즈니스 로직에 직접 사용되는 데이터를 검증하는 경우에는 코틀린의 init 블록 내에 비즈니스 관련 데이터 검증 로직을 넣어서 해당 클래스 객체의 데이터 정합성이 항상 보장되게 해왔는데요. (게다가 도메인 레이어의 클래스다보니 더욱 타 기술 의존 없이 검증하는 게 좋다고 생각해서 init 블록을 애용해왔습니다.) 반대로, Valid 는 외부로부터 입력 받은 데이터들의 아주아주 기본적인 데이터 타입 검증 용도(Nullable, 숫자, 이메일, 공백 여부 등) 정도로만 사용해왔습니다. 애초에 제공해주는 어노테이션의 기능이 비즈니스 의미를 담기엔 턱없이 부족해서, "데이터가 비즈니스 의미상으로는 틀릴 수 있어도, 타입 자체는 맞아" 정도만 보장해주는 용도라고 느꼈습니다. 그래서 강의에서 어플리케이션 서비스의 파라미터나 도메인 객체의 상태를 검증하는 용도로 사용하시는 모습이 조금 낯설게 느껴졌습니다. 어플리케이션 서비스 파라미터에 들어있는 데이터는 이미 컨트롤러에서 기본 검증은 끝난 데이터들이라고 생각해서요. 게다가 Valid 를 어플리케이션 서비스에서도 쓰기 시작하면, 컨트롤러와 서비스에서 중복 검사를 하게 될 것 같습니다. 이런 점들에 대해서 어떻게 생각하시고 어떻게 구분하시는지 그 기준이 궁금합니다. Q&A 의 다른 질문들에 대한 토비님의 답변들을 보면서도 많이 배우고 있습니다. 고견 감사합니다! 🙂

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
woonge 댓글 1 좋아요 0 조회수 378

Application.java 실행이 안돼요

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Application.java 파일 실행버튼이 비활성화 되어 있습니다. 버전은 21을 쓰고 있어요

  • java
  • spring
  • mvc
  • spring-boot
유영준 댓글 0 좋아요 0 조회수 171

Application.java 실행이 안돼요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 스프링부트에서 프로젝트를 생성하고 Application.java 를 실행하려고 하니까 실행버튼이 비활성화 되어있습니다. jdk 버전 23을 사용하고 있는데 왜 안되는건지 모르겠습니다. 해당 화면 사진입니다.

  • java
  • spring
  • mvc
  • spring-boot
유영준 댓글 2 좋아요 0 조회수 114

4일차 과제 'SQLSyntaxError: Table not found Error' 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

4일차 과제의 문제 1번을 해결하려고 코드를 작성하고 Table도 생성해서 run 해보았는데, 자꾸 Table not found 에러가 뜨면서 500 internal error가 발생합니다. 이 에러 때문에 테이블도 3번 다시 생성하고, show tables 했을 때도 table이 모두 잘 출력됩니다. 대소문자 바꿔서도 다 해봤는데 왜 이런 오류가 뜨는지 모르겠습니다..ㅜㅜ 도와주세요ㅠ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
댓글 2 좋아요 0 조회수 90

만들면서 배우는 클린 아키텍처 관련된 질문

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

강의에서도 잠깐 언급되지만, 전체적인 강의 내용이 만들면서 배우는 클린 아키텍처의 저자가 주장하는 내용과는 지향하는 바는 같지만 그 구현에 있어서 어느정도 거리가 있다고 느껴지는데요..! "만들면서 배우는 클린 아키텍처" 이 책을 읽으면서도 저자가 주장하는 내용이 좋은 아키텍처라는 생각이 들었었고, 그 지름길에 대해서도 많은 생각이 들었습니다. 그러다보니 강의에서 언급해주시는 일부 내용들은 이 지름길을 사용했다는 것으로도 저한테는 느껴지기도 하는데요. 하지만 또 다른 측면으로 토비 선생님께서 강의에서 말씀하시는 내용들이 매우 타당하고 이것 또한 매우 클린하며 헥사고날 아키텍처의 장점을 매우 잘 살리고 있다는 생각도 들었습니다. 제가 궁금한 건 "만들면서 배우는 클린 아키텍처" 에서 저자가 주장하는 내용들에 대해 토비 선생님께서는 어떻게 생각하고 계시는지 궁금합니다! 회사에서 많은 시니어 분들이 헥사고날과 관련해서는 저자마다 주장하는 내용이 다른 경우가 많으니 최대한 많이 접하고 스스로 기준을 삼는 것이 좋다라고 조언을 주시기도 하셔서 더욱 궁금하네요 ㅎㅎ:)!

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
dydalehdxo 댓글 3 좋아요 0 조회수 295

Sink Connect시 테이블 생성아 안됩니다

해결됨

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

현재 my-sink-connect 등록도 잘되었고 아무 문제없이 작동을 잘 합니다. 또한 파워쉘을 통해서 데이터가 shema형태로 잘 통신되는 것도 확인 잘 되었습니다. 하지만 my_topic_users 테이블이 생성되지 않아 문제가 생겼습니다. 오류 메시지나 로그 또한 아무것도 나오지 않아 해결을 어떻게 할지 잘 모르겠습니다. PS C:\Work\kafka_2.12-3.4.0> .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic my_topic_users --from-beginning {"schema":{"type":"struct","fields":[{"type":"int32","optional":false,"field":"id"},{"type":"string","optional":true,"field":"user_id"},{"type":"string","optional":true,"field":"pwd"},{"type":"string","optional":true,"field":"name"},{"type":"int64","optional":true,"name":"org.apache.kafka.connect.data.Timestamp","version":1,"field":"created_at"}],"optional":false,"name":"users"},"payload":{"id":1,"user_id":"user1","pwd":"1111","name":"userA","created_at":1753221466000}} {"schema":{"type":"struct","fields":[{"type":"int32","optional":false,"field":"id"},{"type":"string","optional":true,"field":"user_id"},{"type":"string","optional":true,"field":"pwd"},{"type":"string","optional":true,"field":"name"},{"type":"int64","optional":true,"name":"org.apache.kafka.connect.data.Timestamp","version":1,"field":"created_at"}],"optional":false,"name":"users"},"payload":{"id":2,"user_id":"user2","pwd":"2222","name":"userB","created_at":1753221589000}} mysql> use mydb; Database changed mysql> show tables; +----------------+ | Tables_in_mydb | +----------------+ | orders | | users | +----------------+ { "name": "my-sink-connect", "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector", "delete.enabled": "false", "connection.password": "test1357", "auto.evolve": "true", "connection.user": "root", "tasks.max": "1", "topics": "my_topic_users", "value.converter.schemas.enable": "true", "name": "my-sink-connect", "auto.create": "true", "connection.url": "jdbc:mysql://localhost:3306/mydb" }, "tasks": [ { "connector": "my-sink-connect", "task": 0 } ], "type": "sink" }

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
댓글 1 좋아요 0 조회수 66

배포 오류 질문

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

안녕하세요 강사님 제가 실전이라 생각하고 프론트랑 백엔드를 배포 했습니다. auto at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.5.3.jar:3.5.3] Caused by: org.springframework.data.redis.listener.adapter.RedisListenerExecutionFailedException: org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis at org.springframework.data.redis.listener.RedisMessageListenerContainer.lazyListen(RedisMessageListenerContainer.java:383) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.listener.RedisMessageListenerContainer.start(RedisMessageListenerContainer.java:361) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:405) ~[spring-context-6.2.8.jar:6.2.8] ... 19 common frames omitted Caused by: org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1858) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1789) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceC Redis 에러 (백엔드 에러는 이렇게 뜨고) 프론트 엔드 (로그인 하고 들어가는 거 잘됩니다. 채팅만 치면 저렇게 뜹니다.) EC2에서 redis 접속은 잘 됩니다. 프론트는 S3+cloudfront (도메인 적용 안함)를 통해 배포를 했고 둘다 https 는 적용했습니다. 백엔드는 Redis(ElastiCache(실시간 PubSub 기능을 위해) + EC2+RDS +nginx(https)+ 깃헙 액션으 로 배포했고 몇시간 쨰 하는데 저 에러가 뜹니다. 백엔드 배포 자체는 /opt ~ 를 통해서 배포 했습니다. 혹시 프론트 배포가 잘 못 된건가요? S3+cloudfront 면 안될수도 있나요? StompWebSocketConfig package org.example.javademo.chatserver2.chat.config; import org.springframework.context.annotation.Configuration; import org.springframework.messaging.simp.config.ChannelRegistration; import org.springframework.messaging.simp.config.MessageBrokerRegistry; import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker; import org.springframework.web.socket.config.annotation.StompEndpointRegistry; import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer; @Configuration @EnableWebSocketMessageBroker public class StompWebSocketConfig implements WebSocketMessageBrokerConfigurer { private final StompHandler stompHandler; public StompWebSocketConfig(StompHandler stompHandler) { this.stompHandler = stompHandler; } /** * 클라이언트가 WebSocket으로 접속할 수 있는 endpoint 설정 */ @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/connect") .setAllowedOrigins( ) // SockJS를 통해 ws가 아닌 환경에서도 연결 가능하게 설정 .withSockJS(); } /** * STOMP 메시지 브로커 설정 */ @Override public void configureMessageBroker(MessageBrokerRegistry registry) { // /publish 로 시작하는 메시지는 @MessageMapping 메서드로 라우팅 registry.setApplicationDestinationPrefixes("/publish"); // /topic 으로 시작하는 메시지는 메시지 브로커를 통해 구독자에게 전달 registry.enableSimpleBroker("/topic"); } /** * 클라이언트 → 서버 (inbound) 메시지 처리 쓰레드 풀 설정 */ @Override public void configureClientInboundChannel(ChannelRegistration registration) { registration.taskExecutor() .corePoolSize(10) .maxPoolSize(20) .keepAliveSeconds(60); } /** * 서버 → 클라이언트 (outbound) 메시지 처리 쓰레드 풀 설정 */ @Override public void configureClientOutboundChannel(ChannelRegistration registration) { registration.taskExecutor() .corePoolSize(10) .maxPoolSize(20) .keepAliveSeconds(60); } // 인증 등을 처리하고 싶을 경우 stompHandler 등록 (현재 주석처리) // @Override // public void configureClientInboundChannel(ChannelRegistration registration) { // registration.interceptors(stompHandler);... // } } 이거는 조금 수정했습니다. RedisConfig package org.example.javademo.chatserver2.common.configs; import org.example.javademo.chatserver2.chat.service.RedisPubSubService; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.listener.PatternTopic; import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.data.redis.listener.adapter.MessageListenerAdapter; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisConfig { @Value("${spring.data.redis.host}") private String host; @Value("${spring.data.redis.port}") private int port; // 연결 팩토리 생성 @Bean @Qualifier("chatPubSub") public RedisConnectionFactory chatPubSubFactory() { RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(); config.setHostName(host); config.setPort(port); return new LettuceConnectionFactory(config); } // String 기반 Redis 템플릿 @Bean @Qualifier("chatPubSub") public StringRedisTemplate stringRedisTemplate(@Qualifier("chatPubSub") RedisConnectionFactory connectionFactory) { return new StringRedisTemplate(connectionFactory); } // 메시지 수신 처리 리스너 어댑터 @Bean public MessageListenerAdapter messageListenerAdapter(RedisPubSubService redisPubSubService) { return new MessageListenerAdapter(redisPubSubService, "onMessage"); } // 수신 채널 주제 설정 @Bean public PatternTopic chatTopic() { return new PatternTopic("chat"); } // 메시지 수신을 처리하는 리스너 컨테이너. @Bean public RedisMessageListenerContainer redisMessageListenerContainer( @Qualifier("chatPubSub") RedisConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter, PatternTopic chatTopic ) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.addMessageListener(listenerAdapter, chatTopic); return container; } // (선택) Object 기반 Redis 템플릿 @Bean public RedisTemplate<String, Object> redisTemplate(@Qualifier("chatPubSub") RedisConnectionFactory connectionFactory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(connectionFactory); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return template; } } ElastiCache로 접속은 굉장히 잘 됩니다. (EC2 내부에서는) 문제는 이게 UI 에 왜 안 뜨는지 모르겠습니다.

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
KMC 댓글 2 좋아요 0 조회수 168

17강 강의중 문의드립니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요 강의 실습중 문의드립니다. 강의랑 똑같이 하던중에 저에게만 에러가 나는부분이 있어 문의드립니다. @Override public Long register(TodoDTO todoDTO) { Todo todo = dtoToEntity(todoDTO); dtoToEntity에서 에러가 발생합니다. Cannot invoke "java.lang.Long.longValue()" because the return value of "com.project.reactserver.dto.TodoDTO.getTno()" is null 에러가 발생하는데 당연히 tno값을 안넣었으니 null인데 강사님 강의에서는 잘 진행이 되는데 뭐가 문제인지.. 물론 TodoDTO에는 @Data 어노테이션도 작성했고 Setting에서 어노테이션 활성도 확인했습니다.

  • react
  • typescript
  • spring-boot
  • jpa
  • jwt
댓글 2 좋아요 0 조회수 127

안녕하세요 토비님

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

질문이 있어 남깁니다. 30. 회원 애플리케이션 기능 추가 강의 중 Activate 메서드를 작성하면서 설명해주신 Spring Data Jpa 사용시 save를 사용해야 한다고 공식문서에 나와있다고 하셨는데 해당 문서에 대한 링크를 알수있을까요? save를 안티패턴이라고도 설명을하고 불필요한 오버헤드 발생에 대해서는 어떻게 생각하시나요? 강의의 내용 처럼 JpaRepository가 아닌 Repository를 사용 하는경우에는 필수적으로 save를 해야 하나 JpaRepository의 경우는 Jpa 자체에서는 save라는 것이 없기 때문에 새로운 엔티티를 생성할때만 사용을하고 업데이트의 경우는 생략을 해야하는 것일까요?

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
홀리몰리 댓글 3 좋아요 3 조회수 1860

좋아요가 없는 경우 init으로 최초 생성 시 질문

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요. 좋아요가 없는 경우 팩토리 메소드로 좋아요 객체를 생성하고 영속시키는 부분은 이해가 되었습니다. 그런데 비관적 락의 select for update 를 할 때 데이터가 없으면 row 도 없으니까 락이 안잡히지 않나요? row가 존재해야만 락이 생성되는게 아닌지 궁금합니다. 그리고 이 경우 신규 데이터를 생성할때 0으로 초기화 하고 1을 증가시켜 저장할 때 여러 요청이 있게 되면 다시 경쟁 상태에 놓이게 되는게 아닌가요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
Woo-seok Choi 댓글 2 좋아요 0 조회수 128

커버링 인덱스 미사용

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요 강사님, 강의 정말 잘 듣고 있습니다! 기존에는 항상 커버링 인덱스를 활용하셨었는데, comment_v2 인피니트 스크롤에서는 서브쿼리를 빼고 바로 전체 데이터를 조회하시더라구요. 혹시 특별한 이유가 있을까요? 커버링 인덱스를 일부러 포기한 구조인지, 아니면 path 기반 설계에서는 서브쿼리 자체가 필요 없어졌기 때문인지 궁금합니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
박상추 댓글 2 좋아요 0 조회수 104

선생님 안녕하세요

해결됨

이거 하나로 종결 - 32시간 고품질 스프링 풀스택 웹 개발

선생님 안녕하세요 무료강의 들으면서 말도 안 되는 구성에 말도 안 되는 가격으로 또 처음 출시시 할인까지 해주셔서 너무 감사합니다. 이전 풀스텍 강의 바로 결제했고, 다른거 하면서 무료강의부터 듣고 학습중인데 이번에 나온 리액트 강의도 당연 구매해서 학습할 예정인데, 이 전에강의는 수강기간이 무제한으로 나와있던데 지금 리액트 포함 강의는 36개월만 들을수 있는건가요? 물론 몇회독을 할수있는 시간이긴한데, 전에 강의랑 비교해서 이 강의는 수강기간이 무제한이 아니라 문의글 남겨봅니다. 항상 감사합니다.

  • HTML/CSS
  • javascript
  • jsp
  • mysql
  • spring-boot
zoseonghun 댓글 2 좋아요 0 조회수 166

인기 태그

인프런 TOP Writers

주간 인기글