Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
SKT ALEPH Studio BR-B 최종 과제
翻訳待ち
Loading the full README. The saved excerpt is shown below.
분야는 바뀌어도, 경험은 이어집니다. 이 앱은 다른 분야에서 새 도전을 시작하는 사람이 이전 경험을 새 문제에 옮겨 보려 할 때, 논문에서 가장 많이 보고된 실패('관련성을 알아차리지 못함', 원문 확인 12편 중 6편)와 적용 단계의 실패(구조가 맞지 않음)를 짚는 6개 질문으로 연결을 검토하고, 작은 실험으로 실제 도움이 되는지 확인하도록 돕습니다. 1. 기록하기: 새로 해 보고 싶은 도전과, 지금까지 해 본 경험(어려웠던 점, 그때 푼 방법)을 적는다. 2. 연결 검토하기: 도전에 경험을 골라 연결 카드를 만들고, 6개 질문으로 공통 구조와 차이를 적는다. '시도할 만함'으로 정하려면 2번(원리)·4번(공통점)·5번(차이) 답이 있어야 한다. 3. 실험으로 확인하기: 연결 카드에서 작은 실험을 만들고, 체크리스트를 진행한 뒤 보고서에 도움이 됐는지를 기록한다. 로그인 없이 /demo에서 세 가지를 모두 해 볼 수 있습니다. 「다른 분야의 경험은 언제 새 문제로 옮겨지는가: 연결 단서와 실패 양상에 관한 공개 실험 연구의 탐색적 증거 매핑」 이 앱은 위 논문의 다음 논의를 참고해 설계했습니다.Read the full README ↗
분야는 바뀌어도, 경험은 이어집니다.
이 앱은 다른 분야에서 새 도전을 시작하는 사람이 이전 경험을 새 문제에 옮겨 보려 할 때, 논문에서 가장 많이 보고된 실패('관련성을 알아차리지 못함', 원문 확인 12편 중 6편)와 적용 단계의 실패(구조가 맞지 않음)를 짚는 6개 질문으로 연결을 검토하고, 작은 실험으로 실제 도움이 되는지 확인하도록 돕습니다.
로그인 없이 /demo에서 세 가지를 모두 해 볼 수 있습니다.
「다른 분야의 경험은 언제 새 문제로 옮겨지는가: 연결 단서와 실패 양상에 관한 공개 실험 연구의 탐색적 증거 매핑」
이 앱은 위 논문의 다음 논의를 참고해 설계했습니다.
+, 3편이 0, −는 0편이었다(4.3절).
다만 사전 기준(판정 가능 10편)에 못 미쳐 가설 판정은 불분명이다.괄호 안의 절 번호는 논문 원문(05_paper.md) 기준입니다.
이 앱의 실제 효과는 검증하지 않았습니다. 논문의 논의를 참고해 화면과 입력 항목을 설계했을 뿐이며, 앱을 사용하면 연결이 잘 된다는 것을 증명하지 않습니다. 랜딩 첫 화면 히어로 아래에 논문 제목을 표시하고, '연구 소개'를 펼치면 같은 안내를 읽을 수 있습니다.
| 논문의 논의 | 반영한 기능 |
|---|---|
| 알아차림 실패가 가장 흔함 (12편 중 6편) | 연결 카드의 1~3번 질문(이전 문제, 사용한 원리, 새 도전의 어디에 쓸지)이 이전 해법과 지금 문제를 직접 이어 보게 하는 단서 역할. 경험을 하나 이상 골라야 카드가 저장됨 |
| 단서·사례 비교 조건이 적용 비율이 높은 쪽 (9편 중 6편, 판정 불분명) | 4번 질문 "두 상황의 공통 목표·장애물·제약은 무엇인가?"로 두 사례를 나란히 비교 |
| 적용 단계에서도 연결이 끊김 (구조 불일치) | 5번 질문 "두 상황은 무엇이 달라 그대로 적용하면 안 되는가?" |
| 위 셋을 거쳐야 실험으로 | 상태를 '시도할 만함'으로 저장하려면 2·4·5번 답이 필수(서버와 데모가 같은 zod 규칙으로 검사). '시도할 만함' 카드에서만 "이 연결로 실험 만들기"가 보임. '검토 중'은 초안이라 질문을 비워 둘 수 있음 |
| 실제 직업 분야 간 전이 연구 0편 | 연결이 된다고 판정하지 않고, 6번 질문 → 작은 실험 → 보고서(도움 됨/부분적으로/안 됨/판단 어려움)로 직접 확인. '연결하지 않음'도 이유와 함께 저장 가능 |
연결 카드 화면의 각 질문 아래에 "논문 근거"로 위 결과와 원문 절 번호를 표시합니다. | 진행률·완료는 능력 점수가 아님 | 진행률(0~99)과 체크리스트 진행률을 분리해서 계산하고 표시, 완료율을 전문성으로 표현하지 않음 |
node_modules/next/dist/docs가
최신 문서이니 코드를 고치기 전에 먼저 확인하세요.@prisma/adapter-pg (드라이버 어댑터 필수) + Supabase PostgreSQLvercel.json)과제(CHECK.md)는 "결과물 URL 또는 실행 묶음(ZIP). 둘 다 내도 됩니다"이고, BRB-C22는 둘 중 하나 이상을 요구합니다.
이 앱은 공개 URL로만 제출합니다. 로그인 없이 열리는 경로는 /와 /demo 아래 전체입니다.
ZIP을 내지 않는 이유: 이 저장소를 새 폴더에서 실행하려면 본인의 Supabase DB, Google OAuth 클라이언트, BETTER_AUTH_SECRET이
필요합니다. 값이 없으면 /와 /demo도 500 오류가 납니다. 그래서 BRB-C09("새 임시 폴더에서 그대로 실행하면 끝난다")를
만족하지 못합니다. 아래 설치 방법은 개발자가 자신의 환경 변수로 실행할 때를 위한 것입니다.
npm install
cp .env.sample .env # 값 채우기 (아래 "환경 변수" 참고)
npm run db:push # Prisma 스키마를 DB에 반영
npm run dev # http://localhost:3000
npm run typecheck # tsc --noEmit
npm run lint # eslint .
npm run test # vitest run (49개 테스트, 7개 파일)
npm run build # 프로덕션 빌드
.env.sample에 변수명과 설명만 적어 두었습니다. 실제 값은 각자의 .env에 채우고, 절대 커밋하지 마세요
(.gitignore에 .env*가 이미 포함되어 있습니다).
| 변수 | 설명 |
|---|---|
SUPABASE_URL | Supabase 프로젝트 URL |
SUPABASE_SECRET_KEY | Supabase 서비스 롤 키 (서버 전용) |
SUPABASE_CONNECTION_KEY | Prisma가 사용하는 Postgres 연결 문자열 (풀링 커넥션, 6543 포트) |
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET | Google OAuth 클라이언트 |
BETTER_AUTH_SECRET | 세션/쿠키 서명용 비밀키 |
BETTER_AUTH_URL | Better Auth가 콜백 URL을 만들 때 쓰는 기준 URL |
SMTP_HOST / SMTP_PORT / SMTP_SECURE / SMTP_USER / SMTP_PASSWORD / MAIL_FROM | Gmail SMTP 발송 설정 (아래 참고) |
APP_URL | 배포된 앱의 기본 URL (알림 메일 링크 생성에 사용) |
CRON_SECRET | /api/cron/notify 엔드포인트 보호용 비밀키 |
http://localhost:3000/api/auth/callback/googlehttps://<배포-도메인>/api/auth/callback/googleGOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET에 넣습니다.BETTER_AUTH_URL(개발: http://localhost:3000)과 APP_URL을 환경에 맞게 설정합니다.Google 로그인은 로그인만 처리합니다. 메일 발송 권한을 주지 않으며, 메일은 아래 SMTP 설정을 통해서만 보냅니다.
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=<발신 Gmail 주소>
SMTP_PASSWORD=<앱 비밀번호>
MAIL_FROM=<발신 Gmail 주소와 동일>
포트 587 + STARTTLS(코드에서 requireTLS: true로 강제)를 사용합니다. 465(암묵적 TLS) 설정이 아닙니다.src/lib/mail/transport.ts 하나에 모여 있어서, 다른 SMTP 제공자(Resend SMTP 등)로 바꾸고
싶으면 이 파일과 환경 변수 값만 바꾸면 됩니다.isMailConfigured()가 false를 반환하고, 예약 작업은 실제 발송 대신 미리보기만
만듭니다 (runDueNotifications()의 previews 배열, DB에는 아무 것도 기록하지 않음). 실험 상세 화면과 데모의
"알림 메일 미리보기" 버튼에서도 같은 방식으로 확인할 수 있습니다.This is the beginning of the README. Read the rest at the original. Read the full README ↗