inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

섹션 1 퀴즈

섹션1.9 질문입니다!

86

구구구구

작성한 질문수 5

1

강의를 듣고 마지막에 python run.py를 했는데 아래처럼 에러떠요ㅠㅠ 혹시 놓친 부분이 있나요?

SUPABASE_SERVICE_ROLE_KEY 미설정이라는데 이거 강의에서 설정한게 있었나요?


2026-08-30 21:45:01,917 - httpx - INFO - HTTP Request: GET https://rgmdxxsyyylcdsbvaiqs.supabase.co/rest/v1/economic_and_stock_data?select=%2A&%EB%82%A0%EC%A7%9C=eq.2006-01-01 "HTTP/2 200 OK"

2026-08-30 21:45:02,210 - httpx - INFO - HTTP Request: POST https://rgmdxxsyyylcdsbvaiqs.supabase.co/rest/v1/economic_and_stock_data "HTTP/2 401 Unauthorized"

경제 데이터 업데이트 중 오류 발생: {'message': 'new row violates row-level security policy for table "economic_and_stock_data"', 'code': '42501', 'hint': None, 'details': None}

Traceback (most recent call last):

File "C:\Users\dbsxo\OneDrive\Desktop\banbu-stocktrading-final\app\services\economic_service.py", line 204, in update_economic_data_in_background

supabase.table("economic_and_stock_data").insert(insert_dict).execute()

File "C:\Users\dbsxo\AppData\Local\Programs\Python\Python312\Lib\site-packages\postgrest\_sync\request_builder.py", line 96, in execute

raise APIError(dict(json_obj))

postgrest.exceptions.APIError: {'message': 'new row violates row-level security policy for table "economic_and_stock_data"', 'code': '42501', 'hint': None, 'details': None}

ERROR: Traceback (most recent call last):

File "C:\Users\dbsxo\OneDrive\Desktop\banbu-stocktrading-final\app\services\economic_service.py", line 204, in update_economic_data_in_background

supabase.table("economic_and_stock_data").insert(insert_dict).execute()

File "C:\Users\dbsxo\AppData\Local\Programs\Python\Python312\Lib\site-packages\postgrest\_sync\request_builder.py", line 96, in execute

raise APIError(dict(json_obj))

postgrest.exceptions.APIError: {'message': 'new row violates row-level security policy for table "economic_and_stock_data"', 'code': '42501', 'hint': None, 'details': None}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "C:\Users\dbsxo\AppData\Local\Programs\Python\Python312\Lib\site-packages\starlette\routing.py", line 648, in lifespan

async with self.lifespan_context(app) as maybe_state:

^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\dbsxo\AppData\Local\Programs\Python\Python312\Lib\contextlib.py", line 210, in aenter

return await anext(self.gen)

^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\dbsxo\AppData\Local\Programs\Python\Python312\Lib\site-packages\fastapi\routing.py", line 240, in merged_lifespan

async with original_context(app) as maybe_original_state:

^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\dbsxo\AppData\Local\Programs\Python\Python312\Lib\contextlib.py", line 210, in aenter

return await anext(self.gen)

^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\dbsxo\OneDrive\Desktop\banbu-stocktrading-final\app\main.py", line 18, in lifespan

await startup()

File "C:\Users\dbsxo\OneDrive\Desktop\banbu-stocktrading-final\app\main.py", line 48, in startup

await update_economic_data_in_background()

File "C:\Users\dbsxo\OneDrive\Desktop\banbu-stocktrading-final\app\services\economic_service.py", line 251, in update_economic_data_in_background

raise Exception(f"경제 데이터 업데이트 중 오류: {str(e)}")

Exception: 경제 데이터 업데이트 중 오류: {'message': 'new row violates row-level security policy for table "economic_and_stock_data"', 'code': '42501', 'hint': None, 'details': None}

ERROR: Application startup failed. Exiting.


python 머신러닝 aws FastAPI 퀀트 cloud-computing claude

답변 3

1

구구구구

ALTER TABLE economic_and_stock_data DISABLE ROW LEVEL SECURITY;

