Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[4주차 심회/생각과제] 심화과제, 생각과제 제출 #9

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion week4/weather-prediction/src/components/SkeletonCard.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { styled } from "styled-components";

const SkeletonCard = () => {
return <St.SkeletonCard></St.SkeletonCard>;
return <St.SkeletonCard />;
};

export default SkeletonCard;
Expand Down
2 changes: 1 addition & 1 deletion week4/weather-prediction/src/components/WeatherContent.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import SkeletonCard from "./SkeletonCard";

const WeatherContent = ({ type }) => {
const { city } = useParams();
const { data, error, isLoading } = useWeatherData(type, city);
const { data, isError, isLoading } = useWeatherData(type, city);

const getDate = (date_txt) => {
const date = new dayjs(date_txt);
Expand Down
2 changes: 1 addition & 1 deletion week4/weather-prediction/src/hook/useWeatherData.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { WEATHER_TYPE } from "../assets/WEATHER_TYPE";
const useWeatherData = (type, city) => {

const [data, setData] = useState([])
const [isError, setIsError] = useState('')
const [isError, setIsError] = useState("")
const [isLoading, setIsLoading] = useState(true)
const weatherTypeImage = WEATHER_TYPE;

Expand Down
31 changes: 31 additions & 0 deletions week4/생각과제.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#

# Props Drilling을 피하는 방법

## Context API 사용

Context API를 활용하여 전역적으로 데이터를 공유. Context Provider를 통해 데이터를 제공하고, 필요한 컴포넌트에서 Context Consumer나 useContext 훅을 사용하여 데이터 획득.

## 상태 관리 라이브러리 사용

Redux, MobX, Recoil 등의 상태 관리 라이브러리를 활용하여 Props Drilling을 피할 수 있음. 상태를 상위 컴포넌트에서 관리하고 필요한 컴포넌트에서 상태를 가져와 사용가능.

## 컴포넌트 재구성

컴포넌트를 재구성하여 해결.

중간 단계의 컴포넌트를 추가하여 데이터를 전달하고, 필요한 컴포넌트에서 해당 데이터를 사용.

# 합동세미나

전역상태로 관리할 상태가 존재하지 않아 상태관리 라이브러리 없이 진행.

# 솝커톤

참여X

# 앱잼

recoil을 과제로 사용하면서 효과적으로 상태관리를 할 수 있음을 느낌.

이번 앱잼에서는 redux를 사용하고 싶음. redux는 대규모에서 쓰여 앱잼에는 맞지 않을 수 있지만, 세팅과정이 복잡하다는 단점은 직접 경험하지 않으면 느끼기 힘들 것이라 생각함. 또, 작은 팀 규모에서 사용이 어떤 단점을 가져오는지 느끼기에 좋은 경험이 될 것이라고 생각됨.