inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

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

미해결

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

안녕하세요 쿠케님! 현재 구현되어 있는 댓글 삭제 로직을 보면 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 조회수 10

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

미해결

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

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

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

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

해결됨

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

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

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

Shape 클래스 실습 코드 피드백 요청드립니다

미해결

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

안녕하세요, 강사님. Shape 클래스 실습을 진행한 결과물을 공유드립니다. 실습 내용을 바탕으로 도형의 크기를 부모 클래스에서 관리하고, 각 자식 클래스에서 기본 크기를 지정할 수 있도록 생성자를 구성해 보았습니다. 시간 괜찮으실 때 구현 방향에서 어색한 부분이나 개선하면 좋을 점이 있는지 간단히 봐주시면 감사하겠습니다. 또한 이번 실습에서 추가로 생각해 보면 좋을 내용이 있다면 함께 알려주시면 감사하겠습니다. 감사합니다. package java2_30; import java.util.Scanner; /** * 화면에 출력할 수 있는 도형의 공통 부모 클래스입니다. * * 현재 실습에서는 삼각형과 정사각형만 다루므로, * 가로와 세로를 구분하지 않고 하나의 size 값으로 크기를 관리합니다. */ abstract class Shape { private final int size; protected Shape(int size) { this.size = size; } protected final int getSize() { return size; } /** * 각 도형의 모양을 콘솔에 출력합니다. */ abstract void render(); } class Rectangle extends Shape { private static final int DEFAULT_SIZE = 4; public Rectangle() { this(DEFAULT_SIZE); } public Rectangle(int size) { super(size); } @Override public void render() { for (int i = 0; i < getSize(); i++) { for (int j = 0; j < getSize(); j++) { System.out.print("*\t"); } System.out.println(); } } } class Triangle extends Shape { private static final int DEFAULT_SIZE = 5; public Triangle() { this(DEFAULT_SIZE); } public Triangle(int size) { super(size); } @Override public void render() { for (int i = 0; i < getSize(); i++) { for (int j = 0; j <= i; j++) { System.out.print("*\t"); } System.out.println(); } } } class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("사각형은 0, 삼각형은 그 외 숫자를 입력하세요: "); int input = scanner.nextInt(); Shape shape; if (input == 0) { shape = new Rectangle(); } else { shape = new Triangle(); } shape.render(); scanner.close(); } }

  • java
  • 객체지향
  • jvm
  • data-structure
ice28 댓글 1 좋아요 0 조회수 7

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

미해결

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

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

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

깃허브주소 궁금합니다.

미해결

코드로 배우는 스프링 웹 프로젝트 - Basic

강의 중에 내용 소스 공유 받고 싶습니다. 구멍가게코딩단 깃허브 주소 요청드립니다

  • java
  • jsp
  • spring
  • mybatis
실력자되긔 댓글 2 좋아요 0 조회수 10

mariaDB 설정

미해결

코드로 배우는 스프링 웹 프로젝트 - Basic

mariaDB 설정에서 create database springdb; 이거 나오는 쿼리구문 어디에서 공유받을 수 있나요?

  • java
  • jsp
  • spring
  • mybatis
실력자되긔 댓글 1 좋아요 0 조회수 9

수강기간 연장 가능할까요 선생님

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

선생님 미리강의를 사놓고 준비할떄 봐야지했는데 수강기한이있는것을 확인하지못했습니다.. 어떻게 연장이안될까요 제이메일은 imj00004@hanmail.net 입니다...

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
imj00004 댓글 1 좋아요 0 조회수 11

Section15. 수업에 사용하는 데이터 주소가 다 보이지 않아서 실습을 위한 데이터를 다운 받지 못하고 있습니다.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
jinh9 댓글 3 좋아요 0 조회수 15

섹션4 퀴즈 오타있어요.

미해결

클로드 코드의 정석: 실전 에이전틱 엔지니어링

(사진)

  • java
  • spring
  • 소프트웨어-설계
  • 인공지능(ai)
  • ai-agent
  • claude
  • 바이브코딩
