베이스는 엘리시아JS와 SvelteKit 멀티레포 상황임.
스벨트킷에서 trpc같은 엘리시아JS의 에덴이 시급한 상황.
뭐든 새로 배우면 좋은거니까
바로 적용 ㄱㄱ
방법1. 스벨트킷 자체에서 그대로 엘리시아 들고와서 백엔드 구성을 시도해보았슴
문제 1. Vite 백엔드의 Cors정책
코딩인생 좆도안되지만 난생처음 겪는일임. 백엔드에서 Cors문제는 흔하게 겪엇지만
풀스택 프론트단에서 cors정책먹은거 처음봄
내가 생각한 구상은 프론트는 스벨트킷이지만 백엔드는 엄연히 엘리시아 JS에서 돌아갈줄알았음. ( 병신 )
그래서 vite cors이런 문제는생각안해봤는데 엄...뭔가 이러면 개 복잡해질꺼같았음.
문제 2. SvelteKit 또는 Vite의 환경변수 문제
process.env 사용하면 안먹더라
import.meta.env , import {env} $env/dynamic/private
Vite 또는 스벨트킷 환경변수식으로 변경해야되었음.
문제는 안되지만 차후에 업스케일링을 위해 분리가 필요할때 좆같을꺼같았음.
문제 3. 씹창난 폴더구조
엘리시아 JS 를 그대로 들고와서 메인 index.ts파일명을 src/route/[...slugs]/.server.ts 변경후 그대로 다 들고와버리니
백엔드 API 로직 수정 및 추가 할려고하니 헷갈림.
그냥 콘솔로 파일찾는게 더 빨랐음. 더구나 엘리시아엔 drizzle orm redis 관련 docker compsoe .yaml , conf관련 최상위에 박자하니 존나 귀찮아짐 뭔가
처음부터 이 구조자체가 마음에안들어서 의욕을 상실한듯
방법2. 멀티레포 타협
본인은 프론트는 진짜 병신임. 개인적인 주관이지만 프론트는 UI UX처리 , 데이터 백엔드에 던져주는거 딱 이 세개만 함,
무조건 백엔드에서 데이터받고 지지고 볶고 요리함 , 절대로 프론트에서 백엔드로직에 관여안함.
(옛날에 했다가 5천줄짜리 JSON 필터를 프론트에서 했더니 브라우저 성능 저하되길레 그 다음부터 안함 )
그리고 풀스택 1레포에서 작업할때 프론트 백엔드 구조잡는게 이상하게 시간이 오래걸리고 진이 빠지더라
그래서 애초에 처음부터 멀티레포를 생각해봤음. 원래 멀티레포 기준으로 구성한거라 그냥 냅둬도 무방하겠다 싶었음.
database 라던지 drizzle orm을 package/drizzle 로 새로만들어서 디펜더시 추가하고 자동으로 sql 생성하고 마이그레이션 해야겠지
적용 후
엘리시아 백엔드 라우터
요런식
나중에 중앙집중식으로 하면 이뻐지겟지 ?
다음에는 스벨트를 TS로 마이그레이션을 해보자.
문법 거지같네 ㅇㅅㅇ
ㅈㅅ;
스크립트 태그 써줘야되는거 개짜침 ㅇㅅㅇ
엘리시아는 첨듣는데 뭐냐
아 effect.ts같은 놈인가?