- 레시피지는 많은 사람들이 요리를 더욱 쉽게 도전할 수 있도록 숏폼 형태의 레시피를 제공해주는 서비스
- 유저는 본인에게 필요한 테마를 선택하고, 테마에 속한 레시피들을 간단하게 익힐 수 있습니다.
- 각 레시피는 1분 내외의 요리 영상이 있고, 세부적인 재료와 요리 방법은 디테일 페이지에서 볼 수 있습니다
- 레시피마다 난이도가 따로 책정이 되어있고, 소요 시간 및 필요 도구 등등을 확인할 수 있습니다.
-
Typescript: Typescript는 Javscript의 문법에 타입 지정을 할 수 있도록 만들어진 언어로, 자바스크립트의 자유도와 타입 언어의 안정성까지 갖춘 언어입니다. 개발 과정에서 타입 추론의 도움을 받기 위해 사용했습니다.
-
NextJS: ReactJS를 더욱 간편하게 사용하기 위해 만들어진 프레임워크로, 추가적인 설정 없이도 기본적으로 ServerSideRendering이 가능한 것이 장점입니다. 또한, 외부 라이브러리의 도움 없이도 자동으로 파일 구조 기반 라우팅이 가능하여 직관적인 폴더 구조를 구축할 수 있습니다. 레시피지에서 제공하는 레시피 페이지는 데이터가 자주 변경되지 않기 때문에 ISR을 적용하는 것이 효율적일거라 판단하여 도입하였습니다.
-
TailwindCSS: TailwindCSS는 Utility-first라는 컨셉을 갖고 나온 CSS 프레임워크로, html 태그에 인라인 스타일링을 적용할 수 있습니다. CSS-in-JS와는 다르게 런타임에 스타일에 적용이 되는게 아니기에 성능 측면에서 효율적이고, 개발과정에서 클래스 이름을 고민하지 않아도 되기에 빠른 개발이 가능하다는 것이 장점입니다.
-
React-Query: React-Query는 Client-State와 Server-State를 확실하게 구분하기 위해 만들어진 라이브러리로, 서버에서 받아온 데이터를 키로 구분하여 캐싱을 할 수 있다는 큰 장점이 있습니다. 레시피지 서비스는 대부분 Server-State를 기반으로 동작하기 때문에, 추가적인 전역상태관리 툴을 이용해서 서버에서 받아온 데이터를 복사하여 관리하는 것 보다 React-Query를 이용하여 Server-State를 확실하게 분리해서 관리하는 것이 효율적일거라 판단하여 도입했습니다.
-
Recoil: Recoil은 React기반 앱에서 전역적으로 상태를 관리하기 위한 라이브러리로, 문법이 다른 전역상태관리 툴과는 다르게 React의 문법과 매우 유사하다는 장점을 갖고 있습니다. 앞서 언급했듯 레시피지는 Client-State가 많지 않은 서비스이기 때문에 전역상태관리 툴을 도입하지 않으려 했으나, 몇몇 상황에서 전역상태가 필요하다고 판단하여 기존 코드에서 많은 변경 없이도 전역적인 상태 관리가 가능한 Recoil을 도입하게 되었습니다.
모든 페이지들은 https://recipeasy-client-ten.vercel.app/ 에서 방문 가능합니다.
로그인 | 닉네임 설정 페이지 |
---|---|
서비스를 시작하면 처음 보이는 로그인 페이지입니다. 유저들이 서비스를 빠르게 이용할 수 있도록 카카오 로그인을 구현 했습니다. |
유저가 처음 로그인하면 볼 수 있는 닉네임 설정 페이지입니다. 첫 로그인 이후에는 백엔드에 닉네임이 저장되어 그 이후부턴 보이지 않도록 구현했습니다. |
마이 레시피 | 마이 테마 |
---|---|
유저가 이전에 검색하거나 조회했던 레시피들 중에서 저장했던 레시피를 모아볼 수 있는 페이지입니다. | 유저가 이전에 검색하거나 조회했던 테마들 중에서 저장했던 테마를 모아볼 수 있는 페이지입니다. |