묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring WebFlux + LLM 실전 구현
DTO 사용법에 대해서 궁금합니다!
강사님께서는 record가 아닌, 일반 class를 사용했는데! 혹시 이유가 있을까요~~!?!? 현업에서 물어보려해도ㅠㅠ... 주변에 시니어가 없는 환경이라... 딱히 물어보기가 어려워서요~~!!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Update 후 UpdateMemberResponse 매핑할 때
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]update하고 응답할 때 어차피 request dto에 응답할 파라메터 값이 담겨져있는데 해당 값을 response dto에 할당해서 응답하면 되지 않을까요? 즉 제가 구상한 코드는 다음과 같습니다. @Operation(summary = "회원 수정") @PutMapping("{id}") public UpdateMemberResponse updateMemberV1(@Validated @RequestBody MemberUpdateDTO memberUpdateDTO, BindingResult bindingResult, @PathVariable("id") Long id){ memberService.update(memberUpdateDTO, id); return new UpdateMemberResponse(id, memberUpdateDTO.getName(), memberUpdateDTO.getCity(), memberUpdateDTO.getStreet(), memberUpdateDTO.getZipcode()); }굳이 컨트롤러단에서 memberService.findOne(id)를 select문을 날려서 호출해서 준영속상태의 Member 엔티티의 값을 response dto에 할당하는 이유가 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 build test오류 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]클린도 해보고 다시 시도해보아도 test때문에 실패 한다네요.. 왜이럴까요..??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
특정 데이터와 파일을 함께 저장 시, 테이블 구조 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]실무에서 특정 데이터와 파일을 함께 DB 저장 시 파일 테이블의 구조를 아래 두가지 케이스중 어떤 케이스로 구성하는지 궁금합니다.(ex. A게시글과 A게시글에 대한 파일과 사진들 첨부 시)1) 파일 테이블(file_table)에 관련된 게시글의 타입(ref_type)과 id(ref_id) 컬럼을 만들어 저장하는 것.2) 게시글 테이블(board_table)에 관련된 파일 id(file_id) 컬럼을 만들어 저장하는 것.2개 이상의 파일 list를 저장하고 관리하기에는 1번 방법이 더 직관적인 것 같은데, 실제로는 2번과 같은 구조를 많이 본 것 같아서 질문 드립니다.실무에서는 보편적으로 어떤 구조를, 어떤 이유로 많이 사용할까요 ? 항상 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트 관련 공부에 대한 조언을 얻고 싶습니다
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]솔직히 강의에 관련된 질문과는 거리가 먼 내용이어서 질문을 해야 하나 말아야 하나 고민하다가 결국 질문하는 게 좋겠다고 생각되어 질문을 올립니다. 강의 중에 강사님께서 중간중간에 test관련 공부를 열심히 해야한다고 하셨는데 혹시 어떤 식으로 공부해야 하는지 그리고 강사님께서는 어떻게 하셨는지, 또 추천하시는 서적이 있다면 그 서적의 제목이 어떻게 되는지 알고 싶습니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 일단 현재 yml 강의 자료 기준으로는 trasaction rolled back에 대한 로그가 찍히질 않는데,해당 옵션을 추가해봤습니다. org.springframework.orm.jpa: trace #JPA 트랜잭션 관련 로그그랬더니 찍히긴 하던데 약간 이상하게? 찍힙니다.2026-01-07T02:05:57.767+09:00 DEBUG 5469 --- [ Test worker] o.s.orm.jpa.JpaTransactionManager : Initiating transaction rollback 2026-01-07T02:05:57.767+09:00 DEBUG 5469 --- [ Test worker] o.s.orm.jpa.JpaTransactionManager : Rolling back JPA transaction on EntityManager [SessionImpl(1610625797<open>)]혹시나 다른 옵션이 있을까? class가 아니라 SessionImpl? 이렇게 나오네요. 이건 제가 공식 문서를 봐봤는데, 다른분들께 도움이 될까 싶어서요, 나중에 자료도 업데이트 해주시면 좋을 것 같아요!https://github.com/gavlyukovskiy/spring-boot-data-source-decorator?tab=readme-ov-file#quick-start현재 저는 부트 4 버전을 사용중인데, 4버전 부터는 p6spy를 1.10.0 이 아닌 2.0.0으로 해줘야 합니다!implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:2.0.0'현재 자료 기준은 1.10.0이라 수정해 주시면 좋을 것 같습니다!(그리고 3버전도 1.12.1 로 올라갔습니다!) 사실 2번은 질문이라기 보다는 알려드리고 싶은 부분이었고, 1번만 트랜잭션 로그를 다르게 찍는 방법? 이 있는지 궁금합니다.
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
신규강의 쿠폰 건
안녕하세요~ 강의를 구매했는데 신규강의가 있는 줄 미처 확인하지 못했네요loverain1541 지메일로 메일하나 보냈는데 확인 부탁드립니다
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
PT 문의사항
안녕하세요! 수업 잘 듣고 있습니다.PT하실때 쓰신 툴이 무엇일까요?너무 깔끔하고 좋은 것 같습니다.
-
미해결스프링 핵심 원리 - 기본편
다음 강의 뭘 들어야 할까요
안녕하세요 저는 컴퓨터공학과 2학년을 마친 학생입니다.아직 진로는 잘 못정했지만 프론트보단 백엔드가 맞는거 같아서 백엔드를 해보려고 합니다.현재 강사님의 자바 중급2편까지 수강하였고 이번에 스프링 기본강의를 들었습니다. 다음에 들을 강의를 선택하려고 합니다.처음 유튜브 커리에서 설명하신대로 스프링 커리큘럼대로 mvc를 들으려고 했는데 스프링-기본편 다음으로 챕터에서 야생형 코스를 추천하신다 하여 무엇을 들어야할지 고민되어 질문 드립니다. 현재 저는 DB관련해서는 이번 방학때 sqld를 딸 게획을 하고있고 현재로선 DB지식이 많진 않은 상태입니다. + 개발 경험은 많이 없습니다. 그냥 jpa 커리 야생형을 따라가면 될까요 ㅠㅠ
-
해결됨카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴
강의 11 질문
강의의 시퀀스 다이어그램을 보았을 때, 2가지 정도 질문 드립니다. 1) stateless 요청에서 상태값의 전달 관련일반적으로 웹과 같이 stateless 한 서비스를 고려했을 때, 비동기 처리로 인해 주문서비스가 고객의 주문요청에 대해 (이후의 수행작업과 상관없이) 즉시 리턴하게 되는 것이 예상되는데요. (위 그림에서는 동기적인 flow 로 주문완료 응답을 end point 유저에게 전달하는 것으로 보이긴 합니다만) 주문 완료 페이지에서 주문한 상품 정보나 결제 수단의 상태값 전/후 를 보여주는건 어떤 식으로 동작하게 될까요? 가령, 실물 상품이 아닌 연속선상의 사이버 재화(ex: 네이버포인트 등)를 지급해야하는 입장에서 주문 이전의 재화 정보와 주문 요청 후(최종적으로 트랜잭션 완료된 후의) 증/감 재화 정보를 유저에게 보여주어야 할 수도 있는데, 뒷단의 비동기 작업(이벤트 subscribe)을 수행하는 스레드랑 최초 주문 요청을 받는 요청스레드가 다른 부분에서 고려해야할 것이 더 있을 것 같은데요. 얼핏 생각했을 때는, 사용자에게 즉시 내려주는 응답 페이지는 PENDING 에 해당하는 페이지 UI 로 (ex: 결제 진행중... 표시) 전달하고, 사용자 PENDING 페이지(클라이언트)에서 몇초 단위의 주기적인 서버 요청 등으로 완료 이벤트를 조회 하도록 처리하여 완료페이지로 리다이렉션 처리되는 방식이 될까요? 이 때, 중간 상태값은 별도 캐시서버등에 저장을 해야 할 것이고요. (리다이렉션 되는 완료페이지와 PENDING 페이지의 state가 또 다르므로)2) 메시지 브로커(카프카) 를 쓸 때 고려사항주제랑 좀 벗어난 걸 수는 있는데요, 보통 메시지 발행의 정확성을 위해 CDC (Change Data Capture) 를 설정하는 것이 일반적인 방식으로 알고 있습니다.다만, 현재 서비스중인 DB 의 설정이나 부하 이슈로 CDC 를 쓰지 못하는 경우에는 어떤 방식으로 처리가능할지가 궁금합니다.
-
해결됨카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴
강의 첨부파일 문의
11번 강의처럼 첨부파일 내려받았을 때 시퀀스 다이어그램 이미지 등이 없는 경우가 종종 존재합니다.첨부파일이 없는데 아이콘표시가 달린건지 누락된건지 알 수 있을까요?
-
해결됨죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
@StepScope 또는 @JobScope와 JobOperator
킬구형아래는 step에서 ItemWriter의 jobParameter자리에 null을 넣는 방식으로 처리한거야. @Scheduled(cron = "0 0 19,22 * * *") fun runSampleJob() { jobOperator.start(sampleJob(),jobParameters) } @Bean fun sampleJob(): Job = JobBuilder("sampleJob",jobRepository) .start(sampleStep()) .build() @Bean fun sampleStep(): Step = StepBuilder("sampleStep", jobRepository) .chunk<String, String>(CHUNK_SIZE) .transactionManager(transactionManager) .reader(sampleReader()) .writer(sampleWriter(null, null)) .build() @Bean @StepScope fun sampleReader(): JdbcPagingItemReader<String> = JdbcPagingItemReaderBuilder<String>() ... .build() @Bean @StepScope fun sampleWriter( @Value("#{jobParameters['title']}") title: String?, @Value("#{jobParameters['content']}") content: String?, ): ItemWriter<String> = ItemWriter { chunk -> ...doSomeWrite }위 코드를 빈 주입방식으로 변경하는 방법을 모르겠어.빈 주입 방식으로 변경하면 아래처럼 되잖아?이때 jobOpterator로 잡을 호출하는 부분까지 파라미터가 올라와버리는데 이걸 어떻게 해야할지 모르겠단 말이야~~!@Scheduled(cron = "0 0 19,22 * * *") fun runSampleJob() { jobOperator.start(sampleJob(**여기를 어떻게 처리하지?**),jobParameters) } @Bean fun sampleJob( sampleStep: Step ): Job = JobBuilder("sampleJob",jobRepository) .start(sampleStep) .build() @Bean fun sampleStep( sampleReader: ItemReader<String>, sampleWriter: ItemWriter<String> ): Step = StepBuilder("sampleStep", jobRepository) .chunk<String, String>(CHUNK_SIZE) .transactionManager(transactionManager) .reader(sampleReader) .writer(sampleWriter) .build() @Bean @StepScope fun sampleReader(): JdbcPagingItemReader<String> = JdbcPagingItemReaderBuilder<String>() ... .build() @Bean @StepScope fun sampleWriter( @Value("#{jobParameters['title']}") title: String?, @Value("#{jobParameters['content']}") content: String?, ): ItemWriter<String> = ItemWriter { chunk -> ...doSomeWrite }새해 복 많이 받아 형~
-
해결됨스프링 핵심 원리 - 기본편
프로토타입 빈, 직접 destroy 호출 안 할 경우
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 스콥이 프로토타입이면, 초기화 까지만 스프링 빈에서 관리를 하고 이후에는 관리를 하지 않아 후반부에서도 보면 직접 instance.destroy()를 호출하지 않으면 관리 대상이 아니라 종료를 해주지 않고 있습니다. 물론 스콥 주기의 빈을 많이 사용하진 않겠지만, 정말 많은 스콥 생명주기의 빈을 생성하고 직접 종료를 해주지 않으면 메모리를 계속 잡아먹고 있는걸까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@repository 어노테이션
안녕하세요 강의를 듣던중 궁금한것이 생겨서요,해당 프로젝트 구조를보면 di주입을 config에서new 키워드를 통해 repository 클래스를 직접 인스턴스화해서 주입해주고있고 구현체에 해당하는 인스턴스를 생성한후추상화된 repository를 빈에 등록해서호출하여 사용하는 형식으로, 특정 구현체에 의존되지 않게 해주고있는데요 근데 가만생각해보니실제 MemotyItemRepository에 보면@Repository 어노테이션을 사용하고있는데해당 어노테이션을 사용하면 자동으로 빈에 등록해주는 역할을해주는걸로알고있는데 config 에서 직접 new 를 통해 주입해주고있는데굳이 왜 빈에 등록해야하는거지?라는 의문이 들어서요 MemoryItemRepository에서@Repository 어노테이션을 사용하지 않아도전혀 문제가 없을것같은데 굳이 왜 사용하는 건지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강의 마지막 QueryDSL 사용 부분 질문있습니다
JPA를 사용하는 강의라고 하지만 QueryDSL에 대한 코드만 딱 보여주고 이게 어떤 dependency를 추가하고 build를 해서 사용해야한다는 등의 설명이 일절 없는것이 아쉽습니다. 강의 교재에도 해당 내용은 기재되어있지 않은데 왜 코드를 실제로 적용하는 부분에 대해서나 테스트 코드 작성에 대해서는 따로 언급이 없으신건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 좋은 강의로 공부하고 있는 대학생입니다. 이번 영상에서 ItemService 클래스의 updateItem 메서드에서 값을 변경하는 부분을 각 변수에 대해 set 으로 접근하는 방법 대신 item 클래스 내부에서 change() 메서드를 선언 후 사용하는 방법으로 직접 수정해보려고 합니다. 그런데 만약 클라이언트에서 isbn과 author 값을 수정하고 싶다면, item 도메인에서는 두 변수에 대한 선언이 안되어있는데 item 엔터티 구조를 변경하는 방향으로 수정 로직을 작성해야 할지 궁금해서 질문 남깁니다.
-
해결됨[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발
남은 수업은 언제 올라올까요,,
남은 수업은 언제 올라올까요? 빨리 듣고 싶습니다.ㅎㅎ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
도메인 모델 패턴 vs 트랜잭션 스크립트 패턴
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]주문 서비스에서 주문, 주문 취소 메서드 비즈니스 로직이 엔티티에 있는데 이렇게 엔티티가 비즈니스 로직을 가지는 도메인 모델 패턴과 서비스에서 비즈니스 로직을 처리하는 트랜잭션 스크립트 패턴 중에 실무에서는 보통 어떤 것을 사용하나요? 각각의 장단점이 있는지도 궁금합니다
-
해결됨[Lv1] 면접에서 설명할 수 있는 Spring Boot - 경험으로 답변하는 백엔드 개발
데이터베이스 교육자료
수강평 남기고 디코에 인증했는데 db lv0 파일은 어떻게 받을수 있을까요
-
미해결스프링 핵심 원리 - 기본편
beanB
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]beanB.java에서 애초에 @Component가 안붙어서 빈으로 관리가 안되지 않나요?예를 든다고 하면 @Component를 붙히고 @MyExcludeComponent를 붙여야지 이해가 더 쉬울 것 같습니다....!! 제가 틀릴 수도 있는데 감히...!!조심스럽게 여쭤봅니다..!!