위의 내용을 Supabase SQL Editor에서 200줄 넘는 거기에 넣고 run select 하라는거죠?
그 다음 다시 python run.py 하면 될까요?

+ 추가로 파이썬 공부를 하는게 좋을까요?ㅠㅠ

0

치알남 cheatkeyman

아니요, 200줄짜리 스크립트(create_all_tables.sql)는 이미 실행하셨으니 건드리지 않으셔도 됩니다. 그리고 그 한 줄만 넣으면 테이블 하나만 풀리고 나머지 테이블에서 같은 에러가 또 납니다. 아래처럼 해주세요.

1. errorfix.sql 통째로 실행

  1. 프로젝트 폴더의 sql/errorfix.sql 파일을 VS Code나 메모장으로 엽니다. 41줄짜리 짧은 파일입니다.

  2. 전체 선택(Ctrl+A) → 복사(Ctrl+C).

  3. Supabase 대시보드 → SQL Editor → New query 로 빈 편집창을 하나 새로 엽니다.

  4. 붙여넣기(Ctrl+V) 후 아무것도 드래그 선택하지 않은 상태에서 Run (또는 Ctrl+Enter) 을 누릅니다. 글자를 드래그해 두면 선택한 부분만 실행되니 주의하세요.

  5. 아래쪽에 Success. No rows returned 가 뜨면 끝입니다.

이 파일은 테이블 9개의 RLS 해제, 테이블 권한(GRANT), id 시퀀스 재동기화를 한 번에 처리하고, 여러 번 실행해도 안전합니다.

2. 서버 재실행

python run.py

SUPABASE_SERVICE_ROLE_KEY 미설정 안내 줄은 여전히 뜨는데 정상입니다. 그 뒤로 서비스 시작 시 경제 데이터 수집을 즉시 실행합니다... 가 나오고 42501 에러 없이 진행되면 성공입니다. 혹시 또 막히면 실행 로그를 그대로 붙여 주세요.

3. 파이썬 공부에 대해
당연히 현업 개발자 수준으로 코드를 작성하려면 많은 공부가 필요합니다. 하지만, 강의의 취지대로 우리는 우리가 원하는 기능을 AI를 활용해서 쉽고 빠르게 만들 수 있는 것입니다. 처음에는 당연히 어렵고 힘들 수 있어도 @구구구구님께서 앞으로는 모르는 내용이 나오면 습관적으로 AI에게 질문해서 학습해가신다면 점차 익숙해지실 것입니다!

감사합니다.

1

구구구구

친절한 답변 감사드립니다!!! 열심히 듣고 완강할 수 있도록 할게욥

이런 강의 자주 올려주세요!

0

치알남 cheatkeyman

네, 또 궁금하신 부분 있으면 언제든 문의 주세요~
현재 유용한 강의 준비하고 있으니 곧 새로운 소식으로 찾아뵙겠습니다. 많관부!

0

치알남 cheatkeyman

안녕하세요, @구구구구님.

로그를 보니 원인이 명확합니다. 놓치신 건 .env가 아니라 Supabase의 RLS(Row Level Security) 비활성화 단계입니다.

1. SUPABASE_SERVICE_ROLE_KEY 미설정은 에러가 아닙니다.
강의에서 설정한 적 없는 값이 맞습니다. 이 줄은 "지금 anon 키를 쓰고 있으니 RLS가 켜져 있으면 쓰기가 막힐 수 있다"는 안내 문구이고, 강의 기본 구성(anon 키 + RLS OFF)에서는 항상 뜨는 정상 로그입니다.

2. 실제 원인은 그 아래 에러입니다.
new row violates row-level security policy for table "economic_and_stock_data" (42501)은 테이블에 RLS가 켜져 있는데 정책이 없어서 anon 키의 INSERT가 거부된 것입니다. RLS가 켜진 테이블은 조회도 빈 결과를 돌려주기 때문에, 서버가 데이터가 없다고 판단해 2006-01-01부터 다시 넣으려다 막힌 것이 로그에 그대로 보입니다. README 5-4 단계를 건너뛰었거나, Table Editor에서 테이블을 새로 만들면(기본값 RLS ON) 이렇게 됩니다.

