- π₯ Built with
- π Project
- π Pages
- β Features
- π License
React
Typescript
Apollo Client
Framer Motion
Styled Components
GraphQL Code Generator
NodeJS
Express
Apollo Server
GraphQL
PostgreSQL
Prisma
JsonWebToken
React Native
Expo
Typescript
Apollo Client
React Navigation
Styled Components
GraphQL Code Generator
Netlify
Heroku
AWS S3
- νμκ°μ , λ‘κ·ΈμΈ, λ‘κ·Έμμ
- μ μ λ μ΄λ©μΌ, μ±λͺ , μ¬μ©μ μ΄λ¦, λΉλ°λ²νΈλ₯Ό μ λ ₯ν΄ νμκ°μ μ ν μ μμ΅λλ€.
- νμκ°μ
μ, μ
λ ₯ν λΉλ°λ²νΈλ
Bcrypt
λ₯Ό ν΅ν΄ ν΄μνλλ©°, κ³μ μ 보λPostgreSQL
μ μ μ₯λ©λλ€. - μ μ λ μ¬μ©μ μ΄λ¦, λΉλ°λ²νΈλ₯Ό μ λ ₯ν΄ λ‘κ·ΈμΈν μ μμ΅λλ€.
- μ±κ³΅μ μΌλ‘ λ‘κ·ΈμΈ μ,
JsonWebToken
μ λ°κ² λκ³ ν΄λΉ ν ν°μ λ‘컬 μ€ν 리μ§μ μ μ₯ν©λλ€. Apollo Client
μReactive variables
λ₯Ό μ΄μ©ν΄μ local stateλ₯Ό μ λ°μ΄νΈν©λλ€.Reactive variables
λ₯Ό λ³κ²½ν¨μΌλ‘μ¨ ν΄λΉ λ³μμ μμ‘΄νλ λͺ¨λ 쿼리μ μ λ°μ΄νΈκ° νΈλ¦¬κ±°λ©λλ€.- λ‘κ·Έμμ μ,
Reactive variables
λ₯Ό λ³κ²½νκ³ , λ‘컬 μ€ν 리μ§μ μ μ₯λ ν ν°κ³Ό μ€ν μ΄μ μ μ₯λ λ°μ΄ν°λ₯Ό μ κ±°ν©λλ€.
- νλ‘ν
- νλ‘ν νμ΄μ§μμ μ μ μ 보, μ¬μ§, νλ‘μ, νλ‘μ°λ₯Ό νμΈν μ μμ΅λλ€.
- νλ‘μλ ν΄λΉ μ μ λ₯Ό νλ‘μ°νκ³ μλ μ μ λ€μ λͺ©λ‘μ΄κ³ , νλ‘μ°λ ν΄λΉ μ μ κ° νλ‘μ°νκ³ μλ μ μ λ€μ λͺ©λ‘μ
λλ€.
- μ μ νλ‘μ°, μΈνλ‘μ°
- μ μ λ₯Ό νλ‘μ°νκ±°λ μΈνλ‘μ°ν μ μμ΅λλ€.
- νλ‘μ°νκ±°λ νλ‘μ°λ₯Ό μ·¨μνκ² λλ©΄,
Apollo Client
λ₯Ό ν΅ν΄ μλλ°©κ³Ό μμ μ μΊμλ νλ κ°μ μ§μ μμ νμ¬ νλ‘μμ νλ‘μ° λͺ©λ‘μ μ λ°μ΄νΈν©λλ€. - μ μ λ₯Ό νλ‘μ°νκ² λλ©΄, νμμ ν΄λΉ μ μ κ° μ
λ‘λν μ¬μ§λ€μ λ³Ό μ μμ΅λλ€.
- μ μ λ° ν΄μνκ·Έ κ²μ
- @μ μ μ΄λ¦ μΌλ‘ μ μ λ₯Ό κ²μν μ μμ΅λλ€. (ex: @nasa)
- #ν΄μνκ·Έ λ‘ ν΄μνκ·Έλ₯Ό κ²μν μ μμ΅λλ€. (ex: #space)
React Hook Form
μ μ΄μ©ν΄ @μ΄λ¦ μ μ λ ₯ μ μ μ λ₯Ό, #ν΄μνκ·Έλ₯Ό μ λ ₯ μ ν΄μνκ·Έλ₯Ό κ²μν©λλ€.
- μ¬μ§
- μ¬μ§μ ν΄λ¦νμ¬ μ¬μ§ μμΈμ 보λ₯Ό νμΈν μ μμ΅λλ€.
Framer Motion
μ μ΄μ©ν΄ λͺ¨λ¬ μ°½μ΄ λνλκ±°λ μ¬λΌμ§ λ, μ λλ©μ΄μ μ μ μ©νμμ΅λλ€.- μ¬μ§μ μ λ‘λν μ μ , μΊ‘μ , λκΈ, μ’μμ λ±μ νμΈν μ μμ΅λλ€.
- μ¬μ§μ μ’μμλ₯Ό λλ₯Έ μ μ λ€μ νμΈν μ μκ³ , ν΄λΉ μ μ λ€μ νλ‘μ°νκ±°λ μΈνλ‘μ°ν μ μμ΅λλ€.
- μ¬μ§μ λκΈμ μμ±νκ±°λ μμ λ° μμ ν μ μμ΅λλ€.
- μ¬μ§μ μ
λ‘λν μ μ λ μ¬μ§μ μΊ‘μ
μ μμ νκ±°λ μ¬μ§μ μμ ν μ μμ΅λλ€.
- μ¬μ§ μ λ‘λ
- μ¬μ§ μ΄λ―Έμ§μ μΊ‘μ μ μ λ ₯ν΄ μ¬μ§μ μ λ‘λν μ μμ΅λλ€.
- μΊ‘μ μλ @μ μ μ΄λ¦ λλ #ν΄μνκ·Έ λ₯Ό μ λ ₯ν΄, μ μ μ΄λ¦ λλ ν΄μνκ·Έλ₯Ό μμ±ν μ μμ΅λλ€.
- μ
λ‘λν μ¬μ§μ
AWS S3
μ λ²ν·μ μ μ₯λ©λλ€.
- μ¬μ§ μ’μμ, μ’μμ μ·¨μ
- μ¬μ§μ μ’μμλ₯Ό λλ₯΄κ±°λ μ’μμλ₯Ό μ·¨μν μ μμ΅λλ€.
- μ’μμ λλ μ’μμ μ·¨μλ₯Ό νκ² λλ©΄,
Apollo Client
λ₯Ό ν΅ν΄ ν΄λΉ μ¬μ§μ μΊμλ νλ κ°μ μ§μ μμ νμ¬ μ’μμμ μ 체 μ’μμ μλ₯Ό μ λ°μ΄νΈν©λλ€.
- ν΄μνκ·Έ
- ν΄μνκ·Έλ ν΄λΉ ν΄μνκ·Έκ° κ°μ§κ³ μλ μ 체 μ¬μ§λ€μ λΆλ¬μ΅λλ€.
- μ¬μ§ μ
λ‘λ μ, μΊ‘μ
μ #ν΄μνκ·Έ λ₯Ό μ
λ ₯νκ² λλ©΄, μλ‘μ΄ ν΄μνκ·Έκ° μμ±λ©λλ€.
- νλ‘μ° μ λ°μ΄νΈ
GraphQL Subscriptions
λ₯Ό ν΅ν΄ μλλ°©μ΄ μμ μ νλ‘μ°νκ² λλ©΄, μ€μκ°μΌλ‘ νλ‘μ° μ λ°μ΄νΈ μλ¦Όμ λ°μ μ μμ΅λλ€.PubSub
μ μ΄μ©ν΄ νλ‘μ° μ, μ΄λ²€νΈλ₯Ό publishνκ² λκ³ , ν΄λΉ μ΄λ²€νΈλ₯Ό listenνκ³ μλ μ μ λ νλ‘μ° μ λ°μ΄νΈ μλ¦Όμ λ°κ² λ©λλ€.
- λ€ν¬λͺ¨λ
- ν΄μ λ¬μ ν΄λ¦ν΄ λΌμ΄νΈ λͺ¨λμ λ€ν¬ λͺ¨λλ₯Ό μ νν μ μμ΅λλ€.
Styled Components
μThemeProvider
λ₯Ό μ΄μ©ν΄ λΌμ΄νΈ ν λ§μ λ€ν¬ ν λ§λ₯Ό μ€μ ν©λλ€.- λ€ν¬ λͺ¨λ μ ν μ, λ€ν¬ λͺ¨λ νμ± μ¬λΆλ₯Ό λ‘컬 μ€ν 리μ§μ μ μ₯νκ³ ,
Apollo Client
μReactive variables
λ₯Ό μ΄μ©ν΄μ local stateλ₯Ό μ λ°μ΄νΈν©λλ€.
- νμκ°μ , λ‘κ·ΈμΈ, λ‘κ·Έμμ (μ±)
- μ μ λ μ΄λ©μΌ, μ±λͺ , μ¬μ©μ μ΄λ¦, λΉλ°λ²νΈλ₯Ό μ λ ₯ν΄ νμκ°μ μ ν μ μμ΅λλ€.
- μ μ λ μ¬μ©μ μ΄λ¦, λΉλ°λ²νΈλ₯Ό μ λ ₯ν΄ λ‘κ·ΈμΈν μ μμ΅λλ€.
- μ±κ³΅μ μΌλ‘ λ‘κ·ΈμΈ μ,
JsonWebToken
μ λ°κ² λκ³ ν΄λΉ ν ν°μAsyncStorage
μ μ μ₯ν©λλ€. - μ± λ‘λ© μ,
AsyncStorage
λ‘λΆν° ν ν°μ κ°μ Έμ λ‘κ·ΈμΈ μ¬λΆλ₯Ό νμΈν©λλ€. - λ‘κ·Έμμ μ,
Reactive variables
λ₯Ό λ³κ²½νκ³ ,AsyncStorage
μ μ μ₯λ ν ν°κ³Ό μ€ν μ΄μ μ μ₯λ λ°μ΄ν°λ₯Ό μ κ±°ν©λλ€.
- νλ‘ν (μ±)
- νλ‘ν νμ΄μ§μμ μ μ μ 보, μ¬μ§, νλ‘μ, νλ‘μ°λ₯Ό νμΈν μ μμ΅λλ€.
- μ¬μ§μ ν΄λ¦νμ¬ μ¬μ§ μμΈμ 보λ₯Ό νμΈν μ μμ΅λλ€.
- μ¬μ§μ μ
λ‘λν μ μ , μΊ‘μ
, λκΈ, μ’μμ λ±μ νμΈν μ μμ΅λλ€.
- μ¬μ§ κ²μ, μ¬μ§ μ ν λ° μ¬μ§ 촬μ (μ±)
- μΊ‘μ μΌλ‘ μ¬μ§μ κ²μν μ μμ΅λλ€. (ex: food)
- μ μ λ ν΄λν° μ¨λ²μ μλ μ¬μ§λ€μ μ ννκ±°λ, μ¬μ§ 촬μμ ν΅ν΄ 촬μν μ¬μ§μ μ λ‘λν μ μμ΅λλ€.
expo-media-library
λ₯Ό ν΅ν΄ λ―Έλμ΄ λΌμ΄λΈλ¬λ¦¬μ λν μ κ·Ό κΆνμ μ€μ ν©λλ€.expo-camera
λ₯Ό ν΅ν΄ μΉ΄λ©λΌμ type, zoom, ratio, whiteBalanceλ±μ μ€μ ν©λλ€.
- κΈ°ν
Front-end
λNetlify
μ,Back-end
λHeroku
μ λ°°ν¬νμμ΅λλ€.Database
λHeroku PostgreSQL
μ λ°°ν¬νμμ΅λλ€.GraphQL Code Generator
λ₯Ό μ΄μ©ν΄GraphQL Schema
λ‘λΆν° νμ λ° μ½λλ₯Ό μμ±νμμ΅λλ€.Front-end
: https://github.com/GitHubGW/instagram-frontendBack-end
: https://github.com/GitHubGW/instagram-backendApp
: https://github.com/GitHubGW/instagram-app
Root
- ν
- λ‘κ·ΈμΈ
- νμκ°μ
User
- μ 체 μ μ
- μ μ νλ‘ν
- μ μ νλ‘μ°
- μ μ νλ‘μ
- νλ‘ν μμ
Photo
- μ¬μ§ μ λ‘λ
- μ¬μ§ μμΈμ 보
Hashtag
- ν΄μνκ·Έ
- νμκ°μ , νμνν΄
- λ‘κ·ΈμΈ, λ‘κ·Έμμ
- νλ‘ν 보기
- νλ‘μ°, μΈνλ‘μ°
- νλ‘μ, νλ‘μ° λ³΄κΈ°
- μ μ κ²μ
- νλ‘ν μμ
- μ 체 μ μ 보기
- νλ‘μ° μ λ°μ΄νΈ
- μ¬μ§ 보기
- μ¬μ§ μ’μμ 보기
- μ¬μ§ μ λ‘λ
- μ¬μ§ μμ
- μ¬μ§ μμ
- μ¬μ§ κ²μ
- νΌλ 보기
- λκΈ λ³΄κΈ°
- λκΈ μμ±
- λκΈ μμ
- λκΈ μμ
- λκΈ μ λ°μ΄νΈ
- ν΄μνκ·Έ 보기
- ν΄μνκ·Έ κ²μ
- μ¬μ§ μ’μμ, μ’μμ μ·¨μ
- μ’μμ μ λ°μ΄νΈ
- μ 체 μ±ν λ°© 보기
- μ±ν λ°© 보기
- λ©μΈμ§ 보λ΄κΈ°
- λ©μΈμ§ μ½κΈ°
- λ©μΈμ§ μμ
- λ©μΈμ§ μ λ°μ΄νΈ
MIT