inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

“외부 API” 호출이 실패한 경우 “내 서비스” DB 데이터의 정합성은 어떻게 되나요?

해결됨

백엔드 6주 실전 미션과 1:1 피드백으로 완성하는 합격 포트폴리오

안녕하세요 딩코딩코님! 수업 감사히 듣고있습니다! 아래 코드에서 트랜잭션 범위를 최소화하기 위해 1. 기존 서비스로 이벤트 참가 처리 메서드에만 @Transactional이 붙여져 있습니다. 이미 커밋이 된 상태이기 때문에, 2. 외부 API 호출이 실패해서 RuntimeException 예외를 던져도 “내 서비스”의 DB에는 “참가자 수 증가”와 “참가자 정보 저장”이 된 상태일 것으로 생각되는데, 이 경우, 아래 두가지 옵션 중 선택하는 것이 좋은 방법인지 트랜잭션 범위를 2. 까지 늘린다. 외부 API 호출 실패 시 “참가자 수 감소”, “참가자 정보 삭제” 로직을 추가한다. 아니면, 더 좋은 옵션이 있는지 궁금하여 질문드리게 됐습니다! public class ImprovedEventJoinWithExternalApiUpdateFacade { private static final String TEST_PHONE_NUMBER = "01012341234"; private final EventExternalUpdateService eventJoinService; private final ExternalEventApi externalEventApi; private final ApplicationEventPublisher eventPublisher; public void joinEvent(Long eventId, Long memberId) { // 1. 기존 서비스로 이벤트 참가 처리 EventWithLockParticipant participant = eventJoinService.joinEventWithTransaction(eventId, memberId); // 2. 외부 API 호출 ExternalEventResponse response = externalEventApi.registerParticipant( eventId, memberId, participant.getEvent().getName() ); if (!response.isSuccess()) { throw new RuntimeException("외부 API 호출 실패: " + response.getErrorMessage()); } // 3. 외부 API 응답으로 참가자 정보 업데이트 eventJoinService.updateExternalId(participant, response.getExternalId()); // 4. 이벤트 발행 (트랜잭션 커밋 후 실행됨) eventPublisher.publishEvent(new EventJoinCompletedEvent( eventId, participant.getEvent().getName(), TEST_PHONE_NUMBER )); } }

  • java
  • spring
  • mysql
  • redis
  • 이력서
이길훈 댓글 2 좋아요 0 조회수 211

https 설정 질문

해결됨

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

안녕하세요 강의 도커랑 cicd부분 보고 저희 동아리 프로젝트 초기설정을 했습니다! 동료가 소셜 로그인 구현한다고 해서 https 설정을 해달라고 하는데 제가 예전에 배운 내용은 nginx에 vi로 어떤 설정을 하고 ec2 내에 certbot을 설치하는 것으로 기억합니다 만약 이 강사님 이 알려주신 설정으로 이걸 하려면 도커 컨테이너 들어가서 nginx에 vi로 문서를 작성하는게 맞을까요? 걱정되는게 그러면 컨테이너를 삭제후 재실행하면 문서를 또 작성해야 하는게 걱정됩니다 제가 말한 방법이 맞는건지 아니면 다른 방법이 있는건지 궁금합니다 ai한테도 도움을 요청했는데 docker-compse.yml 에 쓰는 방식을 추천하는 것 같습니다 강사님께서 알려주신 docker-compse에 저 코드들을 붙여넣어도 괜찮을까요?

  • aws
  • mysql
  • docker
  • spring-boot
  • jpa
김태우 댓글 2 좋아요 1 조회수 128

강의 섹션 8: 네드워크 -프로그램 3부분 10:45 오타?

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

교안에서는 p.29 인데 여기서 여러 서버가 접속해도 문제없이 작동하는것을 확인할 수 있다 부분이 헷갈려서요. 여러 클라이언트가 접속해도로 바뀌어야 되는거 아닌가요. 지금 클라이언트 여러대에 서버 한대에 그 서버에서 쓰레드 만들어서 작동하는 걸로 이해했는데 혹시 제가 잘못 이해한걸까요. 감사합니다.

  • java
  • 네트워크
  • 객체지향
swdevelop24 댓글 2 좋아요 0 조회수 122

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

저는 application.yml 파일에서 mysql username 과 password 를 전부 .env 파일에 넣고 $ {} 를 써서 나타냈습니다. 그래서 .env 파일은 깃허브에 올리면 안돼서 배포해도 제대로 안돌아갈것 같아서 그런데. 혹시 강사님께서는 aws 배포하실때 db username, password 와 같은 민감한 정보들은 어떻게 처리하여 배포하시는걸 추천드리나요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
커디널스 댓글 1 좋아요 0 조회수 114

영문 워드프레스를 해보고 싶은 욕심이 생기네요(영문으로 바꿔려면 뭘바꿔야 하는지 궁금합니다.)

해결됨

수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화

아무래도 국내 워드프레스 보단 영문워드프레스가 클릭당 단가도 쌔서요 아래는 코파일럿의 답변입니다. n8n 영문워드프레스 한글워드프레스 수익비교 핵심 인사이트 • 영문 워드프레스는 CPC가 높고 글로벌 트래픽을 받을 수 있어 애드센스 수익이 한글 블로그보다 2~5배 이상 높을 수 있음 • n8n 자동화는 콘텐츠 기반이 아니라 서비스 기반 수익을 만들 수 있어 예: 자동화된 이메일 발송, API 호출, 데이터 처리 → SaaS 형태로 수익화 가능 • 한글 워드프레스는 쿠팡파트너스 등 제휴마케팅이 가능하지만 트래픽 확보가 어렵고 단가가 낮은 편 💡 추천 전략 • n8n + 영문 워드프레스 조합이 가장 강력합니다: • n8n으로 콘텐츠 자동 생성 → 워드프레스에 포스팅 → 애드센스 수익 • ChatGPT로 글 생성 → n8n으로 예약 발행 → SEO 최적화 • 한글 워드프레스는 정보성 콘텐츠 + 제휴마케팅에 특화되어 있지만 수익 단가가 낮고 경쟁이 치열합니다

  • docker
  • n8n
  • 인공지능(ai)
  • 프롬프트엔지니어링
  • ai-활용-(ax)
  • 카카오공채-개발
1분 1minute 댓글 1 좋아요 0 조회수 71

proxy hosts에서 api.내도메인, files.내도메인, n8n.내도메인,portainer.내도메인 만들었는데요 그냥 내도메인으로 된 proxy host가 있어야 되는 이유 그리고 만드는 법 알려주시면 감사드려요

해결됨

수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화

proxy hosts에서 api.내도메인, files.내도메인, n8n.내도메인,portainer.내도메인 만들었는데요 그냥 내도메인으로 된 proxy host가 있어야 되는 이유 그리고 만드는 법 알려주시면 감사드려요 우여곡절 끝에 18강 다 들었습니다. 중간에 프록시 전체 날라가고 다시 설정했는데 내 도메인주소 로만 만들어진 프록시 호스트가 필요한 이유를 알고 싶습니다.

  • docker
  • n8n
  • 인공지능(ai)
  • 프롬프트엔지니어링
  • ai-활용-(ax)
  • 카카오공채-개발
1분 1minute 댓글 3 좋아요 0 조회수 102

개인 커스텀

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

두 가지 질문이 있습니다. 1. CLAUDE.md 개인 커스텀 하는 방법과 그 파일을 수정하는 명령어 혹은 방법 2. User, Project 스코프 하는 방법을 쫌 더 상세하게 알려주세요

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
kimoon Hong 댓글 2 좋아요 0 조회수 90

오타?복붙실패

미해결

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

InFearLearn 서버 침입 사건: 해커 패턴 추적 작전 작전 수행을 위한 실전 코드부터 살펴보자. 여기코드에서 @Bean @StepScope public MongoCursorItemReader<SecurityLog> securityLogReader( 이 아이템리더쪽 복붙하고 안다듬어서 들여쓰기 밀림

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
qwerty jon 댓글 2 좋아요 1 조회수 94

인증 알림 추가 문의

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

카카오톡 주간학습 알림 중 주말 인증은 당일 저녁이나 오후 정도에 한 번 더 알림을 주실 수 있을까요? 학습은 꾸준히 했는데, 개인사정상 주말에 집중하기 힘들어서 인증을 놓쳐서 아쉬운데, 약간의 도움이 더 있으면 좋겠습니다.

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
설모 댓글 1 좋아요 0 조회수 81

컨슈머 이벤트 중복 처리

해결됨

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

안녕하세요! 자주 질문드리는데 정성껏 답변해주셔서 감사합니다! 동일한 이벤트가 중복 전송될 가능성이 있기 때문에 article-read 서비스에 이벤트 id를 통한 중복 처리 로직을 추가 하려고합니다. article-read 는 redis를 사용하고 있기 때문에 redis에 이벤트 id를 저장해 해결하려고했습니다. 예를 들어 article-read가 이벤트를 받았을때 redis 에서 이벤트 id 확인 동일한 이벤트 id가 저장돼 있으면 추가 처리 안하고 message ack redis 에서 이벤트 id 확인 동일한 이벤트 저장된게 없으면 서비스 로직 수행 서비스 로직 결과 redis 업데이트 처리 완료한 이벤트 id redis 저장 이런식으로 진행하려 했으나 만약 어떠한 문제로 인해 서비스 로직 결과 redis 업데이트 ( 성공 ) 처리 완료한 이벤트 id redis 저장 ( 실패 ) 하게되면 이벤트 처리는 성공했지만 처리된 이벤트 저장에는 실패해 추후에 중복 처리가 발생할 가능성이 생길 것 같습니다. 이러한 문제 해결을 위해 서비스 로직 결과 redis 업데이트 처리 완료한 이벤트 id redis 저장 두 작업을 하나의 트랜잭션으로 묶어 처리하려고했지만 rdb 와 동작이 다르기 때문에 (롤백 기능 제공 안함 등) 적절한 방법인지 판단이 안서는 상태네요 혹시 article-read에 이벤트 중복 처리를 한다고 하면 어떻게 구현이 가능할지 여쭤보고싶습니다

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

4-9 낙관적 락, 비관적 락

해결됨

백엔드 6주 실전 미션과 1:1 피드백으로 완성하는 합격 포트폴리오

해당 강의 수강 중 Facade 패턴에 대해 알게 되었습니다 그런데 테스트 코드에만 Facade가 적용되어 있고 Controller에는 바로 서비스 코드를 호출하게 되어 있는데요. 학습용 예시 코드여서 이런 것인지 다른 의도가 있는것인지 궁금합니다!

  • java
  • spring
  • mysql
  • redis
  • 이력서
goldrex123 댓글 2 좋아요 0 조회수 75

PVC실습 질문 (왜 hostPath 실습이 영향을 주는지)

미해결

대세는 쿠버네티스 (초급~중급편)

안녕하세요. 강사님 Volume-실습 강의 11:42에서 "아까 hostPath실습에 만들어 놓은 path를 사용하기 떄문에 file.txt가 보인다" 위 말씀을 통해 아래와 같이 결론을 낼 수 있을까요? hostPath실습때 만든 Volume과 PVC 실습에서 만든 PV는 워커노드1의 /node-v 경로를 공유한다 왜냐하면

  • docker
  • kubernetes
  • devops
  • container
창신동 장첸 댓글 1 좋아요 1 조회수 65

토큰으로 구매해도 괜찮을까요?

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

토큰 구매 페이지가 먼저떠서,, 토큰으로 구매했는데, 가성비가 더 나쁠까요

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
wonder010 댓글 2 좋아요 0 조회수 104

제대로 이해한게 맞나 궁금합니다

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

close() 메서드에서 synchronized와 if(closed){ return; } 조건문을 해준 이유가 해당 세션 종료시 close() 메서드 호출과 서버 종료시 SessionManager의 closeAll()을 통한 close() 메서드 호출이 동시에 되고 중복으로 호출 되는걸 막기 위해서 해준거라고 이해하면 될까요?

  • java
  • 네트워크
  • 객체지향
jkyjong 댓글 1 좋아요 0 조회수 111

첫째주 수요일 질문

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

cd Wed/ 부터 시작하는데, 우분투를 껐다가 켜면 다 리셋되는거니까 cd _Book_Claude-Code/Week1/Wed/ 로 해서 실행하는게 맞나요? 그리고 Wed에서 Thu로 바꾸는 방법이 있나요? /quit 하고 Thu/를 입력해도 No such file or directory 라고 뜨면서 안돼서 껐다켜고있습니다. 54쪽에 1번 ! Is가 잘 작동이 안되는데 뭘하는건지 잘 모르겠습니다. ! for bash mode라고 뜨는데요. Is를 입력하면 /bin/bash: line1: Is: command not found 라고 뜹니다.

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
각낙닥락 댓글 2 좋아요 0 조회수 65

messagerelayconfig클래스에서

해결됨

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

bootstrapServers의 value값은 어디에 가져오는건가요? yml이나 properties파일은 없는 거 같은데..

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

맨마지막 강의때 application.yml 에 db url 질문

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

안녕하세요 강의 정말 잘 듣고 있습니다 너무 감사합니다. 맨마지막 강의때 spring boot + mysql + redis 컨테이너를 docker compose 를 통해 배포하는 과정에서 jar 파일이 mysql 과 커넥션을 맺어주기 위해서는 전에 강의에서 했던 것 처럼 mysql 컨테이너 service 명으로 url 을 application.yml 에 변경해야 되는게 아닌가요?? 그런 작업이 없었는데도 잘 동작하는게 의아합니다. 디폴트로 in memory db(H2) 가 구동이 된 걸까요?

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
leeseongju 댓글 2 좋아요 0 조회수 80

git clone 오류?

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

$ git clone https://github.com/sysnet4admin/_Book_Claude-Code.git Cloning into '_Book_Claude-Code'... remote: Enumerating objects: 2458, done. remote: Counting objects: 100% (182/182), done. remote: Compressing objects: 100% (137/137), done. remote: Total 2458 (delta 93), reused 107 (delta 45), pack-reused 2276 (from 2) Receiving objects: 100% (2458/2458), 23.96 MiB | 11.07 MiB/s, done. Resolving deltas: 100% (550/550), done. error: invalid path 'week4/Thu/[클로드_코드]_p329외_npx:uvx는_왜_AI_시대에_필요 하며_동시에_위험할까요.pdf' fatal: unable to checkout working tree ~/projects/_Book_Claude-Code (main) $ ls git clone할때 error가 있더니, ls 명령어를 쳐도 아무것도 안나와요.. window/bash 사용

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
댓글 2 좋아요 0 조회수 160

Circuit Breaker 질문

해결됨

멀티 모듈 아키텍처로 구현하는 은행 서버 핵심 기능 [ Kotlin & Spring ]

안녕하세요. circuit breaker 코드를 봤을 때 간략하게 circuit breaker가 이런거다 라고 설명해주셨지만, 추가로 궁금한 점이 있어 질문 드립니다. 만약 인스턴스가 여러개인 상황에서는 로컬 상황만 보는게 아니라 전체 인스턴스 상황을 봐야할 것 같은데 이럴 떄는 circuit breaker를 어떻게 사용해야 하는지 궁금합니다. 감사합니다.

  • java
  • spring
  • kotlin
  • mysql
  • spring-boot
HAHA 댓글 2 좋아요 0 조회수 102

이미지 생성오류 (코드업데이트가 너무 필요해보입니다..)

미해결

나도! 스프링으로 인공지능을 할 수 있다(인프1탄)

안녕하세요. 강의를 듣고있는 사람입니다. 버전이 변경되다보니 강의 내용을 그대로 수행한다면 정상적으로 작동하는 Project들이 몇 없네요.. DALL-E 2 모델로 이미지를 생성하는 경우 오류 발생 DALL-E 2 모델에서는 withQuality("hd")와 같은 옵션을 지원하지 않는다고합니다. 해당 라인을 제거해주시면 정상작동합니다. DALL-E 3 의 경우 withQuality를 지원하는데, 지정하지 앟는다면 standard 값이 기본으로 들어가며 hd를 원하시는 경우 따로 if ("dall-e-3".equals(model)) { optionsBuilder.withQuality("hd"); } 위와같이 옵션을 주입하여 사용하시면 될것같습니다.

  • java
  • spring
  • spring-boot
  • 인공지능(ai)
  • spring-ai
skyjoon2 댓글 1 좋아요 0 조회수 152

인기 태그

인프런 TOP Writers

주간 인기글