HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 4기 교육생
/
🍏
김나영팀
/
앙골라 ANGOLA
앙골라 ANGOLA
/
📌
2023.09.06 스크럼 - 라우터 주소 있는 곳,,,
📌

2023.09.06 스크럼 - 라우터 주소 있는 곳,,,

Date
Sep 5, 2023 07:37 AM
Tag
스크럼
생성자
📌
2023.09.06 계획
  1. 구글 스타트업 캠퍼스 회원 가입하고, 내일 오후 1시반 까지 모이기
  1. 9/6 (다같이 생각해오기) + 같이 정하기
    1. api hook 어떻게 뺄지 (postman 으로 채널 생성, 데이터 가공 어떻게 해야하는지)
    2. 라우터 주소 어떻게 나눌지
    3. 그 안의 컴포넌트 어떻게 나눌지 + 공통 컴포넌트로 뭘 뺄 수 있지
  1. 역할 정하기
  1. 첫 스프린트 시작하기
 
 
비동기 처리
카카오페이 프론트엔드 개발자들이 React Query를 선택한 이유 | 카카오페이 기술 블로그
카카오페이 프론트엔드 개발자들이 React Query를 선택한 이유에 대해 설명합니다. 이 글은 연작 중 1편에 해당합니다. 1편: 카카오페이 프론트엔드 개발자들이 React Query를 선택한 이유, 2편: React Query와 함께 선언적 UI를 구성하는 방법
카카오페이 프론트엔드 개발자들이 React Query를 선택한 이유 | 카카오페이 기술 블로그
https://tech.kakaopay.com/post/react-query-1/
카카오페이 프론트엔드 개발자들이 React Query를 선택한 이유 | 카카오페이 기술 블로그
Web: React Query 알아보기(등장 배경, 장점, 기초 개념)
React Query의 등장 배경과 Query Client, useQuery, useMutation 등에 대해 알아보자
Web: React Query 알아보기(등장 배경, 장점, 기초 개념)
https://medium.com/hcleedev/web-react-query-알아보기-등장-배경-장점-기초-개념-e82a3733036c
Web: React Query 알아보기(등장 배경, 장점, 기초 개념)
const {data: userList, isLoading} = useQuery( 'UserListQueryKey', fetchPost(..), {} );
  1. React-query 사용해서 useQuery 훅 호출 시 콜백으로 axios 인스턴스 감싼 함수 넣어주기
    1. 인스턴스는 요청에 뭘 넣어 보내는가에 따라서 생성해주기
      • fetchPost
      • fetchUser
      • fetchNotification
      • …
    const dataToSend = { key1: 'value1', key2: 'value2' }; instance.post('/some-endpoint',dataToSend) .then(function (response) { console.log(response.data); }) .catch(function (error) { console.error(error); }) axios.post('https://some-domain.com/api/some-endpoint', { timeout: 1000, headers: {'X-Custom-Header': 'foobar'}, data: dataToSend }).then(function (response) { console.log(response.data); }) .catch(function (error) { console.error(error); })
    axios instance - (baseurl, headers)
     
     
    fetchPost({ option: ‘create’ , id: …}) // option : 'create' | 'read' | 'update' | 'delete' // update 없음.... url ⇒ post/${option}/${id}

    경로 같으면 같은 함수! 다르면 다른함수 .. 그냥 다 다른함수..

    1. API HOOK

    const api = axios.create({ baseURL: 'https://kdt.frontend.3rd.programmers.co.kr:5001', });
    notion image
    파일명
    기능
    담당
    ㅤ
    index
    - axios 인스턴스
    세진
    ㅤ
    auth
    - 회원가입: fetchSignUp (POST) - 로그인: fetchLogIn (POST) - 로그아웃: fetchLogOut (POST) - 로그인 인증: fetchAuthUser (GET)
    세진
    ㅤ
    user
    - 사용자 목록 불러오기: fetchUsers (GET) map 고려 - 사용자 불러오기: fetchUser (GET)
    지윤
    ㅤ
    post
    - 전체 포스트: fetchAllPosts (GET) - 사용자 전체 포스트: fetchUserPosts (GET) - 포스트: fetchPost (GET) - 포스트 생성: fetchCreatePost (POST) - 포스트 삭제: fetchDeletePost (DELETE)
    주하
    ㅤ
    search
    - 포스트 검색: fetchSearchPosts (GET) - 유저 검색: fetchSearchUsers (GET)
    영준
    ㅤ
    like
    - 좋아요 등록: fetchLike (POST) - 좋아요 취소: fetchUnLike(DELETE)
    영준
    ㅤ
    comment
    - 댓글 작성: fetchCreateComment (POST) - 댓글 삭제: fetchDeleteComment (DELETE)
    민우
    ㅤ
    notification
    - 알림 생성: fetchCreateNotification (POST) - 알림 목록 불러오기: fetchNotifications (GET) - 알림 읽음 처리: fetchSeenNotifications (PUT)
    민우
    ㅤ
    follow
    특정 유저 팔로우: fetchFollow (POST) 언팔로우 : fetchUnFollow (DELETE)
    영준
    ㅤ
    profile
    - 사용자 정보 변경(닉네임): fetchUpdateFullname (PUT) - 사용자 정보 변경(비밀번호)fetchUpdatePassword (PUT) - 사용자 이미지 변경: fetchUpdateUserImage (PUT)
    지윤
    ㅤ
    ㅤ
    ㅤ
    ㅤ
    ㅤ
     
    const data = await instance.get … return data;
    // Main => <Route path=’/search/*’ element={<Search/>} /> const Search = ({keyword, sort}) => { useEffect ... () ⇒ route.navigate(’/post’)} return ( <Routes> <Route path=’/post’ element={<PostList keyword={} sort={}/>} /> <Route path=’/user’ element={<UserList keyword={} sort={}/> /> </Routes>) }

    2. 라우터 주소

    // useBlock.ts // location: 뒤로가기 막을 페이지 location const useBlock = (location: Location | Pathname) => { const history = useHistory() useEffect(() => { const unlisten = history.listen((_, action) => { // 리스너 해제 unlisten() // 뒤로가기 시 동작 if (action === 'POP') { history.push(location) } }) }, [history, location]) } export default useBlock
    인증
    마이페이지
    유저페이지
    검색
    포스트 작성
    포스트
    상단 메뉴
     
    공통 컴포넌트 ⇒ 1명
    4명 은 api 함수 만들기 fetch 어쩌구..
     
    공통 컴포넌트 : button,
    page : Home, Post, Search (검색 결과), MyPage, UserPage
    router + data fetch
    기능
    주소
    필요한 값
    fetch 함수
    종류
    path
    함수명
    홈 (포스트 피드)
    /
    fetchLike fetchUnLike fetchAllPosts
    회원가입
    /signup
    fetchSignUp
    로그인
    /login
    fetchLogIn
    포스트 보기(하나씩보기)
    /post/:postId
    fetchPost fetchLike fetchUnLike
    포스트 댓글 +투표(자세히보기)
    /post/:postId?show=${true}
    Post : postId, show, voted
    fetchLike fetchUnLike fetchCreateComment fetchDeleteComment
    포스트 투표 완료
    /post/:postId?show=${true}&voted=${true}
    fetchPost
    포스트 작성
    /create-post
    fetchCreatePost
    검색 버튼 클릭
    /search/*
    포스트 탭 클릭 (default)
    /search/post
    fetchAllPosts
    유저 탭 클릭
    /search/user
    fetchUsers
    유저 검색
    /search/user?keyword=${키워드} follow|ranking
    SearchResult ⇒ (post, user) / keyword / sort
    fetchSearchUsers
    포스트 검색
    /search/post?keyword=${키워드} like|follow|latest
    fetchSearchPosts
    유저 검색 후 정렬
    /search/user?sort=${정렬기준} follow|ranking
    Search/UserList⇒ keyword, sort
    (자체 정렬)
    포스트 검색 후 정렬
    /search/post?sort=${정렬기준} like|follow|latest
    Search/PostList ⇒ keyword, sort
    (자체 정렬)
    유저 정보
    /user/:userId
    UserPage : userId (타인의..)
    fetchUser fetchFollow fetchUnFollow
    마이 페이지
    /mypage
    fetchLogOut
    마이 페이지 수정
    /mypage?edit=${true}
    MyPage : userId (recoil), edit
    fetchUpdateUserInfo fetchUpdateUserImage
    404페이지