kichun852 댓글 1 좋아요 0 조회수 24

loop is not defined

미해결

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

import asyncio import timeit from urllib.request import urlopen from concurrent.futures import ThreadPoolExecutor import threading # 실행 시작 시간 start =timeit.default_timer() # 서비스 방향이 비슷한 사이트로 실습권장(예 게시판 성 커뮤니티) urls = ['https://daum.net', 'https://naver.com', 'http://mlbpark.donga.com', 'https://tistory.com'] async def fetch(url, executor): # 실행 res = await loop.get_running_loop(executor, urlopen, url) # 결과 반환 return res.read()[0:5] async def main(): # 쓰레드 풀 생성 executor = ThreadPoolExecutor(max_workers=10) # future 객체 모아서 gather 에서 실행 futures = [ asyncio.ensure_future(fetch(url, executor)) for url in urls ] # 결과 취합 rst = await asyncio.gather(futures) print('------------------------------') print(('Result :', rst)) if __name__ == '__main__': # 루프 초기화 asyncio.run(main()) # 수행 시간 계산 duration = timeit.default_timer() - start # 총 실행 시간 print('Total Running Time :', duration) 여기에서 loop is not defined라고 나오네요 지금 파이선은 3.14버전을 쓰고있는데 저기 loop를 무엇으로 바꾸면 될지 모르겠어요

  • python
  • django
Kang 댓글 1 좋아요 0 조회수 25

slack 알림 연동 강의 관련

해결됨

베개투자법 완성: 아침이 설레는 AI 주식 완전 자동매매 Claude 바이브코딩

질문 내용은 첨부 캡쳐와 같습니다.

  • python
  • 머신러닝
  • aws
  • FastAPI
  • 퀀트
  • cloud-computing
  • claude
박영준 댓글 2 좋아요 1 조회수 42

가상환경 설정이 안됩니다

미해결

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

파일명을 python_middle로 지정하여 가상환경을 설정한 이후 dir을 실행하였는데 오류가 뜹니다. 어떻게 해야할까요?

  • python
  • vscode
댓글 1 좋아요 0 조회수 21

supabase_key 관련

미해결

베개투자법 완성: 아침이 설레는 AI 주식 완전 자동매매 Claude 바이브코딩

