inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문

미해결

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

안녕하세요. 강의 잘 듣고있습니다. 오늘 수강한 "엔티티 식별자와 JPA 엔티티" 에서 JPA 엔티티로 만들었다고해서 달라진게 없다 라고 표현하셨는데요. 애노테이션을 붙여서 컴파일 단계의 의존성은 생겼지만 해당 클래스가 다른 기술적 종속이 생긴건 아니라고 말씀하신거에 질문이 있습니다. 일단 애노테이션을 붙인 것을 용인할 수 있다는건 이해했고, 저도 동의합니다. 그런데 JPA 엔티티가 됨으로써 해당 클래스는 final 로 만들 수 없고, 생성자도 기술적 요구사항에 의해 최소 protected 로 공개할 수 밖에 없는데요. 이번 강의에서도 기존 의도는 private 이었지만 기술을 도입함으로써 애노테이션을 붙이는 것 이상의 작업이 있었습니다(생성자의 접근 수준 변경). 정말 애노테이션만 붙이고 아무것도 하지 않았다면 납득할 수 있지만 애노테이션 외에 다른 변경이 발생했는데도 기술적 종속이 없다고 볼 수 있을까요? 이정도 수준의 변경과 의존은 트레이드오프로 용인할 수 있다고 생각하면 할수는 있지만 엄밀히 따진다면 객체 설계에 영향을 줬다고 생각하는데, 어떻게 생각하시는지 궁금합니다.

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

콘솔 로그가 깨져나오는데 혹시 방법이 있을까요?

미해결

Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초

혹시 배치를 명령문으로 실행시 System.out.print로 출력시 콘솔로그가 깨져나오는데 혹시 해결방법이 있을까요? 버전들은 최대한 맞췄고, 여러 방법들로 조치를 해봤지만 안되네요. 혹시 해결책이 있을까요?

  • mysql
  • jenkins
  • spring-boot
  • spring-batch
  • gradle
naje 댓글 2 좋아요 0 조회수 27

PlatformTransactionManager, ResourcelessTransactionManager 질문

미해결

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

아직은 어색하고 서먹서먹하니 존댓말로 질문드립니다. 인프피니까 이해좀.. 1장. 작전1: 바이너리 초이스 - 스프링 배치의 두 가지 스텝 유형 요걸 지금 읽고 있는데 중간에 이런 내용이 있습니다. [시스템 주의] 예시와 같이 ResourcelessTransactionManager 인스턴스를 직접 생성해 tasklet() 메서드에 전달해도 되지만 애플리케이션 내의 여러 스텝에서 재사용할 수 있도록 별도의 Bean으로 정의하고 싶을 수도 있다. 그러나 PlatformTransactionManager 빈을 직접 정의할 땐 주의가 필요하다. 뭔가 문장이 좀 어색한데 처음엔 ResourcelessTransactionManager인스턴스를 Bean으로 정의하고 싶을 수 있다고 하시고는 갑자기 PlatformTransactionManager 빈을 직접 정의할 땐 주의가 필요하다고 하셨습니다. 이게 말 그대로 PlatformTransactionManager 빈을 직접 정의할 때 주의 하라는 뜻인건지, 아니면 ResourcelessTransactionManager 빈을 직접 정의할 때 주의 하라는 뜻인건지, 아니면 둘 다 빈을 집적 정의할 때 주의 하라는 뜻인지 조금 헷갈립니당 뒤에 따라오는 문장들을 읽어보면 아마도 PlatformTransactionManager 빈을 직접 정의할 때 주의하라는 말 같은데 그럼 ResourcelessTransactionManager 빈을 직접 정의 할 때의 주의사항은 없나용?

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
counterchord89 댓글 2 좋아요 1 조회수 44

WebFlux & Web MVC 혼용해서 사용했을 때 스레드에 대한 질문

미해결

장애를 허용하는 견고한 시스템 만들기

안녕하세요 강사님. 강의 잘 듣고 있습니다. 이번 시간에 강사님께서 Spring WebFlux와 Spring Web MVC를 혼용해서 사용하는 경우, 결국에는 Web MVC의 기본 스레드인 톰캣 스레드를 사용해서 스레드 고갈이 될 수 있다고 하셨습니다. 따라서 내부적으로는 WebFlux의 이벤트 루프 스레드가 아닌 톰캣 스레드를 사용해서 블로킹되는 현상이 발생한다로 해석하면 될까요? 저는 혼용할 경우, Mono/Flux 타입 응답에 한해서는 동시 요청 발생 시 이벤트 루프 스레드를 사용하여 IO 작업을 대기하지 않고 해당 스레드가 다른 일을 처리하러 가는 것으로 알고 있었습니다. 혹시 이러한 상황에서 어떤 스레드를 사용하는지 테스트 해볼만한 좋은 방식이 있을까요? 감사합니다.

  • spring-boot
  • kafka
  • resilience4j
  • data-consistency
  • transaction