3. 해결 방법

  1. Supabase 대시보드 → SQL Editor 를 엽니다.

  2. 프로젝트의 sql/errorfix.sql 파일 내용을 통째로 붙여넣고 Run 합니다. 테이블 권한(GRANT), 모든 테이블 RLS 비활성화, id 시퀀스 재동기화가 한 번에 처리됩니다.

  3. 다시 python run.py 를 실행합니다.

확인은 SQL Editor에서 아래를 실행해 모든 테이블의 rowsecurityfalse인지 보시면 됩니다.

select tablename, rowsecurity from pg_tables where schemaname = 'public';

5-3 단계에서 CSV를 임포트하셨다면 재시작 후에는 마지막 날짜부터 이어서 수집합니다. 그래도 2006-01-01부터 시작한다면 CSV 임포트가 안 된 상태이니 5-3 단계를 다시 확인해 주세요.

참고로 나중에 서버를 실제 배포할 때는 반대로 RLS를 켜고 .envSUPABASE_SERVICE_ROLE_KEY를 넣는 방식으로 바꿉니다. 그 내용은 배포/보안 문서(16번)에서 다루니 지금 단계에서는 신경 쓰지 않으셔도 됩니다.


혹시 해결이 안되시면 편하게 다시 문의주세요~
감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 정윤택님.

오류의 핵심은 SUPABASE_SERVICE_ROLE_KEY 자체보다는 Supabase의 RLS(Row Level Security) 정책으로 인해 economic_and_stock_data 테이블에 INSERT가 차단된 것입니다.

강의 실습 환경에서는 Supabase SQL Editor에서 해당 테이블의 RLS를 비활성화한 뒤 다시 실행해 보시면 됩니다.

ALTER TABLE economic_and_stock_data
DISABLE ROW LEVEL SECURITY;

다른 테이블에서도 동일한 오류가 발생할 수 있으므로, 강의에서 생성한 테이블에도 아래 형식으로 각각 실행해 주세요.

ALTER TABLE 테이블명
DISABLE ROW LEVEL SECURITY;

SUPABASE_SERVICE_ROLE_KEY를 사용하는 방식으로 해결하려면 .env에 Supabase의 Service Role Key를 설정하고 코드가 해당 환경 변수를 읽도록 구성해야 합니다. 다만 현재 강의 실습 구조에서는 먼저 RLS를 비활성화하는 방법으로 진행하는 것이 적절합니다. anon key를 사용한 상태에서 RLS가 활성화되어 있으면 지금처럼 401 Unauthorized, 42501 오류가 발생할 수 있습니다.

관련 답변은 아래 게시글을 참고해 주세요.

해당 게시글에서도 economic_and_stock_data 테이블을 포함한 모든 테이블에 다음 명령을 실행한 후 데이터 수집을 다시 진행하도록 안내하고 있습니다. RLS 설정을 변경한 뒤 python run.py를 다시 실행해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

검색 대상 종목 선정

1

56

2

llm_decision_logs 미적재 문의

1

42

2

연동 문제

1

50

2

5-21 질문이요!

1

67

3

매수 실행 시점 관련

1

41

1

Opus/Sonnet 버전 관련 문의

1

58

2

섹션2 질문이요

1

65

2

Kaggle 노트북(predict.ipynb) 관련

1

61

2

git bash .env

1

64

1

알파벤티지 sleep(5) 관련 문의

1

75

2

실전 계좌에서 운영하고 계신 분 계신가요?

1

72

2

클로드

1

66

2

pip install -r requirements.txt

0

68

2

명령 프롬프트

0

72

2

slack 알림 연동 강의 관련

1

82

2

supabase_key 관련

1

92

3

python run.py 실행시 에러 문제

1

103

2

커서창

1

73

2

cursor 환경

1

74

2

개발 환경 준비와 프로젝트 구조 강의 관련

1

65

2

저장 공간

1

73

2

colab 코드 실행시 error

1

65

2

llm_decision_logs 저장 실패(실적 컬럼 불일치)를 어떻게 해결할까요?

2

107

4

kaggle notebook에 service key 설정이 누락된 것 같습니다

1

84

2