inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

무중단 배포 / 컨테이너 이미지 관리에 주로 어떤 인프라를 활용하시나요?

해결됨

누구보다 빠르게 배우는 Nginx + Docker + Springboot 서버 무중단 배포

강의에선 컨테이너 이미지를 DockerHub에 등록해서 사용하셨고, 리버스 프록시를 위해 EC2에 Nginx를 띄워서 사용하셨는데요! AWS 인프라를 활용하는 환경이라면 AWS ALB나 AWS ECR을 쓰고, Terraform 같은 IaC 기술을 활용하면 인프라 구축에 필요한 비용을 많이 줄일 수 있을 것 같다는 생각이 들었습니다. 그럼에도 Docker Hub나 Nginx 인프라를 추가하여 사용한다면 어떤 장점이 있는지 궁금합니다. 실무에선 주로 인프라 구성을 어떻게 하는지도 궁금합니다!

  • kotlin
  • docker
  • spring-boot
  • ci/cd
  • nginx
bebe 댓글 1 좋아요 0 조회수 91

헥사고날 아키텍처에서의 배치, 시큐리티, 비동기 이벤트 처리는 어떻게 하나요?

미해결

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

안녕하세요, 이번 강의를 통해 처음으로 헥사고날 아키텍처에 대해서 공부하고 있는 사람입니다. 헥사고날 아키텍쳐를 지키면서 배치, 시큐리티, 이벤트 처리 등등 다양한 기술을 어떻게 사용하나요? 제가 공부해본 바로는 1. 배치: 애플리케이션 계층에 배치를 통해 이루어질 api를 만들어두고, 어댑터 계층엔 배치(Job, Step, Writer, Reader등 )에 관한 설정들을 위치하게 한다. 2. 시큐리티: 전부 어댑터에 위치한다. 이벤트 처리: 이벤트는 도메인으로 간주하고 도메인 계층에 위치시키고, 이벤트 리스너는 어댑터 계층에 위치시킨다. 이벤트를 발행시키는 로직은 애플리케이션 계층에 위치하고, ApplicationEventPublisher 같은 경우는 추상화됐다고 판단하고 그냥 사용하거나, 혹은 인터페이스를 따로 만들어서 사용한다. 이정도인데 큰 흐름에서 제가 이해한 게 맞을까요? 특히 궁금한 건 "이벤트가 도메인으로 간주되어도 문제가 없는지" 입니다. (무조건 도메인이기 보다는 로직을 처리하기 위해 존재하는 dto로 볼 수도 있는 거 아닌가 싶어서요.) 다른 기술들을 헥사고날 아키텍쳐에 적용시킬 때 주의할만한 사항들도 따로 존재를 할까요?

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

jobParameter를 통한 멱등성 질문

해결됨

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

안녕하세요 우선 좋은 강의 감사드립니다. 덕분에 Batch에 대한 기본적인 틀을 잡을 수 있을 것 같아요! 중급강의도 기대됩니다. 실습을 따라가던 와중, 멱등성을 유지하기 위해서 궁금한점이 생겨서 질문드립니다. 같은 파라미터로 완료된 job은 재실행을 허용하지 않기 때문에 parameter로 time을 넣어주셨는데요. 그렇게 되면 만약에 job을 실패지점부터 재실행 하고 싶은 경우에는 targetDate 뿐만 아니라 실패한 시간대에 time 파라미터까지 넣어서 재시작을 해야하는 것인가요? 만약에 time 파라미터를 추가한 상태에서, 이전 실행과 다른 time 파라미터로 완료된 job을 재실행 할경우에는 정산 테이블에서 targetDate에 해당하는 값을 DELETE를 하고 INSERT를 진행해야 멱등성이 유지될 것 같습니다. 이럴 경우 DELETE 같은 경우는 Settlement INSERT 작업 이전에 별도의 Step으로 구성이 되야할까요? 만약에 DELETE를 해야한다면 DELETE의 경우에는 targetDate의 해당 하는 값을 한번에 전부 지우고 INSERT를 시작하는지 궁급합니다..!

  • mysql
  • jenkins
  • spring-boot
  • spring-batch
  • gradle
iii 댓글 2 좋아요 1 조회수 132

지금 이게 맞는건지 문의드립니다.

미해결

Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기

배워보려고 결제하고 듣는중입니다. create-react-app 부터 적용되지가 않네요 Deprecate되었다고 나오고 React-Router에서 각페이지 분기시부터 에러가 발생하네요 각페이지 마다 수업에 따라가려면 버전을 낮춰야 하는건가요?

  • mysql
  • rest-api
  • spring-boot
  • jpa
  • react.js
하나라도더 댓글 1 좋아요 0 조회수 73

bootRun FAILED 에 대한 문의

해결됨

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