딸기초콜릿 댓글 1 좋아요 0 조회수 21

자료 한번에 다운받기

해결됨

20,000+ RPS 병렬처리를 위한 네이버 면접관이 알려주는 Reactive 프로그래밍

자료 한번에 다운받아서 열고 싶은데요.. 매번 다운 받고 압축풀고 하는게 귀찮네요 ㅠ

  • java
  • spring
  • spring-boot
  • 병렬-처리
  • webflux
노희석 댓글 1 좋아요 0 조회수 22

서울 이미지 10개에 대한 url 접근 불가

미해결

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

[1주차] AI를 '코딩 비서'에서 '개발 파트너'로 04. 🧠 컨텍스트 관리 마스터하기: AI의 두뇌에 청사진 새겨넣기 14) 실전 미션: 컨텍스트 관리 능력 내재화하기 >> 해당 파트의 Part 1: 여행지 비주얼 큐레이션 (Image Context 활용) 을 위해 서울 이미지 10개 링크로 접속했으나 접근이 불가합니다. https://postechackr-my.sharepoint.com/:f:/g/personal/honeyjam_postech_ac_kr/IgBBNaLpG7AaQobyaQ6Mfe9IAQLw7Ft4av6qbShUDeKjyVQ?e=vWujVn

  • spring-boot
  • next.js
  • 인공지능(ai)
  • claude
helee 댓글 1 좋아요 0 조회수 39

스프링 빈 등록 방법 2가지 다 알아야하는 이유

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 스프링 빈 등록 방법 중 @Autowired를 사용해 자동으로 등록하는 방법과 자바 코드로 직접 스프링 빈을 등록하는 방법 두 가지를 모두 알아야 한다고 하셨는데, 그 이유가 무엇인가요?

  • java
  • spring
  • mvc
  • spring-boot
주지성 댓글 1 좋아요 0 조회수 38

댓글 삭제 로직에서 동시성 문제 발생 가능성

미해결

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

안녕하세요 쿠케님! 현재 구현되어 있는 댓글 삭제 로직을 보면 1. 댓글 조회 2-1. 자식 댓글이 존재하면 deleted=true 로 변경 2-2. 자식 댓글이 존재하지 않으면 댓글을 물리 삭제하고, 부모 댓글을 재귀적으로 삭제 이렇게 구현되어 있는데요. 동시성 문제가 발생할 수 있겠다는 생각이 들었습니다! T1 삭제 트랜잭션 T2 답글 트랜잭션 ──────────────────────────────────────────── SELECT 부모 SELECT 자식 → 없음 SELECT 부모 → ACTIVE INSERT 답글 COMMIT DELETE 부모 COMMIT (제가 잘 분석한게 맞나 모르겠네요 ㅎㅎ) 물론 이렇게 꼬일 확률은 낮지만, 이런 케이스에 대해서는 select for update를 거는 것이 좋을지, 아니면 fk를 추가하여 정합성을 보장해줘야 할지, 쿠케님 의견을 묻고 싶습니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
bebe 댓글 1 좋아요 0 조회수 26

설계 트레이드 오프 링크 접속 안됨

미해결

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

https://eternitymwobject.tistory.com/43 를 접속했더니 이렇게 나오네요. 확인 부탁드립니다.

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

테스트 질문, 어떤것을 사용할것인것에 대해서

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (모름) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 궁금증이 생겨서 질문을 드립니다. 현재 시점(26.8) 에서 강의를 듣고 있는데요. pdf 을 보면, 시간 지남에 따라 assertEquals() 내용이 달라 지듯이, 그 동안 강의 에서 배운 assertj 의 assertThat().isEqualTo()나, 다른 방법 들이 있어서 어떤 것을 쓰는게 맞는지 몰라서 여쭈어 봅니다. 첫 번째는 assertEquals(), assertThat()이고 두번째는 assertThrows() , assertThatThrownBy() 입니다. 영한님 이라면 어떤 것들을 쓰실지 궁금합니다. 답변 부탁 드립니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
생각하는자 댓글 1 좋아요 0 조회수 30

재고 감소와 쿠폰 발급은 왜 서로 다른 방식으로 동시성을 제어하나요?

미해결

실습으로 배우는 선착순 이벤트 시스템