강사님 답변처럼 SUPABASE_SERVICE_ROLE_KEY 복사하고 붙인 후 실행 했는데도 아래처럼 나오네요. 무시하고 계속 수업 진도를 나갈려고 하는데 내가 워낙 쌩 초보라 13번째 강의에서도 또 언급되길래 계속 무시하고 수업을 끝까지 들으면 해결 할 수 있는지 의심스럽습니다. 그리고 localhost:8000/docs 가 강사님 처럼 열리지 않네요... ㅠㅠ "사이트에 연결할 수 없음. localhost에서 연결을 거부했습니다"라고 하네요 PS C:\박영준\banbu-stocktrading-final> python run.py ⚠ SUPABASE_SERVICE_ROLE_KEY 미설정 - anon 키 사용 중. RLS가 켜져 있으면 쓰기가 차단될 수 있 습니다. Supabase URL: https://fohjixoviclcuwdtadxf.supabase.co INFO: Started server process [23136] INFO: Waiting for application startup. 서비스 시작 시 경제 데이터 수집을 즉시 실행합니다... 경제 지표 및 주가 데이터 업데이트 작업 시작... 2026-07-27 16:39:01,751 - httpx - INFO - HTTP Request: GET https://fohjixoviclcuwdtadxf.supabase.co/rest/v1/economic_and_stock_data?select=%EB%82%A0%EC%A7%9C&order=%EB%82%A0%EC%A7%9C.desc&limit=1 "HTTP/2 403 Forbidden" 마지막 수집 날짜 조회 중 오류 발생: {'message': 'permission denied for table economic_and_stock_data', 'code': '42501', 'hint': 'Grant the required privileges to the current role with: GRANT SELECT ON public.economic_and_stock_data TO service_role;', 'details': None} 2026-07-27 16:39:01,798 - httpx - INFO - HTTP Request: GET https://fohjixoviclcuwdtadxf.supabase.co/rest/v1/economic_and_stock_data?select=%2A&%EB%82%A0%EC%A7%9C=eq.2005-12-31 "HTTP/2 403 Forbidden" 경제 데이터 업데이트 중 오류 발생: {'message': 'permission denied for table economic_and_stock_data', 'code': '42501', 'hint': 'Grant the required privileges to the current role with: GRANT SELECT ON public.economic_and_stock_data TO service_role;', 'details': None} Traceback (most recent call last): File "C:\박영준\banbu-stocktrading-final\app\services\economic_ service.py ", line 134, in update_economic_data_in_background prev_data_response = supabase.table("economic_and_stock_data").select("*").eq("날짜", previous_date).execute() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "C:\Users\박종한\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\postgrest\_sync\request_ builder.py ", line 96, in execute raise APIError(dict(json_obj)) postgrest.exceptions.APIError: {'message': 'permission denied for table economic_and_stock_data', 'code': '42501', 'hint': 'Grant the required privileges to the current role with: GRANT SELECT ON public.economic_and_stock_data TO service_role;', 'details': None} ERROR: Traceback (most recent call last): File "C:\박영준\banbu-stocktrading-final\app\services\economic_ service.py ", line 134, in update_economic_data_in_background prev_data_response = supabase.table("economic_and_stock_data").select("*").eq("날짜", previous_date).execute() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "C:\Users\박종한\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\postgrest\_sync\request_ builder.py ", line 96, in execute raise APIError(dict(json_obj)) postgrest.exceptions.APIError: {'message': 'permission denied for table economic_and_stock_data', 'code': '42501', 'hint': 'Grant the required privileges to the current role with: GRANT SELECT ON public.economic_and_stock_data TO service_role;', 'details': None} During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\박종한\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\starlette\ routing.py ", line 638, in lifespan async with self.lifespan_context(app) as maybe_state: ~~~~~~~~~~~~~~~~~~~~~^^^^^ File "C:\Users\박종한\AppData\Local\Python\pythoncore-3.14-64\Lib\ contextlib.py ", line 214, in aenter return await anext(self.gen) ^^^^^^^^^^^^^^^^^^^^^ async with original_context(app) as maybe_original_state: async with original_context(app) as maybe_original_state: ~~~~~~~~~~~~~~~~^^^^^ async with original_context(app) as maybe_original_state: ~~~~~~~~~~~~~~~~^^^^^ File "C:\Users\박종한\AppData\Local\Python\pythoncore-3.14-64\Lib\ contextlib.py ", line 214, in aenter return await anext(self.gen) ^^^^^^^^^^^^^^^^^^^^^ File "C:\박영준\banbu-stocktrading-final\app\ main.py ", line 18, in lifespan await startup() File "C:\박영준\banbu-stocktrading-final\app\ main.py ", line 48, in startup await update_economic_data_in_background() File "C:\박영준\banbu-stocktrading-final\app\services\economic_ service.py ", line 251, in update_economic_data_in_background raise Exception(f"경제 데이터 업데이트 중 오류: {str(e)}") Exception: 경제 데이터 업데이트 중 오류: {'message': 'permission denied for table economic_and_stock_data', 'code': '42501', 'hint': 'Grant the required privileges to the current role with: GRANT SELECT ON public.economic_and_stock_data TO service_role;', 'details': None}

  • python
  • 머신러닝
  • aws
  • FastAPI
  • 퀀트
  • cloud-computing
  • claude
박영준 댓글 3 좋아요 1 조회수 37

6번 문제 질문입니다.

미해결

AWS SAA-C03 자격증 벼락치기 - 딱 163문제로 2주만에 합격하기