강사님 안녕하세요~! 배치 실패시 서버 담당자에게 메일 보여주기 수업 잘들었습니다! 마지막에 실패시 리스너 동작을 테스트 하시기 위해서 예외를 던지신듯 합니다. 그런데 실습 결과가 강사님과 다르게 bootRun FAILED라고 나와서요. (> Task :bootRun FAILED FAILURE: Build failed with an exception.) 사소한 것 같기는 한데 이유가 궁금해서 글남깁니다~ 좋은 하루되세요~~!

  • mysql
  • jenkins
  • spring-boot
  • spring-batch
  • gradle
  • buildfailed
  • bootrunfailed
쿠카이든 댓글 2 좋아요 1 조회수 137

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 영상에선 정렬되서 나오는데 제 DB에서는 price부터 나오네요 코드 에러는 없고 넣으면 들어가는데 보기좋게 정렬되게 만들고 싶은데 어떻게 해야할까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
박혁진 댓글 1 좋아요 0 조회수 92

application.yaml에서 enabled: true 인식 안됨

해결됨

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

Spring Data JPA 다루기 영상 5:47까지 따라하는 와중에 enabled: true에서 enabled에 노란 밑줄이 그이고 true가 제대로 인식되지 않습니다. 무슨 문제인지 도저히 모르겠습니다.

  • aws
  • mysql
  • docker
  • spring-boot
  • jpa
댓글 4 좋아요 3 조회수 187

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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; }

  • java
  • spring
  • spring-boot
  • jpa
김민석 댓글 1 좋아요 2 조회수 150

[참고] Tasklet 인터페이스로 단일 배치 작업 처리 수업에 나온 코드 돌리는 방법

해결됨

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

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" 로 실행하시면 됩니다 감사합니다

  • mysql
  • jenkins
  • spring-boot
  • spring-batch
  • gradle
  • tasklet
  • 단일배치
쿠카이든 댓글 2 좋아요 2 조회수 132

kafka 업데이트 강의 듣고 시포요

미해결

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

선생님 kafka 업데이트 강의 듣고 싶어요 ♥

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
magicsof 댓글 2 좋아요 0 조회수 150

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

미해결

실전! 스프링 데이터 JPA

[질문 템플릿] 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 existsBy UserId And ProjectId (Long userId, Long projectId) 단점: 이 메서드를 실행하면, project_members 테이블에 user_id , project_id FK가 있음에도 불구하고 users , projects 테이블과 불필요한 left join이 발생 했습니다. 실행 SQL: select pm1_ 0.id from project_members pm1_0 left join users u1_0 on u1_ 0.id = pm1_0.user_id left join projects p1_0 on p1_ 0.id = pm1_0.project_id where u1_ 0.id = ? and p1_ 0.id = ? fetch first ? rows only; 2. 엔티티 사용 : boolean existsBy User And Project (User user, Project project) 장점: 이 경우에는 조인 없이 where 절에서 FK 컬럼으로 조회 되었습니다. 단점: 하지만, 이 메서드를 사용하려면 서비스에서 userId, projectId 를 이용하여 User와 Project를 추가로 조회 해야 한다는 단점이 있습니다. 실행 SQL: select pm1_ 0.id from project_members pm1_0 where pm1_0.user_id = ? and pm1_0.project_id = ? fetch first ? rows only; 결론: 이 경우 두 방식 중 어떤 것을 사용하는 것이 더 좋은 선택인가요?

  • java
  • spring
  • spring-boot
  • jpa
치즈볼 댓글 1 좋아요 0 조회수 102

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

미해결

실전! 스프링 데이터 JPA

[질문 템플릿] 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 existsBy UserId And ProjectId (Long userId, Long projectId) 단점: 이 메서드를 실행하면, project_members 테이블에 user_id , project_id FK가 있음에도 불구하고 users , projects 테이블과 불필요한 left join이 발생 했습니다. 실행 SQL: select pm1_ 0.id from project_members pm1_0 left join users u1_0 on u1_ 0.id = pm1_0.user_id left join projects p1_0 on p1_ 0.id = pm1_0.project_id where u1_ 0.id = ? and p1_ 0.id = ? fetch first ? rows only; 2. 엔티티 사용 : boolean existsBy User And Project (User user, Project project) 장점: 이 경우에는 조인 없이 where 절에서 FK 컬럼으로 조회 되었습니다. 단점: 하지만, 이 메서드를 사용하려면 서비스에서 userId, projectId 를 이용하여 User와 Project를 추가로 조회 해야 한다는 단점이 있습니다. 실행 SQL: select pm1_ 0.id from project_members pm1_0 where pm1_0.user_id = ? and pm1_0.project_id = ? fetch first ? rows only; 결론: 이 경우 두 방식 중 어떤 것을 사용하는 것이 더 좋은 선택인가요?

  • java
  • spring
  • spring-boot
  • jpa
댓글 3 좋아요 0 조회수 146

프로덕트와 프로덕트카테고리 사이의 삭제 정책

해결됨