강사님 안녕하세요, 좋은 강의 여러번 반복해서 잘 듣고 있습니다. 재고 감소와 비교했을때 차이점이 궁금하여 문의드립니다. 안녕하세요 강사님 이전 재고 관리 강의와 차이에 대해 궁금합니다. 이전 질문을 참고하였으나 추가로 더 궁금한게 있어서 문의드립니다. 재고 감소와 쿠폰 발급의 차이점이 너무 헷갈려서 정리하고 있습니다. 두 경우 모두 한정된 수량을 여러 요청이 동시에 차지한다는 점에서는 비슷해 보입니다. 그렇다면 쿠폰도 이벤트 테이블에 잔여 수량을 100개나 300개로 설정하고, 재고처럼 수량을 차감한 뒤 사용자 쿠폰을 생성하는 방식으로 구현할 수 있지 않을까요? 강의에서는 쿠폰 발급의 정합성을 위해서 전체 로직에 락을 걸 필요가 없다고 하셨는데, 그러면 반대로 재고 감소 같은 경우도 마찬가지로 재고 감소의 정합성을 위해 전체로직에 락을 걸 필요 없이 다른 방법으로 하는게 더 나은 방법 아닌가요?? 비슷해 보이는 한정 수량 문제를 서로 다르게 푼 이유를 잘 모르겠습니다 ㅠㅠ

  • java
  • docker
  • spring-boot
  • kafka
  • redis
차니 댓글 2 좋아요 0 조회수 30

@RestControllerAdvice를 사용하지 않은 이유?

미해결

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

안녕하세요. 강의 잘 듣고 있습니다. 강의를 듣다 궁금하게 생긴 점이 있는데 @ControllerAdvice,@RestControllerAdvice 둘 다 보통 컨트롤러에서 공통적으로 적용할 어노테이션으로 알고 있습니다. 차이점으로는 @ResponseBody가 붙은 것으로 알고 있는데, 지금 강의에서는 뷰처리를 하지 않고, ResponseEntity 객체를 사용하기 때문에 어차피 JSON 형태로 응답을 해주지만 그래도 코드로 표현하기에는 @RestContollerAdvice가 적절하지 않나 생각했는데, @ControllerAdvice를 사용하신 이유가 있으신지 궁금합니다.

  • rest-api
  • spring-boot
nick 댓글 1 좋아요 0 조회수 32

service-discovery 프로세스 가동 이유

미해결

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

안녕하세요 강사님 양질의 강의 제공해주셔서 감사합니다 api-gateway yml 파일에 micro-service url에 매핑된 host 정보를 기입하셨는데요 이러면 service-discovery 프로세스를 가동시키신 이유가 뭘까요? 제가 이해하기론 service-discovery는 dns정도로 이해하고 있습니다

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

헥사고날 아키텍처와 DDD를 적용할 때, 화면에 강하게 연관된 조회 데이터를 어떻게 다루는 게 좋은지 궁금합니다.

미해결

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

헥사고날 아키텍처와 DDD를 적용할 때, 화면에 강하게 연관된 조회 데이터를 어떻게 다루는 게 좋은지 궁금합니다. 예를 들어 채팅방 목록 화면에서 각 채팅방마다 다음 정보를 한 번에 보여줘야 한다고 가정하겠습니다 . ex) 채팅방 이름, 마지막 채팅 내용, 읽지 않은 채팅 개수 이 정보를 구하려면 room, chat, read_status 같은 여러 테이블을 함께 조회해야 하고 , N+1 문제를 피하려면 Querydsl 이나 JDBC 등을 사용해서 한 번의 쿼리로 조회하는 방식이 필요해 보입니다 . 이 경우 제 생각에는 기존 포트와 분리해서 , 조회 전용 port 와 query repository interface 를 application 계층에 두고 , adapter 계층에서 Querydsl/JDBC/MyBatis 등으로 구현하는 것이 해결책 같습니다. 이런 식으로 cqrs패턴을 적용하는 것이 유일한 해결책인가요? 혹시 더 나은 방법이 있는지 궁금하여 질문남깁니다. (강의 너무 잘 보고 있습니다)

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

DLQ의 수동 커밋에 대해서 질문있습니다.

해결됨

핵심만 빠르게 끝내는 실전 카프카(kafka)

처리에 실패한 메시지를 DLQ로 재발행해서 별도로 재처리하는 구조를 설계한다면 굳이 수동 커밋을 유지하지 않고 enable.auto.commit=true 로 바꿔도 무방한지 궁금합니다!

  • spring-boot
  • kafka
  • msa
  • spring-kafka
이찬원 댓글 2 좋아요 0 조회수 59

노션링크가 접근되지 않습니다.

해결됨

Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초

제목처럼 강의자료 노션 링크가 접근이 되지 않습니다. 그리고 강사님은 처음 어떻게 공부하셨나요? 어떤 루트로 학습하셨는지 궁금합니다.

  • mysql
  • jenkins
  • spring-boot
  • spring-batch
  • gradle
