묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
jobParameter를 통한 멱등성 질문
안녕하세요 우선 좋은 강의 감사드립니다. 덕분에 Batch에 대한 기본적인 틀을 잡을 수 있을 것 같아요! 중급강의도 기대됩니다.실습을 따라가던 와중, 멱등성을 유지하기 위해서 궁금한점이 생겨서 질문드립니다.같은 파라미터로 완료된 job은 재실행을 허용하지 않기 때문에 parameter로 time을 넣어주셨는데요.그렇게 되면 만약에 job을 실패지점부터 재실행 하고 싶은 경우에는 targetDate 뿐만 아니라 실패한 시간대에 time 파라미터까지 넣어서 재시작을 해야하는 것인가요?만약에 time 파라미터를 추가한 상태에서, 이전 실행과 다른 time 파라미터로 완료된 job을 재실행 할경우에는 정산 테이블에서 targetDate에 해당하는 값을 DELETE를 하고 INSERT를 진행해야 멱등성이 유지될 것 같습니다. 이럴 경우 DELETE 같은 경우는 Settlement INSERT 작업 이전에 별도의 Step으로 구성이 되야할까요?만약에 DELETE를 해야한다면 DELETE의 경우에는 targetDate의 해당 하는 값을 한번에 전부 지우고 INSERT를 시작하는지 궁급합니다..!
-
미해결Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기
지금 이게 맞는건지 문의드립니다.
배워보려고 결제하고 듣는중입니다. create-react-app 부터 적용되지가 않네요 Deprecate되었다고 나오고 React-Router에서 각페이지 분기시부터 에러가 발생하네요 각페이지 마다 수업에 따라가려면 버전을 낮춰야 하는건가요?
-
해결됨Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
bootRun FAILED 에 대한 문의
강사님 안녕하세요~! 배치 실패시 서버 담당자에게 메일 보여주기 수업 잘들었습니다! 마지막에 실패시 리스너 동작을 테스트 하시기 위해서 예외를 던지신듯 합니다. 그런데 실습 결과가 강사님과 다르게 bootRun FAILED라고 나와서요. (> Task :bootRun FAILEDFAILURE: Build failed with an exception.) 사소한 것 같기는 한데 이유가 궁금해서 글남깁니다~ 좋은 하루되세요~~!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품 등록후 H2 db 출력 순서 바꿀 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 영상에선 정렬되서 나오는데 제 DB에서는 price부터 나오네요 코드 에러는 없고 넣으면 들어가는데 보기좋게 정렬되게 만들고 싶은데 어떻게 해야할까요?
-
해결됨Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
application.yaml에서 enabled: true 인식 안됨
Spring Data JPA 다루기 영상 5:47까지 따라하는 와중에 enabled: true에서 enabled에 노란 밑줄이 그이고 true가 제대로 인식되지 않습니다. 무슨 문제인지 도저히 모르겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]현재 최신 버전인 SpringBoot4 + Hibernate7 을 사용해서 강의를 듣고 있습니다.이 버전에서는 (Hibernate 모듈 등록 X + 프록시 직접 초기화 X] 상태에서 API 응답으로 엔티티를 곧바로 반환하게 되면, 강의 내용처럼 오류(예외)가 나지 않고, Jackson이 json을 만드는 과정에서 getter 등을 호출해서 프록시 객체들을 자동으로 초기화(로딩)시키는 것처럼 보이네요. 응답 결과에서도 모두 출력되고요(물론, @JsonIgnore 없으면 무한루프는 발생)그래서 강의 내용처럼 오류가 나도록 하는 방법을 한참 찾다가 현재 버전에서 Hibernate 모듈을 등록하는 방법을 발견해서 공유해봅니다. (메뉴얼에도 없길래) [등록 방법]1. 라이브러리 등록implementation 'tools.jackson.datatype:jackson-datatype-hibernate7'2. 빈 등록 @Bean public Hibernate7Module hibernate7Module() { Hibernate7Module module = new Hibernate7Module(); // module.configure(Hibernate7Module.Feature.FORCE_LAZY_LOADING, true); return module;}
-
해결됨Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
[참고] Tasklet 인터페이스로 단일 배치 작업 처리 수업에 나온 코드 돌리는 방법
package com.system.batch.sy_batch_system.ch03; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.job.Job; import org.springframework.batch.core.job.builder.JobBuilder; import org.springframework.batch.core.repository.JobRepository; import org.springframework.batch.core.step.Step; import org.springframework.batch.core.step.builder.StepBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.PlatformTransactionManager; @Configuration @RequiredArgsConstructor public class CafeJobConfig2 { private final JobRepository jobRepository; private final PlatformTransactionManager transactionManager; @Bean public Job cafeJob2() { return new JobBuilder("cafeJob2", jobRepository) .start(cafeStep2()) .build(); } @Bean public Step cafeStep2() { return new StepBuilder("cafeStep2", jobRepository) .tasklet(cafeJobTasklet2(), transactionManager) .build(); } @Bean public CafeJobTasklet cafeJobTasklet2() { return new CafeJobTasklet(); } }ch03 에 위에 코드 작성하시고 powerShell(윈도우일 때).\gradlew bootRun --args="--spring.batch.job.name=cafeJob2" 로 실행하시면 됩니다감사합니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka 업데이트 강의 듣고 시포요
선생님 kafka 업데이트 강의 듣고 싶어요♥
-
미해결실전! 스프링 데이터 JPA
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.=============================안녕하세요.Spring Data JPA에서 연관관계 필드에 대한 exists 메서드 사용 시, 아래 두 방식 중 어떤 방식이 더 적절한지 궁금합니다.ProjectMember 엔티티는 아래처럼 Project, User와 연관되어 있습니다.public class ProjectMember { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "project_id", nullable = false) private Project project; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false) private User user; }사용자가 특정 프로젝트에 포함되어 있는지 확인하려고 할 때, 아래 두 가지 방식을 테스트해봤습니다.1. 식별자 사용: boolean existsByUserIdAndProjectId(Long userId, Long projectId)단점:이 메서드를 실행하면, project_members 테이블에 user_id, project_id FK가 있음에도 불구하고 users, projects 테이블과 불필요한 left join이 발생했습니다.실행 SQL:select pm1_0.idfrom project_members pm1_0left join users u1_0 on u1_0.id = pm1_0.user_idleft join projects p1_0 on p1_0.id = pm1_0.project_idwhere u1_0.id = ? and p1_0.id = ?fetch first ? rows only; 2. 엔티티 사용: boolean existsByUserAndProject(User user, Project project)장점:이 경우에는 조인 없이 where 절에서 FK 컬럼으로 조회되었습니다.단점:하지만, 이 메서드를 사용하려면 서비스에서 userId, projectId 를 이용하여 User와 Project를 추가로 조회해야 한다는 단점이 있습니다.실행 SQL:select pm1_0.idfrom project_members pm1_0where pm1_0.user_id = ? and pm1_0.project_id = ?fetch first ? rows only;결론: 이 경우 두 방식 중 어떤 것을 사용하는 것이 더 좋은 선택인가요?
-
미해결실전! 스프링 데이터 JPA
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.==============================안녕하세요.Spring Data JPA에서 연관관계 필드에 대한 exists 메서드 사용 시, 아래 두 방식 중 어떤 방식이 더 적절한지 궁금합니다.ProjectMember 엔티티는 아래처럼 Project, User와 연관되어 있습니다.public class ProjectMember { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "project_id", nullable = false) private Project project; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false) private User user; }사용자가 특정 프로젝트에 포함되어 있는지 확인하려고 할 때, 아래 두 가지 방식을 테스트해봤습니다.1. 식별자 사용: boolean existsByUserIdAndProjectId(Long userId, Long projectId)단점:이 메서드를 실행하면, project_members 테이블에 user_id, project_id FK가 있음에도 불구하고 users, projects 테이블과 불필요한 left join이 발생했습니다.실행 SQL:select pm1_0.idfrom project_members pm1_0left join users u1_0 on u1_0.id = pm1_0.user_idleft join projects p1_0 on p1_0.id = pm1_0.project_idwhere u1_0.id = ? and p1_0.id = ?fetch first ? rows only; 2. 엔티티 사용: boolean existsByUserAndProject(User user, Project project)장점:이 경우에는 조인 없이 where 절에서 FK 컬럼으로 조회되었습니다.단점:하지만, 이 메서드를 사용하려면 서비스에서 userId, projectId 를 이용하여 User와 Project를 추가로 조회해야 한다는 단점이 있습니다.실행 SQL:select pm1_0.idfrom project_members pm1_0where pm1_0.user_id = ? and pm1_0.project_id = ?fetch first ? rows only;결론: 이 경우 두 방식 중 어떤 것을 사용하는 것이 더 좋은 선택인가요?
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
프로덕트와 프로덕트카테고리 사이의 삭제 정책
안녕하세요, 선생님!좋은 강의 제공해주셔서 감사합니다. 덕분에 단순히 구현에만 집중하기보다, 설계와 개념에 대해 더 고민하면서 코드를 작성하게 되었습니다.섹션 2의 ‘개념 느끼기’ 부분에서 Product가 Product Category보다 더 상위의 개념이라고 말씀해주셨던 것으로 기억합니다. 저도 그렇게 이해했습니다.그런데 코드 구현 파트에서 Product와 Product Category 사이의 삭제 정책을 두 가지 예시로 설명해주셨는데, 그 부분에서 한 가지 궁금증이 생겼습니다.제 생각에는 개념적으로 Product가 더 상위 개념이라면, Product가 삭제될 때 Product Category도 함께 삭제되는 정책이 조금 더 자연스러운 흐름처럼 느껴졌습니다.이 부분에 대해 제가 개념을 잘못 이해한 것인지, 아니면 실무적인 관점에서 추가로 고려해야 할 부분이 있는지 궁금합니다.혹시 제가 놓치고 있는 관점이 있다면 조언 부탁드립니다!
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
MCP 연동관련
CLAUDE 에서 json 파일 수정하였고, { "mcpServers": { "jetbrains": { "command": "npx", "args": ["-y", "@jetbrains/mcp-proxy"] } }}인텔리제이는 2025.2.6.1 버전 다운로드 후, MCP 서버 활성화 해둔 상태입니다.하지만 계속 프로그램 재실행 하여도, Claude 부분이 활성화되지 않네요. 윈도우 10 사용중입니다. 추가로 어디를 확인하면 될까요?
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
클로드 개발자 구성편집 설정시 문제점
{"mcpServers":{"jetbrains":{"command":"npx","args":["-y","@jetbrains/mcp-proxy"]}}}이거설정하면 클로드 앱 화면자체가 안나오네요. ㄷㄷ
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
2025.3.3 인텔리제이 버전에서 MCP설정하는 방법
정보가 조각조각 되어있어서 처음 시작 부터 어렵네요. 윈도우11 환경입니다.인텔리제이 MCP서버 클라이언트 자동구성 쪽에 claude가 안뜹니다.현재 강의에서 claude설치후 구성편집 들어가서 노션에 있는거 복사후 claude종료 후 재실행한 상태입니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
동일하게 실습하는데 이상하게 페이지를 찾지 못하네요..
잘 따라가다 이상하게 여기서 막혀버리네요
-
해결됨실시간 채팅 서버 구축: 분산 처리부터 성능 최적화까지
service 를 interface 로 두는 이유
안녕하세요 강사님.서비스 계층을 설계할 때 인터페이스를 두고 구현체를 만드는 패턴을 사용하는 이유가 궁금합니다.현재 프로젝트에서는 구현체가 하나뿐인데, 이런 상황에서도 인터페이스를 분리하는 것이 가지는 실질적인 이점이 무엇인지 알고 싶습니다.특히 구현이 하나로 고정되어 있다면, 바로 구현 클래스를 빈으로 등록해도 되지 않을지 고민이 되었는데요.설계 관점에서 인터페이스를 미리 분리해두는 이유와, 실무에서 어떤 장점이 있는지 설명해주시면 감사하겠습니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략
23강 5:38 부분 질문 있습니다!
m=32MB짜리 10개와 m=512MB짜리 1개의 경우를 비교해주셨습니다.그런데 이는 샤딩을 통해서 메모리 효율적으로 됐다기 보다는 메모리 총량이 512MB->320MB로 감소했기 때문에 오차율이 조금 증가하는 대신 메모리를 덜 쓸 수 있는 것 아닌가요?예를 들어 320MB 짜리 1개인 경우와 32MB짜리 10개인 경우의 오차율이 똑같지 않나 하는 생각이 들어서 질문드립니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략
23강 17초 부분 질문있습니다~
"Split 전략에서 항상 모든 Split을 조회한다."요 부분이 이해가 가지 않아서 질문드립니다!findSplitIndex로 계산한 split에만 접근하는 것 아닌가요?아니면 모든 스플릿이 단일 redis 내에 존재하는 것이 문제라는 의도로 말씀하신걸까요?
-
미해결최신 Spring AI 기초부터 MCP까지
mcp 사용 여부
안녕하세요 강사님 spring ai 9강 까지 거의 다 들은 학생입니다.1) 만약에 ocr 을 이용해서 영수증과 음식을 구분하는 ai 모델을 aws에서 사용을 하고이걸 스프링 으로 연결해서 저장할려 면 mcp를 거의 필연적으로 사용해야 할 꺼 같습니다.webflux 랑 쿠버네티스 EKS 를 이용해서 만들려고 하는데 이게 프로젝트 수준에서 괜찮은 수준인지 궁금해서 질문 드립니다.참고로 아직 앱 설계 단계라 사진을 찍으면 인식이 되고 db에 저장되고 추천 레시피도 나오는 정도로 생각하고 있습니다. 그리고 채팅 같은 형태에 추천 시스템 같은 경우에는 사용자가 선호하는 음식에 따라 나눈다고 가정했을 때 만약에 처음 음식 선호도를 받는다고 가정을 했을 때 도메인을 통해 구분을해서 type이 아닌 jdbc 또는 pgvector 로 처리를 하나요? 현업에서도 이러는지 궁금해서 질문드립니다. 그리고 채팅을 저장하는 경우 예를 들면 채팅기록 같은 경우 postgresql로 영구 저장을 하고 redis 정도로 해서 빠른 캐싱 정도를 생각하고 있는데 이 정도면 프로젝트 수준에서 괜찮은 수준인지 궁금하여 질문드립니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 교안
강의 교안 지금은 받을수있을까요