inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

fetch join DISTINCT 중복제거

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

fetch join 부분이 조금 어렵게 느껴져서, gpt에게 물어보며 공부했습니다. 강의에서 fetch join으로 나온 중복 데이터를 DISTINCT 키워드를 이용해서 제거해주시는 부분을 보았는데, gpt가 다음과 같이 설명해주는 것을 보았습니다. DISTINCT 키워드가 SQL과 JPA 양쪽에서 다르게 동작하기 때문에 완전한 중복 제거가 보장되진 않습니다. 이 말이 맞다면 현업에서는 이런 문제를 어떤 식으로 해결하는지 궁금합니다!

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩터링
박지원 댓글 2 좋아요 1 조회수 149

실제 실무에서도 이런식으로 쿼리를 작성하는지 궁금합니다!

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 향로님의 추석 챌리지에서 우연히 제목을 보고 바로 구매했는데 아직 완강하지는 못했지만 정말 좋은 강의 같습니다! 선배 개발자님이 개발하시는 느낌으로 보고있습니다! ㅎㅎ 궁금한 점은 혹시 실무에서도 이런식으로 서브쿼리를 이용해서 대규모 데이터에 대해서 처리를 하는지가 궁금해져서 질문 남겨봅니다!

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
g_a_m_e_ 댓글 2 좋아요 0 조회수 91

인메모리 DB, 테스트 컨테이너 선택 기준이 있으신지 궁금합니다

미해결

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

강의에서는 H2 인메모리 DB를 이용해 테스트를 진행하셨는데, 실무에서는 테스트 환경에서 실제 MySQL이나 PostgreSQL 같은 실제 운영 DB와 동일한 컨테이너 기반 테스트 DB를 사용하는 경우도 많은 것 같습니다. 실무에서는 인메모리 DB와 컨테이너 DB 중 어떤 상황에서 어떤 것을 선택하시는지, 선택 기준이나 장단점에 대해 조언을 받을수 있을까요?

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
서진 댓글 2 좋아요 0 조회수 93

Path Enumeration 방식 적용 후 redis 적용 방법 관련 질문

해결됨

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

안녕하세요 강사님. 강의에서 Path Enumeration 방식을 활용해 데이터베이스 조회 성능을 최적화하는 방법을 매우 유익하게 배웠습니다. 실제 대규모 서비스 환경에서 이 조회 결과를 Redis로 캐싱하려고 할 때, 캐시를 저장하는 자료구조 선택에 대해 강사님의 의견을 듣고 싶습니다. 현재는 Path를 기반으로 DB에서 계층 구조를 유지하며 정렬된 댓글 목록을 조회하고 있습니다. 이 결과를 Redis에 저장하는 방법으로 아래 두 가지를 고려하고 있습니다. 1. List 구조 (LRANGE) 장점: DB에서 조회한 정렬 순서를 그대로 Redis에 저장할 수 있어, 조회 시 한 번에 가져올 수 있습니다. 고민: CUD(특히 중간 삽입) 발생 시 전체 List를 삭제하고 DB에서 다시 조회해 재저장해야 하므로 비효율적일 수 있습니다. 2. Sorted Set 구조 (ZADD) 장점: 각 댓글을 멤버로 저장하고 Path 값이나 정렬 기준을 score로 부여하면, CUD 발생 시 해당 멤버만 ADD/REMOVE로 처리할 수 있어 갱신이 효율적입니다. 고민: Path 기반의 정렬 값을 Redis의 score로 매핑하는 과정이 다소 복잡합니다. 이처럼 캐싱 로직의 구현 복잡도(Sorted Set)와 갱신 효율성(List의 TTL 전략) 사이의 균형을 고려할 때, 강사님께서는 무한 depth 댓글 구조를 캐싱할 때 어떤 Redis 자료구조가 더 적합하다고 생각하시는지 궁금합니다. 감사합니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
Minyoung Park 댓글 1 좋아요 0 조회수 94

STOMP 동작 과정 질문

미해결

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

