πŸ“μ£Όμ–΄μ§„ api λͺ…μ„Έλ₯Ό ν™œμš©ν•˜μ—¬ μ±„νŒ…μ²˜λŸΌ λ§Œλ“€μ–΄λ³΄κΈ°

10_2pangΒ·2023λ…„ 6μ›” 5일
0

βš½οΈνŠΈλŸ¬λΈ”μŠˆνŒ…

λͺ©λ‘ 보기
42/94
post-thumbnail

πŸ‘¨β€πŸ’»Β μ‚¬κ±΄


  • νŒ€ ν”„λ‘œμ νŠΈ λ„μ „κ³Όμ œ 쀑에, μ±„νŒ…μ„ λ§‘μ•„μ„œ μ§„ν–‰ν•˜κ²Œ λ˜μ—ˆλ‹€. 이에 λŒ€ν•΄ μ–΄λ– ν•œ λ°©λ²•μœΌλ‘œ ν’€μ–΄λ‚˜μ•„ κ°ˆμ§€ μ§„μ§€ν•˜κ²Œ 고민을 ν•˜μ˜€λ‹€. μ²˜μŒμ—λŠ” ꡬ글링을 ν•΄λ³΄λ‹ˆ, socket io 라이브러리λ₯Ό ν™œμš©ν•˜λŠ” λ°©μ•ˆμ΄ μ‘΄μž¬ν•˜μ˜€κ³ , 또 κ΅μœ‘ν”„λ‘œκ·Έλž¨μ€‘ κ²½ν—˜ν•΄λ³Έ Firebase 둜 κ΅¬ν˜„ν•΄ λ³΄λŠ” λ°©μ•ˆμ΄ 생각이 났닀.

βœ…Β ν•΄κ²°


결둠적으둜 μ΄ν‹€μ—μ„œ 3μΌμ •λ„μ˜ μ‹œκ°„λ§Œ μ‘΄μž¬ν•˜μ—¬, μ• λ§€ν•˜κ²Œ socket io 라이브러리λ₯Ό κ±΄λ“€κ±°λ‚˜ Firebase 둜 μ–΄μ€‘κ°„ν•œ μ„œλ²„λ₯Ό κ΅¬ν˜„ν•˜μ—¬ μ‹œλ„ν•΄λ³΄λŠ” 것은 λ§žμ§€μ•Šλ‹€κ³  νŒλ‹¨ν•˜μ˜€μœΌλ©°, μ‹€μ œ 싀무에 λ“€μ–΄κ°„λ‹€λ©΄ μ£Όμ–΄μ§„ λͺ…μ„Έλ₯Ό ν™œμš©ν•΄μ•Ό ν•  뢀뢄이 쑴재 ν•  수 μžˆλ‹€κ³  νŒλ‹¨ν•˜μ—¬, μ£Όμ–΄μ§„ λͺ…μ„Έμ—μ„œ κ²Œμ‹œκΈ€μ„ ν•œλ²ˆ ν™œμš©ν•΄λ³΄κ³ μž ν•˜μ˜€λ‹€.

둜그인된 μ‚¬μš©μž β†”Β μ±„νŒ…λ°©μœΌλ‘œ μ‚¬μš©λ  제 3자의 κ²Œμ‹œκΈ€ β†”Β μ±„νŒ…ν•  μƒλŒ€ μ‚¬μš©μž

β†’ μ±„νŒ…λ°©μœΌλ‘œ μ‚¬μš©λ  제 3자의 μ•„μ΄λ””λŠ” μœ μ € 검색을 ν†΅ν•˜μ—¬ 찾을 수 없도둝 μ„€μ •

< ν™˜κ²½λ³€μˆ˜ μ„€μ • >

// 제 3자의 κ²Œμ‹œκΈ€μ„ λ‹€λ₯Έ μœ μ €κ°€ 생성할 수 μžˆλ„λ‘ 토큰값을 받아와 μ €μž₯
const CHAT_TOKEN = process.env.REACT_APP_CHAT_SERVER_TOKEN;

