묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Boot JWT Tutorial
spring boot 3.x 버전 강의도 만들어주시면 안될까요?
spring boot 3.X 버전 강의도 만들어주시면 안될까요? 정말 너무 jwt 구현할 때 정말 유용한 강의라 꼭 그래주시면 감사드릴 것 같습니다!
-
미해결실전! 스프링 데이터 JPA
하이버네이트6에서의 최적화에 이은 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]left join이 쿼리에 실어지지 않아 의문을 갖던 중https://inf.run/8ctRk 이 질문에 답변해주신걸 보고 이해했습니다. @Query(value = "select m from Member m left join m.team") Page<Member> findByAge(int age, Pageable pageable);결론적으로 위와 같이 하면 쿼리에 join문이 붙어 잘 나갑니다. 다만 count 쿼리는 여전히 아래와 같은데 이 부분도 역시 마찬가지로 하이버네이트6에서 count 쿼리에서 join 문을 알아서 빼서 최적화해준건가요?페이징 쿼리 select m1_0.member_id, m1_0.age, t1_0.team_id, t1_0.name, m1_0.username from member m1_0 left join team t1_0 on t1_0.team_id=m1_0.team_id order by m1_0.username desc fetch first ? rows only카운트 쿼리 select count(m1_0.member_id) from member m1_0
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
27강(댓글 무한 depth - CUD API 구현 & 테스트 데이터 삽입 Comment Response 관련 질문)
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님! 강의 정말 잘 수강하고 있습니다. 선생님 덕분에 기본기가 탄탄해지는 것 같아서 감사드립니다. 27강(댓글 무한 depth - CUD API 구현 & 테스트 데이터 삽입 Comment Response 관련 질문) - 24분 가량에서 Comment V2 생성을 위한 정적 팩토리 메소드의 경우 CommentResponse 책임으로 넣으셨는데, 굳이 책임을 CommentResponseV2로 넣을 정도로 큰 부분이 아니기에 하나로 넣으신건지, 아니면 프로젝트 규모적으로 보았을때 굳이 V2 Response를 생성할 정도의 규모가 아니기에 따로 만드시지 않고 하나의 Response 객체로 사용하신 것인지 궁금합니다.나중에 프로젝트 아키텍칭을 할 때 해당 내용을 기억하기위해 질문드리고자 합니다.감사합니다.
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
ExcelFileReader는 왜 존재하지 않는거지 미스터 킬구
킬구형 안녕 FlatFileReader 라는 아주 편안한 기능은 존재하는데 어째서 ExcelFileReader 기능은 존재하지 않는거지? gpt 말로는 공식 확장 모듈은 spring-batch-excel 이 존재한다고는 하는데 이거 믿고 사용해도 되는지 모르겠네 킬구형은 excel 파일 읽고 DB에 쓸 때 아파치 poi 라이브러리로 직접 파싱해?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
오타발견
그러나 JdbcCursorItemReader는 기본적으로 커서의 순반향 이동만 지원순반향->순방향근데 맨날 오타글만 올리는데 괜찮음?귀찮으면 안하고
-
해결됨Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
https 설정 질문
안녕하세요 강의 도커랑 cicd부분 보고저희 동아리 프로젝트 초기설정을 했습니다!동료가 소셜 로그인 구현한다고 해서 https 설정을 해달라고 하는데제가 예전에 배운 내용은nginx에 vi로 어떤 설정을 하고ec2 내에 certbot을 설치하는 것으로 기억합니다만약 이 강사님 이 알려주신 설정으로 이걸 하려면도커 컨테이너 들어가서 nginx에 vi로 문서를 작성하는게 맞을까요? 걱정되는게 그러면 컨테이너를 삭제후 재실행하면 문서를 또 작성해야 하는게 걱정됩니다제가 말한 방법이 맞는건지 아니면 다른 방법이 있는건지 궁금합니다ai한테도 도움을 요청했는데docker-compse.yml 에 쓰는 방식을 추천하는 것 같습니다 강사님께서 알려주신 docker-compse에 저 코드들을 붙여넣어도 괜찮을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 자료에 대해서 궁금해요
강의에서 나오는 자막들 따로 받거나 할 수는 없나요??
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다
저는 application.yml 파일에서 mysql username 과 password 를 전부 .env 파일에 넣고 $ {} 를 써서 나타냈습니다. 그래서 .env 파일은 깃허브에 올리면 안돼서 배포해도 제대로 안돌아갈것 같아서 그런데. 혹시 강사님께서는 aws 배포하실때 db username, password 와 같은 민감한 정보들은 어떻게 처리하여 배포하시는걸 추천드리나요?
-
미해결실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
analyser를 인덱스 삭제후에 설정하던데 인덱스 생성후에도 analyser 수정이 가능한가요?
analyser를 인덱스 삭제후에 설정하던데 인덱스 생성후에도 analyser 수정이 가능한가요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
오타?복붙실패
InFearLearn 서버 침입 사건: 해커 패턴 추적 작전작전 수행을 위한 실전 코드부터 살펴보자.여기코드에서 @Bean@StepScopepublic MongoCursorItemReader<SecurityLog> securityLogReader(이 아이템리더쪽 복붙하고 안다듬어서 들여쓰기 밀림
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
컨슈머 이벤트 중복 처리
안녕하세요! 자주 질문드리는데 정성껏 답변해주셔서 감사합니다! 동일한 이벤트가 중복 전송될 가능성이 있기 때문에 article-read 서비스에 이벤트 id를 통한 중복 처리 로직을 추가 하려고합니다.article-read 는 redis를 사용하고 있기 때문에 redis에 이벤트 id를 저장해 해결하려고했습니다. 예를 들어 article-read가 이벤트를 받았을때redis 에서 이벤트 id 확인동일한 이벤트 id가 저장돼 있으면 추가 처리 안하고 message ack redis 에서 이벤트 id 확인동일한 이벤트 저장된게 없으면 서비스 로직 수행서비스 로직 결과 redis 업데이트처리 완료한 이벤트 id redis 저장 이런식으로 진행하려 했으나 만약 어떠한 문제로 인해서비스 로직 결과 redis 업데이트 ( 성공 )처리 완료한 이벤트 id redis 저장 ( 실패 )하게되면 이벤트 처리는 성공했지만 처리된 이벤트 저장에는 실패해 추후에 중복 처리가 발생할 가능성이 생길 것 같습니다. 이러한 문제 해결을 위해서비스 로직 결과 redis 업데이트처리 완료한 이벤트 id redis 저장두 작업을 하나의 트랜잭션으로 묶어 처리하려고했지만 rdb 와 동작이 다르기 때문에 (롤백 기능 제공 안함 등) 적절한 방법인지 판단이 안서는 상태네요 혹시 article-read에 이벤트 중복 처리를 한다고 하면 어떻게 구현이 가능할지 여쭤보고싶습니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
messagerelayconfig클래스에서
bootstrapServers의 value값은 어디에 가져오는건가요?yml이나 properties파일은 없는 거 같은데..
-
해결됨멀티 모듈 아키텍처로 구현하는 은행 서버 핵심 기능 [ Kotlin & Spring ]
Circuit Breaker 질문
안녕하세요. circuit breaker 코드를 봤을 때 간략하게 circuit breaker가 이런거다 라고 설명해주셨지만, 추가로 궁금한 점이 있어 질문 드립니다.만약 인스턴스가 여러개인 상황에서는 로컬 상황만 보는게 아니라 전체 인스턴스 상황을 봐야할 것 같은데 이럴 떄는 circuit breaker를 어떻게 사용해야 하는지 궁금합니다. 감사합니다.
-
미해결나도! 스프링으로 인공지능을 할 수 있다(인프1탄)
이미지 생성오류 (코드업데이트가 너무 필요해보입니다..)
안녕하세요. 강의를 듣고있는 사람입니다.버전이 변경되다보니 강의 내용을 그대로 수행한다면 정상적으로 작동하는 Project들이 몇 없네요.. DALL-E 2 모델로 이미지를 생성하는 경우 오류 발생DALL-E 2 모델에서는 withQuality("hd")와 같은 옵션을 지원하지 않는다고합니다. 해당 라인을 제거해주시면 정상작동합니다.DALL-E 3 의 경우 withQuality를 지원하는데, 지정하지 앟는다면 standard 값이 기본으로 들어가며 hd를 원하시는 경우 따로if ("dall-e-3".equals(model)) { optionsBuilder.withQuality("hd"); } 위와같이 옵션을 주입하여 사용하시면 될것같습니다.
-
해결됨멀티 모듈 아키텍처로 구현하는 은행 서버 핵심 기능 [ Kotlin & Spring ]
jpa entity 질문
안녕하세요. Entity 선언 시 data class vs class 질문드리려고 합니다.아래 질문은 data class를 기반으로 했지만 사실 궁금증 시작은 "class가 엔티티에 더 맞지 않나?" 라는 생각에 질문드립니다. 질문 1. data class 선언시 프록시 질문제가 알기로 ManyToOne lazy loading할 때 프록시 기능을 사용한다고 알고 있습니다.data class가 자바 record와 마찬가지 final인 것으로 아는데 그렇다면 지연 로딩이 정상적으로 동작하지 않다고 생각됩니다.혹시 여기서는 지연 로딩을 사용하지 않아서 data class를 사용하신 것인지 궁금합니다. 질문 2. data class 사용이 맞다면 equals & hashCode 질문결궁 두 값 동일성을 비교할 때 id를 기반으로 하는 것이 성능에 좋을 것 같다고 생각됩니다.혹시 실무에서 data class 나 class 사용하실 때 id기반으로 equals와 hashCode를 오버라이딩 하지 않고 전체 필드로 하시는지 궁금합니다. 질문 3. data class 목적제가 알기로는 data class는 response와 같이 불변 데이터에 많이 쓰이는걸로 알고 있습니다.그래서 copy와 같은 메서드를 제공하는 것으로 알고 있습니다.data class를 사용할 때 물론 copy를 사용하시진 않겠지만 영속성 컨텍스트 같은 기능을 쓰려면 직접 변경해야 합니다.불변 클래스 목적과 jpa entity와 잘 맞지 않는 것 같아서 질문드립니다. 질문 4. equlas 질문만약 양방향 참조가 있는 entity라면 무한 루프에 빠질 가능성이 없는지 궁금합니다.이와 같은 이유로 2번을 질문 드렸는데 질문 2번에서 내용이 빠진 것 같아서 따로 한 번 더 질문 드립니다. 제가 실무에서 써보지 않았고 코틀린 관련해서는 경험이 부족해서 잘못된 질문이 있다면 알려주시면 다시 질문 남기겠습니다. 좋은 강의 감사합니다.감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
GlobalFilter, LoggingFilter가 동작하지 않습니다.
server: port: 8000 eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apiGateway-service cloud: gateway: server: webflux: default-filters: - name: GlobalFilter args: baseMessage: Spring Cloud Gateway WebFlux Global Filter preLogger: true postLogger: true routes: - id: user-service uri: lb://USER-SERVICE predicates: - Path=/user-service/** - id: first-service uri: lb://MY-FIRST-SERVICE predicates: - Path=/first-service/** filters: - AddRequestHeader=f-request, 1st-request-header-by-yaml - AddResponseHeader=f-response, 1st-response-header-from-yaml - name: LoggingFilter args: baseMessage: Spring Cloud Gateway WebFlux Logging Filter preLogger: true postLogger: true 다음처럼 apigateway의 설정파일을 작성하였습니다. 하지만 두 필터가 모두 동작하지 않습니다. 필터 클래스 모두 강의와 동일하게 작성하였고, first-service와 apigateway-service 모두 유레카 서버에 잘 등록되며, api 게이트웨이 또한 동작을 정상적으로 합니다. 혹시 어느 부분에서 잘못되었는 지 알 수 있을까요?
-
미해결스프링 부트 - 핵심 원리와 활용
[공유] 터미널 말고 IDE 에서 jar 실행하기
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]gradle 창에서 jar 생성(clean 클릭 후 build 클릭. build 폴더 생성 확인) 생성된 jar 우클릭 후More Run/Debug > Modify Run Configuration 클릭working directory 을 jar가 있는 폴더로 변경 후 OK 클릭 (중요!)jar 파일 우클릭 후 실행 클릭 [참고]spring boot가 jar가 있는 폴더의 application.properties를 찾아서 읽어 주는 구조가 아니라 java -jar 를 실행하는 current working directory에서 application.properties를 읽어주는 것이다 보니 터미널로 실행할 때는 cd jar가있는다렉토리 로 working directory 수동 변경해 준 후 java -jar를 실행해 줘야 하는데인텔리제이 Working directory 에 jar 폴더를 입력해주면 인텔리제이가 알아서 working directory를 변경해줍니다.
-
해결됨알면 칼퇴하는 Spring Boot 백엔드 바이브 코딩 맛보기
인텔리제이 플러그인 연결 안 됨
왤까요 저는 같은 SCP -SERVER 플러그인을 받았는데 이렇게 뜨고 클로드 연결도 안 되네요 ㅠㅠ아 저는 커뮤니티가 아니라 울티메이트입니다 ㅠ
-
해결됨코드로 배우는 React 19 with 스프링부트 API서버
간단한 코드 질문!!
private String makeTempPassword() { StringBuffer buffer = new StringBuffer(); for(int i = 0; i < 10; i++){ buffer.append( (char) ( (int)(Math.random()*55) + 65 )); } return buffer.toString(); } 해당 코드에서 StringBuilder가 아닌 StringBuffer를 사용하는 이유가 따로 있나요??성능적으로 큰 차이는 없겠지만 혹시 특별한 이유가 있는지 궁금해서 여쭤봅니다!!
-
해결됨장애를 허용하는 견고한 시스템 만들기
[데이터 버저닝을 활용한 멱등성 처리] 멱등성 보장을 위한 version 비교 질문
안녕하세요 준형님! 우선, 강의 정말 잘 들었습니다. 정말 정말 많이 배웠습니다 🙇🏻🙇🏻🙇🏻 다름이 아니라,데이터 버저닝 파트에서 컨슈머의 멱등성을 보장하기 위해주문 서비스가 재고 차감 이벤트에 version을 담고,상품 서비스에서는 JPA가 관리하는 상품 version과 이를 동등성 비교하여중복 소비를 방지하는 방식에 대해 질문드리고 싶습니다. 이 접근 방식에서 많은 인사이트를 얻었지만,상품의 version을 주문 서비스가 반드시 알아야 한다는 점은 조금 와닿지 않았습니다.테스트에서는 version = 0부터 시작하니 문제가 없어 보였으나,여러 이유로 두 version 값이 어긋나면 오히려 소비해야 할 이벤트까지 멱등 처리되어 버릴 수 있다고 생각했습니다.그렇다고 이를 해결하기 위해 주문 서비스가 상품 서비스로부터 version 이벤트를 직접 받아 관리하는 것도 과한 방식처럼 느껴지는데요, 이 부분에 대해 준형님의 의견을 들을 수 있다면 좋을 것 같습니다.시간 편하실 때 부담없이 답변 주시면 감사하겠습니다 🙂