강의에서 STOMP 동작 간 /app, /topic 요청을 동시에 보낸다고 하셨는데 그럼 app 경로 발행된 메세지는 broker를 통해서 topic 경로로 전달이 되고 맨 처음에 동시에 보낸 topic 요청도 broker를 통해서 전달이 되어서 broker에서 구독하고 있는 사용자들에게 메세지를 보내준다고 이해하면 되는 것일까요? /topic으로 2번 가는 것 처럼 느껴져서 약간의 혼동이 있었습니다!

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
레디이 댓글 1 좋아요 0 조회수 99

OutBox 패턴에 대한 질문입니다.

해결됨

카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka

안녕하세요 ! 강의 잘 듣고 있습니다. 최근 OutBox 패턴을 사용해보려고 시도중입니다 ! CDC도구를 사용하지않고 어플리케이션에서 폴링을 구현한다고 하였을 때 폴링전용 어플리케이션을 따로 두어야 하는지 궁금합니다. ex) 주문서버에서 DB에 저장 -> 폴링 서버에서 DB에 저장된 이벤트를 폴링으로 조회 후 메시지 발행 이렇게 생각한 이유는 주문서버에 폴링을 구현한다면 스케일 아웃 상황에서 폴링 로직도 저절로 스케일아웃되기때문입니다. 여러개의 폴링 로직이 같이 돌아가면 데이터가 꼬일 수도 있지 않을까 합니다. 어플리케이션 폴링구조의 outbox 패턴 구현에 대한 정석이 있는지 궁금합니다.

  • java
  • spring
  • kotlin
  • spring-boot
  • kafka
김승수 댓글 2 좋아요 0 조회수 185

kafka 컨슘은 실시간 인가요?

해결됨

카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka

실시간 이라면 stream하고 어떻게 차이가 나는걸까요?

  • java
  • spring
  • kotlin
  • spring-boot
  • kafka
핵심국사 댓글 2 좋아요 0 조회수 135

8강 도메인 모델과 DDD 내용에 대해 질문있습니다.

미해결

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

8강 도메인 모델과 DDD 에서 코드의 내용이 도메인에도 반영이 되어야 할 때도 있다고 하셨는데 예시를 들어 주실 수 있을까요?

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
penelope 댓글 2 좋아요 0 조회수 86

표준 예외와 커스텀 예외 사용 전략 질문

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요. 수업 내용과는 크게 관계가 없지만... 예외처리 관련 내용에 대한 질문을 드립니다. 스프링이 제공하는 표준 예외( IllegalArgumentException , IllegalStateException )와 비즈니스 로직을 표현하는 커스텀 예외( NotFoundUserException ) 사이에서 표준 예외를 사용하는 경우와 커스텀 예외를 사용하는 경우에 대한 기준을 알 수 있을까요? 감사합니다.

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩터링
김민우 댓글 3 좋아요 0 조회수 171

도메인의 응집도와 모델 복잡도간 밸런스 고민

미해결

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

강의 너무 재미있게 듣고 있습니다. 도메인이라는 개념에 대해서 고민하다가 궁금한 사항이 생겨서 질문드립니다. "도메인 모델이 비즈니스 규칙을 모두 내포하면 응집도는 높아지지만, 복잡도도 함께 커집니다. 이때 어디까지를 도메인 모델에 포함시키는 게 적절할까요?"

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
  • domain
sr 댓글 2 좋아요 0 조회수 132

Application Service와 Domain Service를 명확하게 이해한 건지 궁금합니다.

미해결

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

Application Service에서는 흐름을 관리하고 (예를 들면 DB에서 데이터를 가져오는 등) Domain Service는 복잡한 비즈니스 로직을 처리하는 역할로 이해를 했는데 이해한 것이 맞을까요?

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
서울자바맨 댓글 2 좋아요 0 조회수 319

빈약한 도메인 모델을 보완하기

미해결

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

