강의와 만들어진 코드가 달라요
미해결
React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
좌측이 강의 코드, 우측이 강의 보며 10강까지 진행한 코드 결과입니다. 우측, 만들어진 코드를 보니 ReactDom, <React.~~> 등이 입력되어있지않아요. 무슨 문제인걸까요?
- react
- React-Context
- react-router
- tailwindcss
- react-query
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
좌측이 강의 코드, 우측이 강의 보며 10강까지 진행한 코드 결과입니다. 우측, 만들어진 코드를 보니 ReactDom, <React.~~> 등이 입력되어있지않아요. 무슨 문제인걸까요?
미해결
React Native with Expo: 제로초에게 제대로 배우기
제로초님 안녕하세요 expo 프로젝트의 폴더 구조에 대해서 고민이 있습니다.!! 현재 src/app 폴더에서 페이지들을 관리하고 있고 각 페이지 내부에서만 사용하는 하위 컴포넌트들은 src/app/settings/_components/AccountSettingsSection.tsx 와 같이 _components 폴더 하위에 배치하고, named export를 통해 라우트로 잡히지 않게 하고 있습니다. 문제는 없지만 프로젝트를 실행시키면 WARN Route "./settings/_components/AccountSettingsSection/AccountSettingsSection.tsx" is missing the required default export. Ensure a React component is exported as default. 라는 경고 메시지가 app/ 내부에서 named export 한 모든 하위 컴포넌트를 대상으로 출력됩니다. Next.js처럼 _components 내부의 하위 컴포넌트들은 완전히 무시하도록 하고 싶은데 아무리 찾아봐도 무시할 방법이 없는 거 같습니다 ㅠ 제로초님께서는 어떤 방법으로 페이지 내부 하위 컴포넌트들을 배치하시는지 궁금합니다..!! 관리하기 용이한 폴더 구조가 있다면 추천해주실 수 있으신가요??
미해결
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
package section06_Sorting_Searching_failed.no07_coordinates_sorting; import java.util.*; public class Main { public int[][] solution(int n, int[][] arr) { for (int i = 1; i < n; i++) { int tmpX = arr[i][0]; int tmpY = arr[i][1]; int j; for (j = i-1; j >= 0; j--) { if (arr[j][0] > tmpX) { arr[j+1][0] = arr[j][0]; arr[j+1][1] = arr[j][1]; } else { break; } } arr[j+1][0] = tmpX; arr[j+1][1] = tmpY; } for (int i = 1; i < n; i++) { int tmpX = arr[i][0]; int tmpY = arr[i][1]; int j; for (j = i-1; j >= 0; j--) { if (arr[j][0] == tmpX && arr[j][1] > tmpY) { arr[j+1][1] = arr[j][1]; } else { break; } } arr[j+1][1] = tmpY; } return arr; } public static void main(String[] args) { Main m = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n][2]; for (int i = 0; i < n; i++) { for (int j = 0; j < 2; j++) { arr[i][j] = sc.nextInt(); } } int[][] result = m.solution(n, arr); for (int i = 0; i < n; i++) { for (int j = 0; j < 2; j++) { System.out.print(result[i][j] + " "); } System.out.println(); } } } 저는 이렇게 하니 오답이라 뜨고 여기서 main 메서드에 출력방식만 for (int i = 0; i < n; i++) { System.out.println(result[i][0] + " " + result[i][1]); } 이렇게 바꾸니 정답이라고 뜨는데 왜 그런가요?
미해결
타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
window 10을 사용하고 있는 학생인데 react작동안됩니다ㅜㅜ ctrl 하고 마우스 왼쪽해도 실행이 안되네요 로딩이 오래 걸려요
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
선생님 인강 잘듣고 있읍니다 인강에선 react 설치시 vite 로설치하고 책에서는 create React App 으로 설치하는데 대략검색해보니 vite 설치시 효울적이고 빠르다고 하는데 책으로 공부하면 create React App으로 설치해도 상관없나요
미해결
김영한의 실전 자바 - 기본편
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이 부분에서 Student student를 선언하고 new Student();를 안했는데 어떻게 바로 .name같은 거를 사용할 수 있는 건가요? 다른 부분에서는 꼭 객체를 먼저 생성해야 접근을 할 수 있는데 이 함수에서는 왜 가능한건가요? static void initStudent(Student student, String name, int age, int grade) { student.name = name; student.age = age; student.grade = grade; }
해결됨
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 생성 로직에서 만약 오류 발생시에 db는 롤백이 되는데 만약 redis에 저장된 게시글수가 이미 증가됐다면 감소를 시켜야 하는데 어떻게 처리하는게 좋을까요
해결됨
한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
안녕하세요, 강의 잘 보고 있습니다. 저는 1년 차 백엔드 개발자 입니다. 미니 프로젝트에 프론트로 투입이 되어 zustand와 tanstack 학습을 위해 강의를 듣게되었습니다. 선생님께서 hook을 작성하실 때 함수를 각각 별도 파일로 분리하는 방식으로 진행하셨는데, 실무에서도 보통 함수마다 파일을 나누는 방식으로 진행하나요? 아니면 도메인 단위로 묶어서 하나의 파일안에 관련함수들을 관리하시는지 궁금합니다. 선생님 강의 덕분에 쉽고 재밌게 학습하고 있습니다. 감사합니다 : )
미해결
[React 2부] 고급 주제와 훅
안녕하세요, 강의에서 훅( useState , useEffect ) 사용 규칙과 내부 동작 원리를 공부하다가 궁금한 점이 있어 질문드립니다. React는 훅을 순서 기반 으로 관리한다고 배웠습니다. 그래서 다음과 같은 규칙이 있는 걸로 알고 있습니다: 훅은 컴포넌트 최상위에서만 호출 해야 한다. 조건문, 반복문, 중첩 함수 안에서 훅을 호출하면 안 된다. 이와 관련해 궁금한 점은 다음과 같습니다: 개발하다 보면 상태가 많아지고 상태마다 핸들러도 많아지게 되어 코드가 길어지게 됩니다. 그러다 보니 소스코드를 한눈에 파악하기 어려워지는 것 같습니다. 실무에서는 상태별로 핸들러를 묶어서 작성하는 패턴을 많이 쓰나요? 예를 들어: const [count, setCount] = useState(0); const handleChangeCount = () => { ... }; const [name, setName] = useState(''); const handleChangeName = () => { ... }; 이런 방식으로도 구현을 하시는지, 아니면 useState는 최상단에서 묶어 관리하고 handler는 handler끼리 useEffect는 useEffect 끼리 작성하는 것이 일반적인지 궁금합니다.
미해결
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
package section06_Sorting_Searching.no06_fail; import java.util.*; public class Main { public int[] solution(int n, int[] arr) { int [] answer = new int[2]; for (int i = 0; i < n-1; i++) { if (arr[i] > arr[i+1] && answer[0] == 0) { // 첫번째 바뀐 지점 answer[0] = i+1; } else if (arr[i] > arr[i+1] && answer[0] != 0) { // 두번째 바뀐 지점 answer[1] = i+2; break; } if (i == n-2) answer[1] = answer[0] + 1; // 서로 인접한 상태에서 바꼈을때 } return answer; } public static void main(String[] args) { Main m = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } for (int x : m.solution(n, arr)) System.out.print(x + " "); } } 코드를 위와 같이 작성했는데 틀렸다고만 나와서 왜 틀렸는지 아무리 생각해봐도 잘 모르겠어서 질문합니다.
해결됨
[JSP부터 스프링부트까지]포기없는 SpringBoot로 가는길
8. DB에 요청하여 데이터 update와 delete하기 이강좌가 런닝타임이 1시간이 넘는다라 표기됬음에도16분정도 시청하면 화면이 검게 변하면서 재생이 검은화면만 계속나오는데 강좌오류인가요? 아니면 표기상 미스가 난건가요??? 내용상 뒷부분이 끊겼는지 궁금해지네요
미해결
스프링 부트와 리액트로 구현하는 보안 JWT 로그인
동영상 화면만 보면서 강의 자료를 확인하기에는 제가 원하는 부분을 실시간으로 확인하기가 어려운 점도 있고, 이후 복습하기도 어렵습니다. 강의 자료를 제공해주신다면 학습 하는 데에 시간을 많이 아낄 수 있을 것 같습니다.
해결됨
한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
(6. 5) 소셜 로그인 구현하기 부분 보고 질문 드립니다. 현재는 사전에 자신 Github의 OAuth 정보를 입력해야 로그인 되는 것으로 보입니다. 혹시 이 정보를 사전에 등록하지 않고, github 로그인 버튼을 눌렀을 때, 아이디 비밀번호를 입력해, 그 때 인증을 유도하는 방법은 없나요?? 각기 다른 사용자들이 이 정보를 매번 등록할 수는 없지 않을까 싶어서 그렇습니다 !
해결됨
이벤트부터 SPA까지, 상호작용 웹의 필수 엔진 - [DOM 완전 정복 Part 2]
11강에서는 removeEventListener 함수로 리스너를 명시적으로 제거하지 않는 한 요소가 사라지더라도 메모리에 계속 남아 있다고 설명하셨는데요. 12강에서는 요소를 제거하는 방식으로도 리스너를 제거할 수 있다고 해서 내용이 충돌하는 것 같아요.
미해결
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
문득 강의 수강 중에 강사님께서 개발자모드를 활성화하면 전체적인 화면이 반응형으로 되어있는데 쭉 수강하다가 제꺼에서는 지정이 안되있어 어느 챕터를 놓쳤는지 감이 안옵니다ㅜㅜ 혹여나 다른 분들도 비슷한 사례가 있을까싶어 여쭈어봅니다.
미해결
한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
7:33 초 타입스크립트 버전 선택 ctrl + shift + p 입력후 select type 로 하면 검색 결과가 안나오고 TypeScript: Select 검색해야 버전선택이 가능하니 안되시는분 참고하시길.. 처음 하는 분들은 안되고 한번 검색한 적이 있는경우 최근에 사용한 항목으로 검색이 되는듯하네요..
해결됨
누구보다 빠르게 해보는 Electron Todo List With TypeScript
깔끔하니 좋네요. 배포 과정 추가되면 좋을것같아요.
미해결
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
isLoading 기능을 추가했는데 수정하기, 다이어리 페이지에서 새로고침하면 존재하지 않는 일기입니다. 라고 나오네요. https://github.com/pdh9311/onebite-react 작성했던 코드 입니다. import { Route, Routes } from "react-router-dom"; import "./App.css"; import { createContext, useEffect, useReducer, useRef, useState } from "react"; import Diary from "./pages/Diary"; import Edit from "./pages/Edit"; import Home from "./pages/Home"; import New from "./pages/New"; import Notfound from "./pages/Notfound"; function reducer(state, action) { let nextState; switch (action.type) { case "INIT": return action.data; case "CREATE": nextState = [action.data, ...state]; break; case "UPDATE": nextState = state.map((item) => String(item.id) === String(action.data.id) ? action.data : item ); break; case "DELETE": nextState = state.filter( (item) => String(item.id) !== String(action.data.id) ); break; default: nextState = state; } localStorage.setItem("diary", JSON.stringify(nextState)); return nextState; } export const DiaryStateContext = createContext(); export const DiaryDispathContext = createContext(); function App() { const [isLoading, setIsLoading] = useState(true); const [data, dispatch] = useReducer(reducer, []); const idRef = useRef(0); useEffect(() => { const storedData = localStorage.getItem("diary"); if (!storedData) { setIsLoading(false); return; } const parsedData = JSON.parse(storedData); if (!Array.isArray(parsedData)) { setIsLoading(false); return; } let maxId = 0; parsedData.forEach((item) => { if (Number(item.id) > maxId) { maxId = Number(item.id); } }); idRef.current = maxId + 1; console.log(parsedData); dispatch({ type: "INIT", data: parsedData, }); setIsLoading(false); }, []); const onCreate = (createdDate, emotionId, content) => { dispatch({ type: "CREATE", data: { id: idRef.current++, createdDate, emotionId, content, }, }); }; const onUpdate = (id, createdDate, emotionId, content) => { dispatch({ type: "UPDATE", data: { id, createdDate, emotionId, content, }, }); }; const onDelete = (id) => { dispatch({ type: "DELETE", data: { id, }, }); }; if (isLoading) { <div>데이터 로딩중입니다....</div>; } return ( <> <DiaryStateContext.Provider value={data}> <DiaryDispathContext.Provider value={{ onCreate, onUpdate, onDelete }}> <Routes> <Route path="/" element={<Home />} /> <Route path="/new" element={<New />} /> <Route path="/diary/:id" element={<Diary />} /> <Route path="/edit/:id" element={<Edit />} /> <Route path="*" element={<Notfound />} /> </Routes> </DiaryDispathContext.Provider> </DiaryStateContext.Provider> </> ); } export default App; import { useContext, useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import { DiaryStateContext } from "../App"; //커스텀 훅 const useDiary = (id) => { const data = useContext(DiaryStateContext); const [currDiaryItem, setCurrDiaryItem] = useState(); const nav = useNavigate(); useEffect(() => { console.log("useDiary"); const currentDiaryItem = data.find( (item) => String(item.id) === String(id) ); if (!currentDiaryItem) { window.alert("존재하지 않는 일기입니다."); nav("/", { replace: true }); } setCurrDiaryItem(currentDiaryItem); }, [id]); return currDiaryItem; }; export default useDiary;
해결됨
[Live 챌린지] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
강의자료 다운로드시 위의 메시지로 다운이 되질 않습니다.
해결됨
한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
안녕하세요 선생님이 shadcn을 설치하고 있는데요 tsconfig.app.json에서 위와 같은 에러가 발생합니다. 혹시 몰라서 선생님이 올려두신 자료로 해봤지만 똑같네요... 그냥 "ignoreDeprecations": "6.0" 이걸 추가할까요?