kone
코딩해요
코딩해요

타입 스크립트는 적응이 안되네

12/17/2025, 14:08:49
JS
1382 views · 0 likes
//////////////////////////////////////////////////////////////////////////////////
// store.ts
//////////////////////////////////////////////////////////////////////////////////
import { create } from 'zustand';
export interface Post {
  id: number;
  title: string;
  body: string;
}
interface PostStore {
  searchQuery: string;
  setSearchQuery: (query: string) => void;
}
export const usePostStore = create<PostStore>((set) => ({
  searchQuery: '',
  setSearchQuery: (query) => set({ searchQuery: query }),
}));
//////////////////////////////////////////////////////////////////////////////////
// api.ts
//////////////////////////////////////////////////////////////////////////////////
import axios from 'axios';
import { useQuery } from '@tanstack/react-query';
import { Post } from './store';
const fetchPosts = async (): Promise<Post[]> => {
  const { data } = await axios.get('https://jsonplaceholder.typicode.com/posts');
  return data;
};
export const usePosts = () => {
  return useQuery<Post[], Error>({
    queryKey: ['posts'],
    queryFn: fetchPosts,
  });
};
//////////////////////////////////////////////////////////////////////////////////
// PostList.tsx
//////////////////////////////////////////////////////////////////////////////////
import { useState, useEffect } from 'react';
import { usePosts } from './api';
import { usePostStore } from './store';
const PostList: React.FC = () => {
  // A. useState: 로컬 UI 상태 (입력값 등)
  const [localTitle, setLocalTitle] = useState<string>("");

  // B. Zustand: 전역 상태 가져오기
  const { searchQuery, setSearchQuery } = usePostStore();

  // C. React Query: 서버 데이터 가져오기
  const { data: posts, isLoading, isError, error } = usePosts();

  // D. useEffect: 검색어가 바뀔 때마다 로그 출력 (예시)
  useEffect(() => {
    if (searchQuery) {
      console.log(`검색어 변경됨: ${searchQuery}`);
    }
  }, [searchQuery]);

  if (isLoading) return <div>로딩 중...</div>;

  if (isError) return <div>에러 발생: {error.message}</div>;

  return (
    <div style={{ padding: '20px' }}>
      <h1>포스트 목록</h1>
      {/* 로컬 상태 조작 */}
      <input 
        type="text" 
        value={localTitle} 
        onChange={(e) => setLocalTitle(e.target.value)} 
        placeholder="로컬 타이틀 입력"
      />
      
      {/* 전역 상태 조작 (Zustand) */}
      <button onClick={() => setSearchQuery(localTitle)}>
        전역 검색어 설정
      </button>
      <p>현재 검색어: {searchQuery}</p>
      <ul>
        {posts?.filter(p => p.title.includes(searchQuery)).map((post) => (
          <li key={post.id}>
            <strong>{post.title}</strong>
          </li>
        ))}
      </ul>
    </div>
  );
};
export default PostList;

자바 해보면 interface 까지는 익숙해지는데 도저히 저거 이벤트마다 타입 넣는건 너무 번거로움 

Promise 객체도 자바의 제너릭 타입처럼 예상되는 반환 타입 인터페이스로 정의 해줘야하네 
외울게 늘어나서 힘들다 프론트 하는 사람들 새삼 대단해 MZ하게 매번 새로운게 쏟아져나옴
원래 프론트쪽은 JQuery만 알다가 SPA 프레임워크 입문을 리액트로 시작해서 react-router-dom, zustand, react-query 까지만 알려하다가 하고 싶은게 있어서 어쩌다보니 타입스크립트까지 건들게 되네 난 Vue, Angular, Svelte는 못쓰겠고 Next.js 까지만 공부해야할듯

0
1 comment
12/22/25 Edited 12/22/25

Deleted comment.

바이브 코딩이 개발능력 형성에 끼치는 영향
일반
kimtaychon98
06/30 1574 2
백준 대체싸이트 추천좀
일반
hyeon111
05/23 1733 0
바이브코딩
일반
라면올킬
05/02 1624 0
개발중인 사이트 있는데
일반
hassan94
04/24 1548 1
7JWM652865SYIOuzte2YuO2ZlA==
PY
wef4r2
04/21 1709 2
너무나도 조용한 서브...
일반
이오치 마리
03/27 1554 0
여기 좀 살려보면 안되나?
일반
frzdk
02/15 1566 0
코딩 초보인데 이거 정상이지?
일반
qqbbs
02/15 1698 1
아카 크롤링하려면 얼마나 배워야해?
일반
kang33
12/29/25 1766 0
타입 스크립트는 적응이 안되네
JS
ㅇㅇ
12/17/25 1382 0
이사올랬는디 정전이네
일반
gunsight
12/06/25 5621 0
LLM이 정말로 위험한건 이거임
일반
Rohthis_
12/05/25 2434 1
동적 변수 import 질문
PY
보성녹차드링커
11/29/25 1467 1
AI만능론의 진짜 위험성
일반
nananatsume2
11/27/25 1970 1
야매 C강의 2. 변수와 연산자
C/C++
side-effect
11/03/25 1882 9
야매 C강의 1. 입출력
C/C++
side-effect
11/02/25 1853 10
lua 배워보려는데 괜찮으려나
일반
r1-ze
10/10/25 2529 0
오랫만에 왔는데 섭 죽었네...
일반
Ghost
09/17/25 2507 3
공항 예고 사건 진실
일반
Ghost
08/21/25 10058 2
뮬바드 브라우저 코네 이미지 깨짐 해결 방법
일반
Ghost
08/18/25 2176 0
zig 쓰는 사람?
일반
Ghost #0196f1ee
08/06/25 1816 0
파이썬이랑 GDScript 문법 어느정도로 비슷함?
기타언어
asdasdvwefcd
07/28/25 1677 1
내년을 위해서 국비를 듣는데
일반
sjaifo87498
07/27/25 2525 2
코딩 처음 시작하려는데
일반
yaisibal1234
07/26/25 2322 0
유니티 Singleton 1편
C#
신군
07/08/25 3213 2
파이썬 배우다가 삼천포로 빠지는 느낌
일반
shashasha
07/02/25 2425 0
서버의 디스크 공간을 사용하지 않는 신개?념 이미지 공유 api
PY
fastapi
06/17/25 3219 -1
사칙연산이 없는 세계, 간단한 수식 연산기 ( 주의 )
C/C++
comi-soft
06/14/25 3554 2
c#은 배우기 쉬운편임?
C#
asdasdvwefcd
06/14/25 3171 0
2000년대를 기점으로 나뉘는것
📰
comi-soft
06/13/25 2968 1