안녕하세요. 빈약한 도메인 모델에 관하여 질문이 있습니다. 현재 개인적으로 진행하는 프로젝트에서 데이터 홀더 역할정도만 하는 빈약한 도메인 모델이 있습니다. repository에는 테이블의 상태 컬럼을 업데이트하는 메소드가 존재하는데 이를 도메인 모델 내부에 메소드를 만들어 업데이트하고 repository의 save를 통해 엔티티의 상태를 update하는 것이 강의에서 의도한 내용으로 이해했는데 맞을까요? 추가로 이런 경우(비즈니스 로직이 복잡하지 않은)에 꼭 도메인 모델이 없어도 될지 궁금합니다.

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

chain.doFilter()

미해결

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

JwtAuthFilter 에서 토큰이 없을 때 예외를 던지지 않고 그냥 chain.doFilter() 를 호출하는 이유는?

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
익명리 댓글 1 좋아요 0 조회수 74

Deprecated 관련 사항들

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

보통 실무에서는 deprecated된 사용할때 발견하면 그때 그때 찾아보나요? 아니면 항상 up-to-date하는 공부방법이 따로 있나요?

  • vue.js
  • aws
  • spring-boot
  • jpa
  • spring-security
hahahl 댓글 2 좋아요 0 조회수 184

차후에 추가 업데이트 같은 것이 있을까요?

해결됨

The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법

강의 잘 보고 있습니다. 추후에 클로드코드 외에 Codex 같은 새로운 것들에 대한 내용이 추가 업데이트 될 예정이 있을까요?

  • spring-boot
  • next.js
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
테이크 댓글 2 좋아요 0 조회수 169

JPA entity와 도메인 모델을 분리하는 케이스에 대한 질문입니다.

미해결

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

JPA entity와 도메인 모델을 분리하는 케이스에서 데이터 저장 기술이 바뀌는 경우 Spring Data를 사용하면 해당되지 않는다고 하셨는데 JPA에서 MyBatis로 변경하는 경우도 Spring Data로 커버가 가능한가요? 회사에서 JPA로 개발을 진행중인데 MyBatis로 마이그레이션을 해야할수도 있어서 질문드립니다.

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
  • mybatis
타이한 댓글 2 좋아요 0 조회수 105

메세지 저장 관련 질문입니다

해결됨

카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka

카프카 메시지 저장 방식에 대한 질문 카프카에 대해서 잘 알지 못할때 카프카에 메시지가 저장되어 편리하다는 이야기를 들었습니다. 그래서 AWS SQS에서 카프카로 전환하면 별도의 메시지 저장소가 필요 없을 것 같았는데, 강의를 들어보니 장기 보관이 필요하면 결국 따로 저장해야 하는 것 같더라고요. 질문: 장기 보관이 필요한 메시지는 별도 저장소(DB, S3 등)에 저장하시나요? 카프카 자체 저장만으로 충분한 경우와 별도 저장이 필요한 경우를 어떻게 구분하시나요?

  • java
  • spring
  • kotlin
  • spring-boot
  • kafka
dlkfjan 댓글 2 좋아요 0 조회수 91

댓글 생성, 삭제 시 게시글의 댓글 수 증감 로직 질문

해결됨

Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기

안녕하세요. 코드에서 궁금한 점 질문드립니다. 댓글 생성, 삭제 시에 게시글의 댓글 수 증감 로직이 아래 예시 코드처럼 CommentService에서 이루어지고 있는데 과한 책임이 아닌가 싶어서요. 실무에서는 어떻게 나누게 되는지 궁금합니다. public CommentResponse createComment(Long postId, CommentRequest request) { Post post = postRepository.findById(postId) .orElseThrow(() -> new IllegalArgumentException("게시글을 찾을 수 없습니다.")); Comment comment = Comment.builder() .content(request.content()) .postId(postId) .createdAt(LocalDateTime.now()) .updatedAt(LocalDateTime.now()) .build(); Comment newComment = commentRepository.save(comment); post.increaseCommentCount(); postRepository.save(post); return CommentResponse.from(newComment); }

  • aws
  • mysql
  • docker
  • spring-boot
  • jpa
당황한 너구리 댓글 1 좋아요 1 조회수 132

인기 태그

인프런 TOP Writers

주간 인기글