안녕하세요! 6번 문제에서 약간 헷갈리는게 있어서 질문 드립니다. 비용효율성을 높이고 싶고, 다년계약에 묶이고 싶지 않다. 가장 적절한 구매 옵션은? 에서 부분 선결제 조건이 선결제 없음보다 할인율이 높다면 부분 선결제로 가는 것이 비용 효율성을 높이는 방법일 수 있지 않을까요? 지문에 선결제를 원하지 않는다가 없어서 질문드립니다.

  • aws
  • backend
  • devops
  • infrastructure
  • aws-saa
김태수 댓글 2 좋아요 0 조회수 36

그라파나에서 대시보드 import 실패

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

안녕하세요, 대시보드 import가 불가하여 문의드립니다. 강의 2:35쯤 대시보드 id(1860)를 입력하고 load를 누르면 "bad gateway"라고 뜹니다. grafana pod 안에 접속하여 curl https://grafana.com 테스트하면 Could not resolve host 라고 나옵니다. VM에서 github으로 소스 받아오는건 가능해도, pod 내에서 grafana.com에 접속하는건 안되는 모양입니다. 왜 그런건가요? 설치 중 오류나 누락이 있어서 그런건가요? 아님 원래 안되는게 맞는건가요?

  • kubernetes
  • devops
  • argocd
  • container
  • helm
최재량 댓글 2 좋아요 1 조회수 36

프롬프트의 영문 버전을 만들 때, 출력 규칙에 포함된 한글 부분은 영어로 번역하지 않고 그대로 유지하면서, 영문 편과 한글 편을 한 번에 함께 출력하려면 어떤 워크플로우로 구성하면 좋을까요?

해결됨

원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)

요약 프롬프트의 영문 버전 을 만들 때, 출력 규칙에 포함된 한글 부분은 영어로 번역하지 않고 그대로 유지 하고 싶음 영문 편과 한글 편을 한 번에 함께 출력받고 싶음 그러면 전체 비용도 저렴해지고 쇼츠 생산 속도도 빨라질 것 같아서 이런 방법은 어떨지 생각해보고 가능한지 질문 드리게되었습니다.

  • python
  • youtube-api
  • n8n
  • 인공지능(ai)
Yeonju Kang 댓글 1 좋아요 0 조회수 24

프로그램은 뭘 사용하시는 건가요??

해결됨

알고리즘 트레이딩의 비밀, AI가 주가를 맞추는 법

안녕하세요, 강의를 처음 듣는 중입니다. 그런데 갑자기 섹션 3 부터 어떤 프로그램을 통해 강의를 진행하시는데 그 다음을 진행을 못하고 있습니다ㅠㅠ 강사님이랑 최대한 똑같은 환경으로 진행하고 싶은데 혹시 어떤 프로그램인지 알 수 있을까요?

  • python
  • 딥러닝
  • 재테크
  • lstm
  • transformer
화나이글스 댓글 2 좋아요 1 조회수 31

VM 내 k8s에 접속하는 이유와 방식 문의

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

안녕하세요, 6:45 부근을 수강하다가 궁금한 점이 생겨 문의드립니다. aws를 이용하지 않는 것고 로컬PC에 VM을 셋팅하여 k8s 설치 서버를 만드는 것은 비용 문제 때문인가요? 로컬에서 kubectl로 VM의 k8s 마스터노드에 명령어를 보낼 수는 없나요? 왜 원격접속 툴로 VM에 접속한 뒤 kubectl로 k8s에 명령을 보내야하나요? 좋은 강의 감사합니다.

  • kubernetes
  • devops
  • argocd
  • container
  • helm
최재량 댓글 1 좋아요 1 조회수 23

맥북에서 영상이 안나옵니다

미해결

테라폼 입문자를 위한 실무용 기본 문법 입문 과정!

(사진)

  • aws
  • Terraform
  • devops
  • infrastructure
  • aws-automation
전민혁 댓글 1 좋아요 0 조회수 18

인기 태그

인프런 TOP Writers

주간 인기글