수코딩은 온라인과 오프라인을 병행하면서
코딩을 가르치는 활동을 하고 있습니다.
다년간의 오프라인 강의 경험을 바탕으로,
더 많은 사람들이 코딩을 쉽고 재미있게 배울 수 있도록
매일 고민하고, 끊임없이 노력하고 있습니다.
현재까지 다음과 같은 3권의 책을 출판하며
프런트엔드 강의 분야를 선도하고 있습니다:
또한, 유튜브 채널을 통해 다양한 무료 강의도 제공하고 있습니다.
👇 지금 바로 방문해 보세요
[유튜브 채널 링크]
강의
로드맵
전체 2수강평
- 타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
- 핵심만 골라 배우는 TypeScript
- 타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
- 타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
게시글
질문&답변
CRUD어떤 방식의 API 활용하는지 궁금합니다.
안녕하세요.REST API 방식으로 진행합니다.참고 부탁드립니다. 🙂
- 0
- 2
- 12
질문&답변
예제코드 실행
안녕하세요.이해하신 내용이 맞습니다.모든 강의마다 예제 코드를 1대1로 매칭해서 하실 필요는 없으며강의 설명 중 타이핑하기 귀찮은 부분이 나올때마다 예제 코드를 참고하시는 방식으로 하셔도 무방합니다 :)
- 0
- 2
- 9
질문&답변
Redux 연결이 안된걸까요?
안녕하세요!해당 도구는 원래 Redux ToolKit에서 사용하기 위해서 나온건데zustand도 일정 부분 호환이 가능한 부분이라서요!원래 좌측에는 anonymouse라고 나오는 게 맞고값의 실제 변화만 확인 가능한 게 맞습니다!
- 0
- 3
- 25
질문&답변
window 10을 사용하고 있는 학생인데 react작동안됩니다ㅜㅜ
해결되어서 다행입니다 🙂
- 0
- 3
- 19
질문&답변
67강 상태업데이트 강의 중 궁금한 점
안녕하세요.우선 작성자님이 질문하신 코드의 패턴을 [Props Driling] 패턴이라고 합니다.부모가 정의한 상태를 자식에게 내려주어서 공유하는 방식입니다.대부분 이 방식을 평가할 때 흔히 '좋다, 나쁘다'로 이분법화해서 평가하려 합니다.하지만 props driling 패턴은 리액트에서 가장 쉽고 흔하게 등장하는 패턴이며 상황에 따라서는 매우 좋은 방법입니다.강의를 진행하시다보면, Props Driling을 대체할 수 있는 여러가지 방법을 더 배우실텐데결국 다 배우시고 나서 본인 상황에서 본인이 가장 쓰기 편한 방법으로 골라서 사용하시면 됩니다.감사합니다!
- 0
- 3
- 35
질문&답변
19강 게시물 수정 기능 강의 질문입니다
안녕하세요.fetchPostModify 함수 내부에서 requireAuth() 함수를 호출해서 auth 변수에 할당합니다.const auth = requireAuth();만약 auth 변수에 값이 할당되어 있다면 redirect 함수가 할당됩니다.따라서 if(auth)의 조건을 만족하면 redirect() 함수가 할당되어 있다는 뜻이고 그것을 fetchPostModify에서 반환하면 라우트 전환이 되게 됩니다.loader에서는 직접 redirect()를 return 해줘야만 라우트 전환이 처리가 되기 때문에위와 같이 코드를 작성한 것입니다.이해되셨을까요?이해가 안되시면 다시 질문해주세요!
- 0
- 2
- 21
질문&답변
zustand에 대한 질문입니다
안녕하세요 홍재훈님.질문하신 내용이 맞습니다. 전자가 컴포넌트 안에서 렌더링 할 때 가져오는 방식이고 (범용적 사용법)후자는 단순히 현재 시점의 스냅샷을 가져오는 방법입니다.위의 인프런 인턴이 답변한 내용이 조금 더 자세하게 답변이 되어 있으므로한 번 읽어보시면 도움이 될 것 같습니다.감사합니다!
- 0
- 2
- 37
질문&답변
19강 몽고db관련 오류입니다
안녕하세요. 홍재훈님우선 예제 코드가 최근에 개선 버전으로 업데이트가 되었기 때문에 [섹션4] -> 28. 수업 예제 코드 다운로드 및 참고하는 법에서 다시 다운 받아주세요.그리고 해당 에러는 올바르지 않은 주소를 가지고 몽고 DB에 접속할 때 발생하는 에러입니다.backend 폴더의 .env 파일에 보시면 MONGODB_URI 부분이 있습니다.이 부분은 아래와 같은 형식의 주소가 들어가야 합니다.MONGO_URI=mongodb+srv://:@cluster0.xxxxx.mongodb.net/myDatabase?retryWrites=true&w=majority강의 중에서 [255. 몽고 DB 준비하기] 부분의 6분 54초 부분을 유심히 확인해봐주시면 되겠습니다.잘 안되시면 다시 문의 주세요.감사합니다.
- 0
- 2
- 24
질문&답변
158번 강의 질문입니다
안녕하세요.이 질문은 글로 설명하기가 조금 어려울 수 있지만, 최대한 쉽게 풀어보겠습니다.정말 핵심을 잘 짚은 질문이에요.예를 들어서,todos 상태에 선언된 배열의 메모리 주소가 0x01이라고 가정해보겠습니다.todos 배열에는 3개의 todo 객체가 들어 있다고 할게요.각각의 todo는 다음과 같은 메모리 주소를 가진다고 가정하겠습니다: 0x0a, 0x0b, 0x0c.이를 데이터 구조로 표현하면 다음과 같습니다.[0x0a, 0x0b, 0x0c] -> 0x01 (배열 자체) 새로운 할 일을 등록할 때는 불변성(immutability) 을 유지해야 하므로,배열 자체(껍데기)는 새로 만들어 교체하지만 내부의 객체(알맹이)는 그대로 사용합니다.예를 들어 다음과 같이 상태를 업데이트합니다.setTodos(todos => [...todos, {}]) 이렇게 하면 기존 배열의 메모리 주소였던 0x01은 변경되어,새로운 배열(껍데기)이 만들어지고 이 배열의 주소를 0x02라고 하겠습니다.새로 추가된 할 일의 객체는 0x0d라고 하면, 결과는 다음과 같습니다.[0x0a, 0x0b, 0x0c, 0x0d] -> 0x02 (새 배열)즉, 새로운 할 일을 등록하더라도 변경되는 것은 배열 자체(껍데기) 뿐입니다.배열 안의 기존 객체들(0x0a, 0x0b, 0x0c)은 그대로 유지됩니다.따라서 useState 훅으로 생성한 todos 상태는 별도의 메모이제이션을 하지 않아도 효율적으로 동작합니다. 결국 이를 반복 렌더링해서 TodoListItem으로 전달되는 객체는 같은 건 같을 것이고, 달라지는 것만 리렌더링이 될테니까요.조금 더 이해가 되셨을까요?혹시 더 궁금한 부분이 있다면 언제든지 질문해주세요! 추가 설명useState 훅으로 생성한 todos 상태는 배열(참조 자료형) 입니다.따라서 todos에 저장되는 값은 실제 배열 데이터가 아니라,배열이 선언된 메모리 주소(reference) 입니다.그리고 그 배열 안에는 여러 개의 todo 객체가 포함되어 있는데,객체 또한 참조 자료형입니다.즉, 배열 안에 있는 각 객체 요소도 실제 데이터가 아닌 메모리 주소 값을 가지고 있습니다.
- 0
- 2
- 23
질문&답변
리액트 웹뷰 관련 문의
안녕하세요.지그재그와 같은 웹과 모바일을 하이브리드 방식으로 대응하는 형태는 쇼핑몰 도메인에서 흔히 볼 수 있는 방식입니다.쇼핑몰은 주로 모바일로 접속하는 사용자가 많기 때문에 모바일을 우선적으로 대응하되, 웹을 통해 접근하는 고객들도 함께 수용할 수 있도록 하는 하나의 트렌드라고 이해하시면 좋을 것 같습니다. 🙂
- 0
- 1
- 41