naje 댓글 1 좋아요 0 조회수 48

h2 database

해결됨

[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발

implementation 'com.h2database:h2' 이걸로 h2 database를 추가했는데 로그에 h2 database가 추가되지 않아 확인해보니 implementation 'org.springframework.boot:spring-boot-h2console' 이 부분을 추가해야한다고 합니다. Spring Boot 4.x부터 H2 콘솔 자동설정(H2ConsoleAutoConfiguration)이 spring-boot-autoconfigure에서 분리되어 별도 모듈 spring-boot-h2console로 이동했습니다. 이 내용에 대해서 확인해주시면 감사할거 같습니다! 좋은 강의 제공해주셔서 감사합니다!

  • spring
  • spring-boot
  • jpa
  • hibernate
무능한아기 댓글 2 좋아요 2 조회수 51

실무에서 동의어 정의 관련

미해결

실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)

강사님, 안녕하세요! 강의 잘듣고 있습니다! 예제에서 동의어를 정의하신 부분이 있는데 관련해서 질문이 있어서 글 남깁니다. 실무에서는 동의어를 정의하는 부분이 훨씬 방대할 것으로 예상되는데 .. 동의어를 정의하는 부분은 수기로 하는지 아니면 AI를 활용하는 등 실무에서 동의어를 정의하는 방법이 궁금 합니다. 항상 좋은 강의 해주셔서 잘 듣고 있습니다. 좋은 하루되시기를 바라면서 답변 꼭 부탁드립니다. 감사합니다.

  • spring-boot
  • elasticsearch
  • devops
  • elk
  • infrastructure
  • synonym
  • 동의어
쿠카이든 댓글 2 좋아요 0 조회수 50

Request DTO에서 Entity를 생성할 때 의존성 방향을 반대로 하면 어떨까요?

해결됨

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

안녕하세요. Member 객체를 생성할 때, 다른 방법을 선택해 보는 것은 어떨까요? 기존에는(설계 트레이드 오프 개선 전) Member.register() 가 MemberRegisterRequest 에 직접 의존하고 있었는데, 도메인 모델이 요청 DTO를 알지 않도록 의존성을 반대로 두는 방법입니다. MemberRegisterRequest 에서 Member 객체를 직접 생성하는거죠. public record MemberRegisterRequest( ... ) { public Member toMember(PasswordEncoder passwordEncoder) { return Member.register(email, nickname, password, passwordEncoder); } } public class Member extends AbstractEntity { ... public static Member register(String email, String nickname, String password, PasswordEncoder passwordEncoder) { Member member = new Member(); member.email = new Email(email); member.nickname = requireNonNull(nickname); member.passwordHash = requireNonNull(passwordEncoder.encode(password)); member.status = MemberStatus.PENDING; member.detail = MemberDetail.create(); return member; } ... } public class MemberModifyService implements MemberRegister { ... @Override public Member register(MemberRegisterRequest registerRequest) { checkDuplicateEmail(registerRequest); Member member = registerRequest.toMember(passwordEncoder); memberRepository.save(member); sendWelcomeEmail(member); return member; } ... } MemberRegisterRequest.toMember(passwordEncoder) 에서 Member.register(email, nickname, password, passwordEncoder) 를 호출하면 Request DTO → Domain 방향으로만 의존합니다. 별도의 MemberRequestInfo 같은 파라미터 객체도 필요하지 않아 구현이 단순합니다. Request DTO를 단순 데이터 전달 객체로 유지하려면 서비스 계층에서 각 값을 꺼내 Member.register() 에 전달하는 방법도 가능합니다. (이 방법보다는 이전 방법이 서비스 계층을 간결하게 유지하는 방법이긴 합니다.) 이런 방법을 기본 개발 규칙으로 두면, 의존성 방향도 문제 없고, 추가적인 객체(예: MemberRequestInfo )를 생성할 필요도 없어서 충분한 이점이 있습니다. 다만, register() 에 전달해야 할 파라미터가 많아진다면 번거롭긴 하겠네요. 이 방법에 대한 의견도 부탁 드립니다. 감사합니다.

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

소스 코드 좀 올려주세요.

해결됨

치킨 + 맥주값으로 SpringAI를 사용해 AI서버 만들어보기 (With ChatGPT)

학습에 관련된 질문만 남겨주세요~ 학습 영상에 대한 피드백도 환영 입니다~!! 초보라서 코틀린을 자바로 따라 하려니 잘 안되는 부분이 있습니다. 전체 소스 코드를 올려 주세요. (변환해서 사용해 보겠습니다.)

  • kotlin
  • spring-boot
  • chatgpt
  • springai
박정아 댓글 2 좋아요 0 조회수 47

인기 태그

인프런 TOP Writers

주간 인기글