< μ±„νŒ…λ°© 생성 >

  1. μ±„νŒ…ν•  μƒλŒ€ μ‚¬μš©μžμ˜ ν”„λ‘œν•„μ—μ„œ μ±„νŒ… 이미지 λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄, μ±„νŒ…λ°©μœΌλ‘œ μ‚¬μš©λ  제 3자의 κ²Œμ‹œκΈ€μ΄ μƒμ„±λœλ‹€.

  2. 제 3자의 κ²Œμ‹œκΈ€μ— μ „μ†‘λ˜λŠ” 컨텐츠인 μ±„νŒ… 데이터 β†’ β€˜λ‘œκ·ΈμΈλœ μ‚¬μš©μžμ˜ accountname,μ±„νŒ…ν•  μƒλŒ€ μ‚¬μš©μžμ˜ accountname’

    const createChatroom = () => {
        axios
          .post(
            `https://mandarin.api.weniv.co.kr/post`,
            {
              post: {
                content: `${userAccountname},${profileUserAccountname}`,
                image: '',
              },
            },
            {
              headers: {
                Authorization: `Bearer ${CHAT_TOKEN}`,
                'Content-type': 'application/json',
              },
            },
          )
          .then((res) => {
            navigate(`/chat/${res.data.post.id}`);
          });
      };

    β†’ μ „μ†‘λœ λ°μ΄ν„°λŠ” μ±„νŒ…λ¦¬μŠ€νŠΈλ₯Ό λΆˆλŸ¬μ˜¬λ•Œμ™€ μ±„νŒ…λ°© 이름을 λ‚˜νƒ€λ‚Όλ•Œ μ‚¬μš©ν•œλ‹€.

  3. μ±„νŒ…λ°© μƒμ„±μ‹œ, 제 3자의 κ²Œμ‹œκΈ€μ˜ content λ‚΄μš©κ³Ό 생성할 content λ‚΄μš©μ΄ μ€‘λ³΅λœλ‹€λ©΄ alert 창을 λ„μ›Œμ„œ 이미 μ‘΄μž¬ν•˜λŠ” μ±„νŒ…λ£Έμ΄λΌλŠ” 사싀을 μ‚¬μš©μžμ—κ²Œ μ•Œλ¦°λ‹€.

< μ±„νŒ…λ°© 리슀트 >

  • 제 3자의 κ²Œμ‹œκΈ€μ˜ 정보λ₯Ό λΆˆλŸ¬μ™€, μ „μ†‘λœ 컨텐츠 데이터 에 μ‚¬μš©μžμ˜ accountname 이 ν¬ν•¨λœ κ²Œμ‹œκΈ€λ§Œ 보여쀀닀.

< μ±„νŒ…λ°© >

  • useParams() λ₯Ό μ‚¬μš©ν•˜μ—¬, μ„ νƒν•œ url의 νŒŒλΌλ―Έν„°λ₯Ό κ°€μ Έμ˜¨ ν›„, κ·Έ νŒŒλΌλ―Έν„°(postid) 에 ν•΄λ‹Ήν•˜λŠ” κ²Œμ‹œκΈ€μ„ λΆˆλŸ¬μ˜¨λ‹€. 여기에 μž‘μ„±λœ λŒ“κΈ€μ΄ 본인의 것이라면, 본인이 λ‚ λ¦° μ±„νŒ…μœΌλ‘œ 보여지고, μ•„λ‹ˆλΌλ©΄ 타 μ‚¬μš©μžκ°€ 보낸 μ±„νŒ…μ²˜λŸΌ 보여진닀.

< μ±„νŒ… >

  • μ±„νŒ…λ°©μ— μž…μž₯ν•˜λ©΄, μ±„νŒ…λ°©μœΌλ‘œ μ‚¬μš©λœ κ²Œμ‹œλ¬Όμ— λŒ“κΈ€ ν˜•μ‹μœΌλ‘œ 데이터λ₯Ό μ „μ†‘ν•œλ‹€.

πŸ’­Β κ°œμ„ 


  1. λŒ“κΈ€μ΄ μ—…λ°μ΄νŠΈλ λ•Œ λ§ˆλ‹€ 재 λ Œλ”λ§κ³Όμ • 거치기
  2. μƒλŒ€μ˜ accountname 이 변경될 κ²½μš°κ°€ μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ—, content 뢀뢄에 userid 둜 λ³€κ²½ν•˜μ—¬ μ„€μ •ν•˜κΈ°
  3. μ½μŒν‘œμ‹œ λ₯Ό μ–΄λ–€ ν˜•μ‹μœΌλ‘œ κ΅¬ν˜„ν•  μ§€ 생각해보기
  4. λ‚΄κ°€ 방을 λ‚˜κ°€λ©΄ μƒλŒ€λ°©μ˜ 방도 λ‚˜κ°€μ§€λŠ” 것을 μ–΄λ–€ ν˜•μ‹μœΌλ‘œ κ°œμ„ ν•΄λ‚˜κ°ˆμ§€ κ³ λ―Όν•˜κΈ°
profile
μ£Όλ‹ˆμ–΄ ν”„λ‘ νŠΈμ—”λ“œ 개발자 이광렬 μž…λ‹ˆλ‹€ 🌸

0개의 λŒ“κΈ€