sucoding
@sucoding
Học viên
5,595
Đánh giá khóa học
369
Đánh giá khóa học
4.9
수코딩은 온라인과 오프라인을 병행하면서
코딩을 가르치는 활동을 하고 있습니다.
다년간의 오프라인 강의 경험을 바탕으로,
더 많은 사람들이 코딩을 쉽고 재미있게 배울 수 있도록
매일 고민하고, 끊임없이 노력하고 있습니다.
현재까지 다음과 같은 5권의 책을 출판하며
프런트엔드 강의 분야를 선도하고 있습니다:
또한, 유튜브 채널을 통해 다양한 무료 강의도 제공하고 있습니다.
👇 지금 바로 방문해 보세요
[유튜브 채널 링크]
다양한 할인 소식 또한 공식 홈페이지에서 빠르게 확인하실 수 있습니다.
👇 지금 바로 방문해 보세요
[공식 홈페이지 링크]
Khóa học
Đánh giá khóa học
- Học React.js với TypeScript: Hoàn thiện từ cơ bản đến kỹ thuật mới nhất
- Học React.js với TypeScript: Hoàn thiện từ cơ bản đến kỹ thuật mới nhất
- Learning CSS3 by Picking the Essentials
- Học JavaScript cốt lõi một cách chọn lọc
Bài viết
Hỏi & Đáp
화면 아래쪽에 노트가 어디 있나요
안녕하세요. Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 라고 입력하시면 됩니다!
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 42
Hỏi & Đáp
강의자료 있나요
안녕하세요.본 강의는 별도의 PDF가 제공되지 않습니다. !!
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 17
Hỏi & Đáp
mission12-01 guide.md파일 누락
안녕하세요!해당 강의자료는 확인하여 업데이트 하도록 하겠습니다.제보 감사합니다!
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 62
Hỏi & Đáp
ThemeProvider를 이용해서 NextThemeProvider를 따로 생성하여 Layout.tsx에 적용하는 이유는 뭘까요?
안녕하세요!next-themes의 ThemeProvider는 React Context API와 브라우저 API를 사용하므로 클라이언트 컴포넌트에서만 동작합니다.반면, Next.js App Router의 layout.tsx는 서버 컴포넌트로 유지하는 것이 권장됩니다. layout.tsx에 직접 'use client'를 선언하면 하위의 모든 페이지와 컴포넌트가 클라이언트 경계(Client Boundary)에 포함되어 서버 컴포넌트의 장점을 잃게 되기 때문입니다.따라서 별도의 Wrapper 컴포넌트(예: NextThemeProvider)를 생성하여 상단에 'use client'를 붙여주고, layout.tsx에서는 이를 불러와 감싸는 방식으로 서버/클라이언트 컴포넌트 경계를 명확히 분리해 주는 것입니다.학습에 도움이 되셨기를 바랍니다. 추가로 궁금한 점이 있으시면 편하게 질문해 주세요!
- Lượt thích
- 0
- Số bình luận
- 1
- Lượt xem
- 149
Hỏi & Đáp
mission 09-01 을 수행할 수 없어요
안녕하세요!작성하신 코드를 sucoding@naver.com으로 압축해서 보내주시면확인 후 피드백 드리겠습니다.감사합니다!
- Lượt thích
- 0
- Số bình luận
- 1
- Lượt xem
- 55
Hỏi & Đáp
스니펫이 이상해요
안녕하세요.제공해드린 스니펫을 정확하게 입력하셨는지 한 번 확인 부탁드리겠습니다.인프런 인턴 답변처럼 '스니펫의 함수명 부분이나 변수 치환 설정이 잘못 등록된 경우 발생할 수 있습니다'감사합니다.
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 65
Hỏi & Đáp
react-fetch -2 (loading) 에러
안녕하세요.해당 오류는 말씀하신 것처럼 useEffect 내부에서 조건 없이 동기적으로 setState를 호출할 경우, 컴포넌트가 마운트되자마자 불필요한 리렌더링이 연쇄적으로 발생하기 때문입니다.따라서 동기적으로 setState를 호출하지 않도록 처리하면 됩니다. 가장 간단한 우회 방법으로는 window.setTimeout(() => {}, 0)과 같은 패턴을 사용해 비동기적으로 상태를 변경하는 방법이 있습니다.다만 위 코드에서는 fetch 자체가 이미 비동기적으로 동작하기 때문에, 별도로 setTimeout을 사용할 필요는 없습니다. 초기 isLoading 상태를 true로 설정한 뒤, fetch가 완료되었을 때 상태를 변경하는 방식으로 처리할 수 있습니다.const [isLoading, setIsLoading] = useState(true); useEffect(() => { fetch("http://localhost:3000/posts") .then((response) => { return response.json(); }) .then((data) => setPosts(data)) .finally(() => { setIsLoading(false); }); }, []); 이렇게 하면 컴포넌트가 처음 렌더링될 때는 isLoading이 true이고, fetch가 완료된 이후 false로 변경되므로 불필요한 동기적 상태 변경을 피할 수 있습니다.추가로 궁금한 점이 있으시면 언제든지 다시 질문해주세요.감사합니다.
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 74
Hỏi & Đáp
useEffect return문
안녕하세요!해결 되셨다니 다행입니다 :)좋은 하루 되세요!
- Lượt thích
- 0
- Số bình luận
- 3
- Lượt xem
- 82
Hỏi & Đáp
모든 컴포넌트를 클라이언트 컴포넌트로 했을 때
안녕하세요.인프런 AI이 정확하게 답변을 해주었네요!제 의견도 동일하기 때문에 참고하시면 되겠습니다.
- Lượt thích
- 0
- Số bình luận
- 3
- Lượt xem
- 81
Hỏi & Đáp
할 일 수정 질문
안녕하세요 양승근님.아쉽지만 말씀하시는 것과 같은 기능 및 구조는 리액트에서 제공하지 않습니다.참고 부탁드립니다!
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 75







