뭘 구현해야하는가? => 스토리에 초점을 맞춘다.
사용자가 서비스를 어떻게 이용할까 예측해봄(스토리)
더 자세히 가보면..
그럴듯한 스토리를 만들어 기능을 뽑아낸다.
뽑아낸 기능은 다음과 같다
기능에서 도메인을 발견할 수도 있다.
도메인에서 필요한 요소를 정의(모델링) 할수있다.
이제 개발 프로세스를 진행한다.
모델링 => 백엔드 => 프론트엔드 => 배포
//provider.tsx
"use client"; //React쪽 기능 사용할때 선언해주어야함. provider는 모두 클라이언트 기능이니까..모아서 선언.
import { ApolloClient, ApolloProvider, InMemoryCache } from "@apollo/client";
import { CoProvider } from "@co-design/core";
import { ReactNode } from "react";
interface ProvidersProps {
children: ReactNode;
}
const client = new ApolloClient({
uri: "http://localhost:1337/graphql",
cache: new InMemoryCache(),
});
export function Providers({ children }: ProvidersProps) {
return (
<ApolloProvider client={client}>
<CoProvider withGlobalStyles withNormalizeCSS>
{children}
</CoProvider>
</ApolloProvider>
);
}
//app/page.tsx
"use client"; //co-design도 마찬가지로 React관련 기능이다.
import { Button } from "@co-design/core";
export default function Home() {
return (
<div>
<Button>버튼</Button>
</div>
);
}
해결인데...next 13부터는 이렇게 사용해야해서 서버 컴포넌트의 이점을 잃는다.
따라서 CSS in JS보다 tailwind, postcss같은 스타일링을 사용하는 걸 권장함
크롬 확장프로그램 CollorZilla
삭제후 해결
강의에서 a태그 내부에 div태그를 사용했다.
정확히말하면 <Anchor>
태그 내부에 <Heading>
태그 사용.
어쨋든 내부적으론 a > div가 되어버려 오류가 났다. 이는 권장되지 않는 사안임.
일단 치명적인 오류는 아니어서...넘어갔다.
버전도 다르다보니 에러가 정말 많구나?
use client
를 선언한 곳에선 useRouter
를 router가 아닌 navigation에서 가져와야한다.
strapi에서는 헤더에 발급받은 jwt를 넣어서 보내도 정상적으로 데이터가 받아와진다.