173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
포트폴리오 리뷰 - container/presenter 파일 분리 레퍼런스 코드를 클론후 빌드했을때 http://localhost:3000/boards 페이지 접근시 우측 날짜 시간쪽이 겹쳐서 나오는 것 같습니다. 단순 CSS 문제라고 보면 되나요?
react node.js seo graphql next.js
Jun
2023-03-24T04:05:23.919Z
댓글 1
좋아요 0
조회수 495
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
배포에서 대표적인 클라우드 서비스로 AWS, GCP, Azure 를 알려주셨는데요 혹시 파이어베이스도 같은 묶음으로 봐도 될까요?? 파이어베이스는 AWS처럼 사용할 수 없나요?? 파이어베이스는 DB, 서버 용으로만 배우는게 좋을까요??
react node.js seo graphql next.js
lar888
2023-03-24T02:52:53.771Z
댓글 1
좋아요 0
조회수 892
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요 createBoardComment 만들려고 mutation CreateBoardCommet doc을 보고 하고 있는데 createBoardCommentInput과 boardId:ID! 를 두개다 써야되는데 어떻게 해야 되는지 알수 있을까요? 또한 밑에 createBoardComment도 필요하다 하는데 어떻게 써야되는건가요? 감사합니다
react node.js seo graphql next.js
ooo
2023-03-22T03:17:15.711Z
댓글 1
좋아요 0
조회수 339
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요 멘토님. 항상 좋은 강의 잘 보고 있습니다. HOC와 권한분기 실습 까지 수강을 마치고 궁금한 점이 생겨 질문 드립니다. 페이지로 이동 시 HOC를 먼저 실행하여 로그인을 체크하는 방식은 이해했습니다. 그런데, 간혹 어떤 특정 게시판 사이트에 비로그인 상태에서 댓글 작성을 한다고 가정할 때 인풋창이나 등록 버튼을 누르면 '로그인 후 이용해주세요' 라는 알럿을 띄워주는 경우가 있습니다. (페이지 이동이 아닌 단순 엘리먼트 클릭) 이러한 경우에는 그냥 단순히 인풋이나 등록 버튼 등 엘리먼트를 클릭 했을 때 토큰이 있는지 if 검증을 하는 로직만 넣으면 되는 것인지 궁금합니다. 그리고 댓글 리스트 수정과 같은 상황에서 댓글 리스트에서 댓글 하나를 수정 버튼 눌렀을 때, 비로그인 유저를 감지하여 알럿을 띄워주고 싶은 경우도 궁금합니다. 이런 경우는 보통 이전 수업 때 배웠듯이 map을 사용하여 댓글 수정 컴포넌트를 반복문으로 뿌려주는 형태로 사용을 합니다. 그렇다면 이 댓글 수정 컴포넌트를 export 하는 과정에서 HOC를 씌워주는게 맞는 것인지, 아니면 그냥 또 단순히 수정 버튼 클릭 시 if 검증을 통해 토큰 존재 여부만 파악하면 되는지 궁금합니다. 감사합니다.
react node.js seo graphql next.js
FRONTEER
2023-03-17T14:31:02.964Z
댓글 1
좋아요 0
조회수 378
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
파이어베이스에서 업데이트나 삭제를 할때 그 문서의 id? (위의 사진의 글자) 를 가져와서 변경을 해줘야하잖아요 그런데 저 id를 어떻게 데이터와 함께 가져오는거죠..? const [boardsData, setBoardsData] = useState<DocumentData[]>([]); const [boardId, setBoardId] = useState<string[]>([]); const onClickShowBoards = async () => { const myBoard = collection(getFirestore(firebaseApp), "MyBoard"); const result = await getDocs(myBoard); const data = result.docs.map((el) => el.data()); setBoardsData(data); const dataId = result.docs.map((el) => el.id); setBoardId(dataId); }; 위와같이 배열을 생성해서 각각의 아이디를 불러오긴했는데 어떻게 연결시킬지 모르겠네요ㅜ
react node.js seo graphql next.js
ju han
2023-03-17T07:26:42.024Z
댓글 1
좋아요 1
조회수 754
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
typesciprt 였나 antd 였나 설치하고 부터 자주 밑에 그림처럼 뜨네요. 구글링으로 ctrl + f8로 일시적으로 문제를 해결할 수 있었으나 계속 오류가 반복되어 질문드립니다. 혹시 어떤 부분에서 잘못 되었을지 ... 알수있을까요 밑에 부분은 소스에서 빨간줄 뜨는 부분입니다. 추가로 이런 오류도 자주 뜹니다 ...
react node.js seo graphql next.js
임프런
2023-03-16T02:10:03.032Z
댓글 2
좋아요 0
조회수 388
해결됨
Next.js 시작하기(feat. 지도 서비스 개발)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 잘 보고 있습니다. 여러 아이콘을 저장해놨다가 사용하는 방법도 있는데 스프라이트 이미지를 사용하시는 이유가 궁금합니다.
seo next.js vercel csr ssg ssr
kyongah
2023-03-15T08:53:38.611Z
댓글 1
좋아요 1
조회수 734
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
import { useQuery } from "@apollo/client" import {useState} from 'react' import {useRouter} from "next/router" import {Fetch_List} from './BoardList.query' import BulletinBoardListUI from './BoardList.presenter' export default function BulletinBoardListFetch(){ const [page,setPage]=useState(1) const router = useRouter() const{data}=useQuery(Fetch_List,{ variables:{ page } }) function MoveIndex(){ console.log("dfgd") return true } return( <BulletinBoardListUI MoveIndex={MoveIndex}/> ) } import * as S from './BoardList.style' export default function BulletinBoardListUI(props){ console.log(props) return( <S.TableWraper> <S.TableTop> <S.ColumnHeaderBasic>번호</S.ColumnHeaderBasic> <S.ColumnHeaderTitle>제목</S.ColumnHeaderTitle> <S.ColumnHeaderWriter>작성자</S.ColumnHeaderWriter> <S.ColumnHeaderDate>날짜</S.ColumnHeaderDate> </S.TableTop> {props.data?.fetchBoards?.map( (el,i)=>{ i++ return(<S.Column key={el._id}> <S.RowNum>{i}</S.RowNum> <S.RowTitle onClick={props.MoveIndex}>{el.title}</S.RowTitle> <S.RowWriter>{el.writer}</S.RowWriter> <S.RowDate>{el.createdAt.substring(0,10)}</S.RowDate> </S.Column> )})} </S.TableWraper> ) } props.MoveIndex가 실행이 안돼요...
react node.js seo graphql next.js
웹서퍼
2023-03-15T07:46:28.383Z
댓글 1
좋아요 0
조회수 270
해결됨
Next.js 시작하기(feat. 지도 서비스 개발)
일단 강의 잘 보고 있습니다. 제 학습 수준이 아직 낮아서, 더이상 진도는 안나가고 있고 다시 리액트를 좀 복습중입니다.ㅎㅎ 저도 언능 수준이 올라가서, 박용주님처럼 이것저것 만들어보고 싶네요. 최종 목표는 웹게임을 만들어보는겁니다.ㅎㅎ 아무튼. 질문이 하나 있는데요~ 혹시 next.js로 개발을 할 때 Redux는 잘 사용 안하나요? 리액트 배우면서 redux를 아주 중요하게 다루는것 같은데, next.js강의는 여러곳을 돌아다녀 봐도 redux에 대해서는 안가르치는것같더라구요. 리액트에서 당연히 배워왔을 소양이라서 커리큘럼에 없는건지, 아니면 next.js에서는 redux는 잘 사용 안하는건지 궁금합니다!
seo next.js vercel csr ssg ssr
고고스
2023-03-15T03:35:09.554Z
댓글 2
좋아요 2
조회수 628
해결됨
Next.js 시작하기(feat. 지도 서비스 개발)
안녕하세요 강의시작마다 브랜치가 나오는데, 깃헙주소 알 수 있을까요? 감사합니다. 1-2 브랜치 1-4 브랜치가 어디에 있는지 알 수 있을까요? 강의 중간중간 보시면 git checkout 하시는 것으로 보아 github주소가 있는 것 같습니다. github 주소 공유해부탁드립니다. 감사합니다.
seo next.js vercel csr ssg ssr
seungyoon jang
2023-03-15T03:19:37.621Z
댓글 2
좋아요 3
조회수 765
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
포트폴리오 과제에서 주셨던 무한 스크롤 리뷰가 오늘 강의에선 없네요! 혹시 이유가 있는걸까요?! 그리고 백앤드에 하나의 게시판에 달려있는 댓글 갯수를 가져오는 api가 따로 없던데 퀴즈처럼 무한스크롤을 직접구현하는 건가요?
react node.js seo graphql next.js
ju han
2023-03-15T01:41:48.811Z
댓글 1
좋아요 0
조회수 544
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요. eslint와 prettier 설정 및 UI 프레임워크 강의 상에서는 .eslintignore가 적용되지 않는데 혹시 추후 강의에 이 부분이 다시 언급되는지가 궁금해서 문의 남깁니다. 혹시 언급되지 않는다면 어떻게 처리하면 될까요? 그리고 추가로 .eslintrc.js 파일 내용이 이전 강의랑 다른데 이건 왜 달라졌는지 알 수 있을까요? (이전 강의에서는 .eslintrc.js에 parser: @typescript-eslint/parser도 있었고, plugins에도 적용을 해주었던거 같은데 이번 강의에서는 다 빠져있어서 문의드립니다.)
react node.js seo graphql next.js
tndms1027
2023-03-15T00:57:36.643Z
댓글 2
좋아요 0
조회수 675
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
import { gql,useMutation,useQuery } from "@apollo/client" import styled from "@emotion/styled" const FETCH_PRODUCT = gql` query fetchBoards($page:Int){ fetchBoards(page:$page){ writer title contents number } } ` const FETCH_DELETE = gql` mutation deleteBoard($number:Int){ deleteBoard(number:$number){ message } } ` const Row = styled.div` display:flex; ` const Column = styled.div` width: 25%; ` export default function StaticRoutedPage(){ const{data}=useQuery(FETCH_PRODUCT, {variables:{ page:2 }}) const[deleteBoard]= useMutation(FETCH_DELETE) console.log(data?.fetchBoards) const onClickDelete= async (event)=>{ await deleteBoard({ variables:{ number: Number(event.target.id) }, refetchQueries:[{query: FETCH_PRODUCT}] }) } return ( <> {data?.fetchBoards?.map((el)=>( <Row> <Column><input type="checkbox"/></Column> <Column>{el.number}</Column> <Column>{el.title}</Column> <Column>{el.contents}</Column> <Column> <button id={el.number} onClick={onClickDelete}>삭제</button> </Column> </Row>))} </> ) }
react node.js seo graphql next.js
웹서퍼
2023-03-14T02:50:49.905Z
댓글 1
좋아요 0
조회수 468
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요, 중고마켓을 진행하게 되는 로그인 섹션부터는 포트폴리오 리뷰가 진행되지 않는다고 하셨는데, 완성코드도 제공이 되지 않는걸까요? 제공이 되지 않는다면 모르는 부분에 대해선 코드수정과 리뷰는 어떻게 알 수 있을까요??
react node.js seo graphql next.js
wodndi0321
2023-03-14T02:41:48.855Z
댓글 1
좋아요 0
조회수 477
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
선생님 안녕하세요... 정말 열심히 하였지만 무한 스크롤 때문에 정말 머리가 터질것같습니다.. 댓글 한번만 작성 했는데... 사진처럼 여러개가 나옵니다 해결 방법이 있을까요ㅠㅠㅠ
react node.js seo graphql next.js
뽕리뽕뽕
2023-03-13T12:51:59.531Z
댓글 1
좋아요 0
조회수 952
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
다른 때에는 prettier가 잘 동작하는데 useQuery, useMutation Hook에 type을 지정하면 prettier가 잘 작동하지 않습니다. useQuery에 타입을 지정하지 않거나, 코드를 주석처리하면 prettier가 잘 작동합니다. const { data, refetch } = useQuery<Pick<IQuery, "fetchBoards">, IQueryFetchBoardsArgs>(FETCH_BOARDS);
react node.js seo graphql next.js
yeji
2023-03-13T12:05:20.909Z
댓글 1
좋아요 0
조회수 323
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요, 혹시 강의에 나와 있는 회원가입 폼 피그마로 되어 있는 부분 정답지는 따로 알 수 없는걸까요 선생님?
react node.js seo graphql next.js
다댕
2023-03-13T10:33:58.960Z
댓글 3
좋아요 0
조회수 681
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
강의 명: 이미지 업로드 프로세스 이해 및 실습 시간대: 1시간 1분 35초쯤 해당 부분에서 uploadLink를 넣으실 때 에러가 안뜨시던데 저는 위와 같은 타입 에러가 뜹니다. (모든 에러 구문은 마지막 부분에 있습니다) 물론 타입스크립트 apollo-client-upload의 타입스크립트 부분도 다운로드 받았습니다. TS 에러라 실제 업로드 기능 테스트에는 문제가 없었지만 저만 에러가 뜨는 것 같아서 찝찝한 마음에 질문을 올려봅니다. 버전 차이일까요? (일단 uploadLink 변수 뒤에 any를 붙여주면 컴파일 에러가 사라지긴 했습니다.) 사용 중인 버전 { "name": "class", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint", "generate": "graphql-codegen" }, "dependencies": { "@ant-design/icons": "^5.0.1", "@apollo/client": "^3.6.9", "@emotion/react": "^11.10.0", "@emotion/styled": "^11.10.0", "@material-ui/core": "^4.12.4", "@next/font": "13.1.2", "antd": "^4.22.8", "apollo-upload-client": "^17.0.0", "axios": "^0.27.2", "graphql": "^16.6.0", "next": "12.1.0", "react": "17.0.2", "react-daum-postcode": "^3.1.1", "react-dom": "17.0.2", "react-infinite-scroller": "^1.2.6" }, "devDependencies": { "@graphql-codegen/cli": "^3.0.0", "@graphql-codegen/typescript": "^3.0.0", "@types/apollo-upload-client": "^17.0.2", "@types/node": "17.0.2", "@types/react": "17.0.2", "@types/react-infinite-scroller": "^1.2.3", "@typescript-eslint/eslint-plugin": "^5.0.0", "eslint": "^8.0.1", "eslint-config-prettier": "^8.6.0", "eslint-config-standard-with-typescript": "^34.0.0", "eslint-plugin-import": "^2.25.2", "eslint-plugin-n": "^15.0.0", "eslint-plugin-promise": "^6.0.0", "eslint-plugin-react": "^7.32.2", "prettier": "2.8.4", "typescript": "*" }, "resolutions": { "@types/react": "17.0.2" } } 설정 코드 에러 내용 전문 const uploadLink: ApolloLink 'ApolloLink' 형식은 'ApolloLink | RequestHandler' 형식에 할당할 수 없습니다. 'import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink' 형식은 'import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink' 형식에 할당할 수 없습니다. 'split' 속성의 형식이 호환되지 않습니다. '(test: (op: import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/core/types").Operation) => boolean, left: import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/cor...' 형식은 '(test: (op: import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/types").Operation) => boolean, left: import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink | import("c:/Users/PC/Desktop/real_project/study/clas...' 형식에 할당할 수 없습니다. 'left' 및 'left' 매개 변수의 형식이 호환되지 않습니다. 'import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink | import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/types").RequestHandler' 형식은 'import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink | import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/core/types").RequestHandler' 형식에 할당할 수 없습니다. 'ApolloLink' 형식은 'ApolloLink | RequestHandler' 형식에 할당할 수 없습니다. 'import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink' 형식은 'import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink' 형식에 할당할 수 없습니다. 'split' 속성의 형식이 호환되지 않습니다. '(test: (op: import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/types").Operation) => boolean, left: import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink | import("c:/Users/PC/Desktop/real_project/study/clas...' 형식은 '(test: (op: import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/core/types").Operation) => boolean, left: import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/cor...' 형식에 할당할 수 없습니다. 'right' 및 'right' 매개 변수의 형식이 호환되지 않습니다. 'import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink | import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@types/apollo-upload-client/node_modules/@apollo/client/link/core/types").RequestHandle...' 형식은 'import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/ApolloLink").ApolloLink | import("c:/Users/PC/Desktop/real_project/study/class/node_modules/@apollo/client/link/core/types").RequestHandler | undefined' 형식에 할당할 수 없습니다. 'ApolloLink' 형식은 'ApolloLink | RequestHandler | undefined' 형식에 할당할 수 없습니다.ts(2322) 감사합니다.
react node.js seo graphql next.js
FRONTEER
2023-03-12T08:03:53.079Z
댓글 1
좋아요 1
조회수 928
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요 멘토님, 항상 양질의 강의 잘 듣고 있습니다. 저번에 질문 올리려다 까먹고 못 올렸다가 다시 기억나서 올리는 질문입니다. try/catch 구문에서 error.message는 graphql 에서 예외처리 될 때 보내지는 에러 메시지인지 아니면 graphql이 아닌 백단 부분(node 코드) 같은 곳에서 예외처리 되어 보내지는 에러 메시지인지 궁금합니다. 수업 때 들은 기억으로는 error 객체가 백엔드에서 보내주는 에러에 대한 정보라고만 들었던 것 같은데, 궁금하여 질문 올립니다. 감사합니다.
react node.js seo graphql next.js
FRONTEER
2023-03-12T07:50:01.181Z
댓글 1
좋아요 0
조회수 417
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요! 강의듣는데 혼자서는 오류를 해결하지 못 할것 같아서 질문드립니다! 오류뜨는 부분은 freeboard_frontend > boards > [_id] > index.js (상세페이지) 입니다. 글 작성 -> 상세페이지로 이동 -> 상세페이지에서 수정 버튼 누르면 수정페이지로 이동 -> 수정페이지에서 수정하고 수정버튼 누르면 다시 상세페이지로 이동 > 상세페이지에서 삭제버튼 클릭하면 삭제후 리스트로 이동 제가 의도한 기능들은 모두 정상작동은 하는데 상세페이지에 만 접속하면 해당 오류가 발생합니다..! (상세페이지 query 코드입니다) -> $boardID: ID! 이부분에서 오류가 나는것 같은데 강의 자료실에 올라온 코드와 비교해봤지만 같게 작성된걸 확인했습니다! (상세페이지 접속했을때만 NetWork에 이렇게 뜹니다ㅠㅠ) 한가지 더 궁금한 점이 있습니다! 타입 지정해줄때 Docs 보고 그대로 적으면 된다고 하셨는데 ($boardId: [ID!]!) 이렇게 적으니까 오류가 나서 ($boardId: ID!) 이렇게 적으니까 작동이되더라구요.. 제가 강의 들으면서 빼먹은 부분이 있는걸까요ㅠㅠ? 이럴땐 어떻게 적어야 할까요ㅠ?? export const DELETE_BOARD = gql` mutation deleteBoard($boardId: ID!){ deleteBoard (boardId: $boardId) } `;
react node.js seo graphql next.js
2023-03-10T08:04:57.142Z
댓글 1
좋아요 1
조회수 483