강의 관련 질문드립니다.
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
24년 12월에 결제하여 수강 중입니다 올해 [코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스 강의가 오픈 된 것을 보았는데, 강의 간 내용에 많은 차이 점이 있을까요? 신규 강의를 수강하려면 재결제 하는 방법밖에 없을까요..?
- react
- node.js
- seo
- graphql
- next.js
172만명의 커뮤니티!! 함께 토론해봐요.
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
24년 12월에 결제하여 수강 중입니다 올해 [코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스 강의가 오픈 된 것을 보았는데, 강의 간 내용에 많은 차이 점이 있을까요? 신규 강의를 수강하려면 재결제 하는 방법밖에 없을까요..?
해결됨
[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
AWS HTTPS 적용하는 부분에서 과정대로 2번 따라했는데 똑같이 해당 에러가 나서 https로 접속이 안 되네요 ㅜㅜ 이유가 먼지 알 수 있을까요?!
미해결
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
안녕하세요. 수강생입니다. 이부분을 5번은 넘게 들은거 같은데 어려워요. 깃주소주신것도 가서 봤는데 구조도 잘 이해가 안되고 todo 와 react만 연동되는 코드를 따로 깃에 주시면 안될까요? todo따로 react따로 폴더를 만들어주신거 같은데 myreact01-cra 온전히 todo를 리엑트에 붙이는 깃주소를 따로 만들어주셨으면해서요. 전부 한군데에 있어서 분석해보면서 하고는 있는데 저위의 3개의 카테고리중에 2개만이라도 되고 싶은데 다 합해서 20분수업도 안되는데 전 2분도 못쫓아가고 있어요. 리엑트도 어느정도안다고 생각하고 장고도 어느정도 안다고 생각하는데도 어렵습니다. 흑.... 소스코드를 받고 싶습니다. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
미해결
코드로 배우는 React 19 with 스프링부트 API서버
해당 강의 1:51에서 갑자기 데이터베이스 익스플로러용 데이터그립 툴이 나오는데 이에 대한 설정은 어느 강의에서 확인할 수 있는 거죠? 느닷없이 나와서 혼동스럽기만 하네요. 섹션 1의 MariaDB와 부트 프로젝트생성에서도 하이디sql 툴 설정만 하셔서 데이터그립 툴은 어디에서 나온 건지 모르겠습니다.
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요! 비슷한 유형의 질문글을 보고 늦었지만 문의드리게 되었습니다. 공지를 늦게 확인하여 쿠폰을 받지 못했는데 혹시 지금이라도 발급이 가능할까요?
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
코드를 치고 control + s를 눌렀을 때 <button> 내부의 요소들이 정환님의 화면처럼 코드들이 세로 일렬로 되도록 세팅하고 싶은데 저는 가로 일렬로 배치가 돼요. 혹시 이 부분 세팅은 어떻게 하는지 알려주실 수 있으실까요?
해결됨
Next.js 시작하기
import { dirname } from "path"; import { fileURLToPath } from "url"; import { FlatCompat } from "@eslint/eslintrc"; import prettierPlugin from "eslint-plugin-prettier"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, }); const eslintConfig = [ ...compat.extends("next/core-web-vitals"), ...compat.extends("plugin:prettier/recommended"), { files: ["**/*.js", "**/*.jsx"], plugins: { prettier: prettierPlugin, }, rules: { "no-undef": "error", "prettier/prettier": [ "error", { singleQuote: true, semi: true, tabWidth: 2, trailingComma: "all", printWidth: 80, bracketSpacing: true, arrowParens: "avoid", }, ], }, }, ]; export default eslintConfig;
미해결
React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
위와 같이 해당 변수나 값을 선언한거를 사용하지 않으면 이렇게 빨간 밑줄이 생기는데요. 이거 없앨수 없나요? 거슬리네요..ㅠ
해결됨
Git & GitHub, 원리부터 차근차근 - 근본깃
안녕하세요. 수업 재밌게 잘 듣고 있습니다. 궁금한 점이 하나 생겼는데요. git fetch 이후 git checkout -t origin/develop 이 아닌 git checkout develop 이라고만 해줘도 내 로컬 리파지토리에 develop 브랜치가 생성이 되는 것 같은데 이 둘의 차이가 무엇일까요?
미해결
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
NoReverseMatch 자체가 되돌아갈 곳이 없다는 오류인 것은 알겠으나, 왜 song_archive_year를 못찾는지 모르겠습니다. View class SongYearArchiveView(YearArchiveView): model=Song date_field="release_date" # make_object_list = True urls.py urlpatterns = [ ... path(route="archives/<int:year>/", view=views.SongYearArchiveView.as_view(), name="song_archive_year"), ] --- 혹시나 해서 View를 다음과 같이 했는데 class SongYearArchiveView(YearArchiveView): model = Song date_field = "release_date" # 조회할 날짜 필드 make_object_list = True def get_queryset(self): year = self.kwargs['year'] # URL에서 'year' 값을 가져옴 return Song.objects.filter(release_date__year=year) 인지는 하는 것 같아요. 그런데 버튼은 없군요.
해결됨
한 입 크기로 잘라먹는 Next.js
선생님 강의 5-3) 9분 10초를 보다가 궁금한 것이 있습니다~ generateStaticParams으로 지정했던 id값이 아닌 4번페이지에 접속했을 때 해당 페이지가 실시간으로 다이나믹하게 페이지가 생성되고 풀라우트캐시에 저장된다고 하셨는데요 풀라우트캐시는 static페이지에서만 동작한다고 알고 있고, [id]컴포넌트에서 fetch함수에 캐싱 옵션으로 'force-cache'을 설정한 것도 아닌데 어떻게 풀라우트 캐시가 동작할 수 있나요??
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
리액트 종강으로 얻은 타입스크립트 할인 쿠폰인데 입력하니까 이렇게 뜨는데 그럼 못받는건가요 ㅜㅜ
미해결
Next + React Query로 SNS 서비스 만들기
쌤 하트나 리포스트를 누를 때 마다 가끔씩 TypeError: data.pages.map is not a function 이런 에러 PostRecommend 섹션에 뜨는데 이런 경우가 종종 발생할까요 ?
미해결
포트폴리오 초간단 배포하기
12:39초에 nginx.conf 파일에 어떤 정보들을 넣는다는 건가요?? 저는 현재 강사님꺼 무중단배포 버전이랑 해당 강의영상을 보면서 jenkins대신에 nginx와 github actions로 무중단 배포 환경을 만들었습니다. https 설정을 적용하려고 하는데 해당 부분에서 어떤 부분들을 넣어줘야 하는지 감이 안잡히네요. 현재 nginx/conf파일입니다 그리고 default.conf 부분엔 upstream blue 서버와 green 서버로 되어있고, AWS EC2에 443 포트도 열어준 상태입니다
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
안녕하세요 강사님! 항상 좋은 강의 감사합니다:) 강의를 보던 중 강사님 께서는 update 단계에서 useEffect의 두번째 인수 deps를 생략하라고 하셨는데 아래와 같이 deps에 state값들(count, input)을 주고 변화 시켜도 콘솔에 생략했을 때와 똑같이 update가 출력되는 것을 확인했는데 무슨 차이인지 궁금합니다! <deps 생략 코드> useEffect(() => { if (!isMount.current) { isMount.current = true; return; } console.log("update"); }); <deps 추가 코드> useEffect(() => { if (!isMount.current) { isMount.current = true; return; } console.log("update"); }, [count, input]);
미해결
코드로 배우는 React 19 with 스프링부트 API서버
상품쪽 moveToList에서 page하고 size추가 안해도 useCustomMove 이쪽에 const page = getNum(queryParams.get('page'), 1) const size = getNum(queryParams.get('size'), 10) 이렇게 되어있어서 따로 moveToList에서 page하고 size를 안넣어도 잘 이동이 되던데 잘못된걸까요??
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
제가 1번 일기 수정을 누르고 수정 페이지에 들어가면 1번일기의 오늘의 일기 기본값으로 "1번 일기 내용"(원본 content) 있어야 하잖아요? 근데 content 표기는 안되고 placeholder만 보입니다.. 아래는 코드입니다 import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import Button from "./Button"; import "./Editor.css"; import EmotionItem from "./EmotionItem"; const emotionList = [ { emotionId: 1, emotionName: "완전 좋음" }, { emotionId: 2, emotionName: "좋음" }, { emotionId: 3, emotionName: "그럭저럭" }, { emotionId: 4, emotionName: "나쁨" }, { emotionId: 5, emotionName: "끔찍함" }, ]; const getStringedDate = (targetDate) => { // 날짜 -> YYYY-MM-DD let year = targetDate.getFullYear(); let month = targetDate.getMonth() + 1; let date = targetDate.getDate(); if (month < 10) { month = `0${month}`; } if (date < 10) { date = `0${date}`; } return `${year}-${month}-${date}`; }; const Editor = ({ initData, onSubmit }) => { const [input, setInput] = useState({ createdDate: new Date(), emotionId: 3, content: "", }); const nav = useNavigate(); useEffect(() => { if (initData) { setInput({ ...initData, createdDate: new Date(Number(initData.createdDate)), }); } }, []); const onChangeInput = (e) => { let name = e.target.name; let value = e.target.value; if (name === "createdDate") { value = new Date(value); } setInput({ ...input, [name]: value, }); }; const onClickSubmitButton = () => { onSubmit(input); }; return ( <div className="Editor"> <section className="date_section"> <h4>오늘의 날짜</h4> <input name="createdDate" onChange={onChangeInput} value={getStringedDate(input.createdDate)} type="date" /> </section> <section className="emotion_section"> <h4>오늘의 감정</h4> <div className="emotion_list_wrapper"> {emotionList.map((item) => ( <EmotionItem onClick={() => onChangeInput({ target: { name: "emotionId", value: item.emotionId, }, }) } key={item.emotionId} {...item} isSelected={item.emotionId === input.emotionId} /> ))} </div> </section> <section className="content_section"> <h4>오늘의 일기</h4> <textarea name="content" value={input.content} onChange={onChangeInput} placeholder="오늘은 어땠나요?" ></textarea> </section> <section className="button_section"> <Button onClick={() => nav(-1)} text={"취소하기"} /> <Button onClick={onClickSubmitButton} text={"작성완료"} type={"POSITIVE"} /> </section> </div> ); }; export default Editor;
미해결
실무 중심! FE 입문자를 위한 React
https://codesandbox.io/p/sandbox/2-1-29k09?file=%2Fsrc%2Findex.js%3A9%2C1
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
const onSubmit = () => { if (input.name === "") { // 이름을 입력하는 DOM 요소에 포커스 inputRef.current.focus(); } }; 위 코드는 강사님께서 알려주신 onSubmit함수인데 콘솔에 하나하나 찍어가면서 공부하다 보니까 inputRef.current가 가리키는 것이 input 태그여서 아래와 같이 조건문의 조건을 바꿔서 돌려봐도 잘 나오는데 input.name과 inputRef.current.value가 같은 것을 가리켜서 그런건지 궁금합니다! const onSubmit = () => { if (inputRef.current.value === "") { // 이름을 입력하는 DOM 요소에 포커스 inputRef.current.focus(); } }; 혹시 몰라서 input태그도 올립니다! <div> <input ref={inputRef} name="name" value={input.name} onChange={onChange} placeholder="이름" /> </div>
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
특정 요소의 입력검증을 위해 useRef()를 생성하고 해당 element tag에 ref={inputRef}를 생성한 이후에 onSubmit()에서 강의대로 입력확인 처리를 하였습니다. const onSubmit = (e) => { console.log(input.name, input.birth) if(input.name === "") { console.log(inputRef.current) inputRef.current.focus() return } if(input.birth === "") { console.log(birthRef.current) birthRef.current.focus() return } } 질문의 bith에 대한 입력검증을 하고자 하면 신규로 birthRef = useRef()를 생성하고 element tag에 ref={birthRef}를 추가 / onSubmit에서 해당 로직을 적용해야 하는 건가요? 총 4개 입력항목(이름, 생년월일, 국가, 자소개)이면 useRef()를 4개 생성해서 엘리먼트별 입력확인을 하는구조로 개발이 되어야 하는건가요?