제미니의 개발실무 - 커머스 백엔드 기본편

안녕하세요, 선생님! 좋은 강의 제공해주셔서 감사합니다. 덕분에 단순히 구현에만 집중하기보다, 설계와 개념에 대해 더 고민하면서 코드를 작성하게 되었습니다. 섹션 2의 ‘개념 느끼기’ 부분에서 Product가 Product Category보다 더 상위의 개념이라고 말씀해주셨던 것으로 기억합니다. 저도 그렇게 이해했습니다. 그런데 코드 구현 파트에서 Product와 Product Category 사이의 삭제 정책을 두 가지 예시로 설명해주셨는데, 그 부분에서 한 가지 궁금증이 생겼습니다. 제 생각에는 개념적으로 Product가 더 상위 개념이라면, Product가 삭제될 때 Product Category도 함께 삭제되는 정책이 조금 더 자연스러운 흐름처럼 느껴졌습니다. 이 부분에 대해 제가 개념을 잘못 이해한 것인지, 아니면 실무적인 관점에서 추가로 고려해야 할 부분이 있는지 궁금합니다. 혹시 제가 놓치고 있는 관점이 있다면 조언 부탁드립니다!

  • kotlin
  • spring-boot
  • 도메인
  • dbms/rdbms
  • backend
신준호 댓글 2 좋아요 1 조회수 115

MCP 연동관련

해결됨

Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복

CLAUDE 에서 json 파일 수정하였고, { "mcpServers": { "jetbrains": { "command": "npx", "args": ["-y", "@jetbrains/mcp-proxy"] } }} 인텔리제이는 2025.2.6.1 버전 다운로드 후, MCP 서버 활성화 해둔 상태입니다. 하지만 계속 프로그램 재실행 하여도, Claude 부분이 활성화되지 않네요. 윈도우 10 사용중입니다. 추가로 어디를 확인하면 될까요?

  • kotlin
  • spring-boot
  • intellij-idea
  • 클론코딩
  • mcp
김완수 댓글 4 좋아요 0 조회수 214

클로드 개발자 구성편집 설정시 문제점

해결됨

Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복

{ "mcpServers" : { "jetbrains" : { "command" : "npx" , "args" : [ "-y" , "@jetbrains/mcp-proxy" ] } } } 이거설정하면 클로드 앱 화면자체가 안나오네요. ㄷㄷ

  • kotlin
  • spring-boot
  • intellij-idea
  • 클론코딩
  • mcp
Minkoo Lee 댓글 2 좋아요 0 조회수 145

2025.3.3 인텔리제이 버전에서 MCP설정하는 방법

해결됨

Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복

정보가 조각조각 되어있어서 처음 시작 부터 어렵네요. 윈도우11 환경입니다. 인텔리제이 MCP서버 클라이언트 자동구성 쪽에 claude가 안뜹니다. 현재 강의에서 claude설치후 구성편집 들어가서 노션에 있는거 복사후 claude종료 후 재실행한 상태입니다.

  • kotlin
  • spring-boot
  • intellij-idea
  • 클론코딩
  • mcp
Minkoo Lee 댓글 2 좋아요 0 조회수 534

service 를 interface 로 두는 이유

해결됨

실시간 채팅 서버 구축: 분산 처리부터 성능 최적화까지

안녕하세요 강사님. 서비스 계층을 설계할 때 인터페이스를 두고 구현체를 만드는 패턴을 사용하는 이유가 궁금합니다. 현재 프로젝트에서는 구현체가 하나뿐인데, 이런 상황에서도 인터페이스를 분리하는 것이 가지는 실질적인 이점이 무엇인지 알고 싶습니다. 특히 구현이 하나로 고정되어 있다면, 바로 구현 클래스를 빈으로 등록해도 되지 않을지 고민이 되었는데요. 설계 관점에서 인터페이스를 미리 분리해두는 이유와, 실무에서 어떤 장점이 있는지 설명해주시면 감사하겠습니다

  • spring
  • kotlin
  • spring-boot
  • websocket
쵸잉 댓글 1 좋아요 0 조회수 107

23강 5:38 부분 질문 있습니다!

해결됨

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

m=32MB짜리 10개와 m=512MB짜리 1개의 경우를 비교해주셨습니다. 그런데 이는 샤딩을 통해서 메모리 효율적으로 됐다기 보다는 메모리 총량이 512MB->320MB로 감소했기 때문에 오차율이 조금 증가하는 대신 메모리를 덜 쓸 수 있는 것 아닌가요? 예를 들어 320MB 짜리 1개인 경우와 32MB짜리 10개인 경우의 오차율이 똑같지 않나 하는 생각이 들어서 질문드립니다!

  • spring-boot
  • redis
  • backend
  • 시스템-디자인
  • cache
발그레지는개발 댓글 1 좋아요 0 조회수 71

인기 태그

인프런 TOP Writers

주간 인기글