'강의 준비를 위한 VSCode'에서 질문
미해결
처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
이렇게 되어있고, 아나콘다가 설정이 안되어 있으면 제가 바꿔도 되는건가요?
- python
- mvc
- sqlalchemy
- FastAPI
- backend
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
이렇게 되어있고, 아나콘다가 설정이 안되어 있으면 제가 바꿔도 되는건가요?
해결됨
한 입 크기로 잘라먹는 Next.js
안녕하세요! 섹션2의 1.3 강의를 보며 초기 데이터 설정을 진행하고 있는데 에러가 발생했습니다. npx prisma db push를 실행시켜서 테이블이 생성된 것을 확인하였고 npm run seed를 실행시키니 에러가 발생하게 되었습니다. 구글링해도 잘 모르겠어서 질문드립니다.
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
아래에 질문이 있으나 해결안이 없어 다시 문의드립니다. refreshToken, 쿠키는 정상적으로 전달되고 있습니다. setCookie도 나옵니다. 그러나, Application에 나타나지 않습니다. 그리고 조금 기다렸다가 acessToken을 재발급하려고 클릭하면 아래와 같은 메시지가 나타납니다. 크롬에서 써드파티 쿠키를 다 accept하도록 설정이 되어있고, 시크릿 모드에서도 진행해봤고 사파리에서도 동일합니다. 클릭하여 나타난 통신기록을 총 3번입니다. 첫번째 통신은 accessToken만료로 발생한 것으로 보입니다. 네트워크 통신기록을 살펴보면 UNAUTHENTICATED가 발생된 것을 알수 있습니다. 두번째 통신은 restoreAccessToken의 뮤테이션입니다. 헤더와 페이로드는 아래와 같습니다. jwt가 첨부되지 않았다는 부분입니다. 3번째 통신의 Header와 payload, response입니다. 이 부분은 주어진 조건으로 사용자 정보를 불러오는 query같습니다. 사용자에 관련된 정보가 없이 시도되어 _id null이 표시된것 같습니다. 인터넷에 검색해보았지만 잘 모르겠습니다. axios통신으로 refreshToken을 직접 저장해주는 코드를 보긴 했는데, graphql은 설정만 바꾼다고 하셔서 refreshToken을 어떻게 처리하는지 잘 모르겠습니다. 관련해서 검색을 통해 https로 환경을 바꾸면 될거다 하여, localhost:3000을 mkcert로 https로 환경을 바꾸려고 해봤는데 설치만 하고 아래의 글을 발견해서 잠깐 멈추었습니다. https://shingy.tistory.com/46 _id null의 문제가 local에 받아온 쿠키를 저장하지 못하는 문제인것 같은데, 어떻게 처리할수있는 방법이 있나 싶어서 여쭤봅니다. 코드 getAccessToken의 코드 import { GraphQLClient, gql } from "graphql-request"; import { IMutation } from "../../../commons/types/generated/types"; const RESTORE_ACCESS_TOKEN = gql` mutation { restoreAccessToken { accessToken } } `; export const getAccessToken = async (): Promise<string | undefined> => { try { const graphQLClient = new GraphQLClient( "https://backend-practice.codebootcamp.co.kr/graphql", { credentials: "include" }, ); const result = await graphQLClient.request<Pick<IMutation, "restoreAccessToken">>( RESTORE_ACCESS_TOKEN, ); const newAccessToken = result.restoreAccessToken.accessToken; return newAccessToken; } catch (error) { if (error instanceof Error) console.log(error); } }; 아폴로 클라이언트 코드 import { ApolloClient, InMemoryCache, ApolloProvider, ApolloLink, fromPromise, } from "@apollo/client"; import { createUploadLink } from "apollo-upload-client"; import { useRecoilState } from "recoil"; import { accessTokenState } from "../../../commons/store"; import { useEffect } from "react"; import { ErrorResponse, onError } from "@apollo/client/link/error"; import { getAccessToken } from "../libraries/getAccessToken"; const GLOBAL_STATE = new InMemoryCache(); interface IApolloSettingProps { children: JSX.Element; } export default function ApolloSetting(props: IApolloSettingProps) { const [accessToken, setAccessToken] = useRecoilState(accessTokenState); useEffect(() => { const result = localStorage.getItem("accessToken"); console.log(result); console.log("현재는 브라우저입니다"); setAccessToken(result ?? ""); }, []); const errorLink = onError(({ graphQLErrors, operation, forward }) => { //1-1.에러캐치 if (typeof graphQLErrors !== "undefined") { for (const err of graphQLErrors) { //1-2.토큰 만료에러인지 체크 if (err.extensions?.code === "UNAUTHENTICATED") { return fromPromise( getAccessToken() .then((newAccessToken) => { setAccessToken(newAccessToken ?? ""); operation.setContext({ headers: { ...operation.getContext().headers, Authorization: `Bearer ${newAccessToken}`, }, }); }) .catch((err) => { console.log("오류입니다"); }), ).flatMap(() => forward(operation)); } } } }); const uploadLink = createUploadLink({ uri: "https://backend-practice.codebootcamp.co.kr/graphql", headers: { Authorization: `Bearer ${accessToken}`, credentials: "include", }, }); const client = new ApolloClient({ link: ApolloLink.from([errorLink, uploadLink]), uri: "http://backend-practice.codebootcamp.co.kr/graphql", cache: GLOBAL_STATE, }); return <ApolloProvider client={client}>{props.children}</ApolloProvider>; } 로그인 success의 코드 import { gql, useApolloClient, useQuery } from "@apollo/client"; import type { IQuery } from "../../../src/commons/types/generated/types"; import { wrapAsync } from "../../../src/components/commons/libraries/asyncFunt"; const FETCH_USER_LOGGED_IN = gql` query fetchUserLoggedIn { fetchUserLoggedIn { email name } } `; export default function LoginPage() { const client = useApolloClient(); const onClickButton = async (): Promise<void> => { const result = await client.query({ query: FETCH_USER_LOGGED_IN, }); console.log(result); }; return ( <> {/* <div>{data?.fetchUserLoggedIn.name}님, 환영합니다.</div> */} <div>환영</div> <button onClick={wrapAsync(onClickButton)}>클릭하세요</button> </> ); }
해결됨
서버개발자 과제전형 완벽가이드 - 1편
멀티모듈 구성 강의에 대해 질문잉 이씁니다. 해당 강의에서 모듈 만들 때 아래처럼 파일 디렉토리가 되어있는데요. search-api ├── src │ ├── main │ │ ├── java │ │ ├── resources │ ├── test ├── build.gradle 제가 만들때는 아래 처럼 됩니다. 저는 왜 선생님 처럼 java로 모듈을 만들면 src 폴더에 아래 파일이 안생기고 lib 폴더만 생기는 이유가 뭘까요? │ ├── java │ │ ├── resources │ ├── test ├── build.gradle 저는 모듈 구성할 때 아래와 같은 창이 나오는데요. 아래에서 grovy를 체크(아래 사진에서 파란색바탕부분임. 아래사진은 안되어있지만 체크함.)했는데 체크 안하고 진행해야 하나요? 참고로 선생님 강의 44초에는 grovy 선택하는 구간이 나와서 저도 체크했어요. 제화면 선생님 화면 참고로 1. IDE에서 자동 생성 옵션 활성화 https://tychejin.tistory.com/340 이링크에 나와있는데로 세팅함. build.gradle을 아래처럼 세팅했습니다. 위 방법 실행 후 ./gradlew clean build 이 명령어 실행 프로젝트를 새로 열기 plugins { id 'java' id 'org.springframework.boot' version '3.3.9' id 'io.spring.dependency-management' version '1.1.7' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } sourceSets { main { java { srcDirs = ['src/main/java'] } resources { srcDirs = ['src/main/resources'] } } test { java { srcDirs = ['src/test/java'] } resources { srcDirs = ['src/test/resources'] } } } 캐시 삭제 후 재 진행 File → Invalidate Caches / Restart 클릭 "Invalidate and Restart" 선택 IntelliJ가 다시 시작되면 Gradle 탭에서 "Reload Gradle Project" 버튼(↻ 아이콘) 클릭 참고로 인텔리제이 2021 얼티미디엇 버전입니다. 위에 파일 아래 메일로 보냈습니다. 혹시 문제점이 있는지 봐주실 수 있으신가요? jaytech108@gmail.com
미해결
비전공자도 이해할 수 있는 DB 설계 입문/실전
학생들이 문제를 푸는 시스템을 만들고 있는데요. 문제 갯수도 시험마다 다르고, 각 문제마다 학생들이 저장하는 답변도 달라지니까 이게 관리가 어렵더라고요. 정규화로는 좀 어려운거 같은데.. 혹시 이런경우에 JSON 넣어도 되나요? 그리고 찾아보니까 Postgresql에서 JSON을 지원한다고 하는데 이거 써서 개발하는게 맞는 판단인지 궁금합니다. 혼자서 판단할수 있음 좋겠지만 이제 막 개발배워서 해보는거라 이게 맞는지 모르겠어요.
해결됨
한 입 크기로 잘라먹는 Next.js
안녕하세요 덕분에 좋은 강의 잘 듣고 있습니다! next.js 강의의 2.9 의 14분 가량 보면 <Link> 태그 입력하면 자동으로 import 문이 작성되는데 어떤 패키지를 쓰시는건지 물어봐도 될까요?
미해결
비전공자도 이해할 수 있는 DB 설계 입문/실전
안그리면 혹시 관계같은거 설정하고 나중에 참고할때 문제가 될 수 있나요? 제 기준으론 orm에서 그냥 1:N N:N 1:1 설정해놓으면 이것만 보고도 별 문제가 없긴 한데요. (엔티티 6개 수준이에요) 엔티티가 10개가 넘어가고 관계 설정이 여러개가 진행되도 ERD 없이 진행해도 괜찮나요?
해결됨
한 입 크기로 잘라먹는 Next.js
혹시나 아래와 같은 오류가 발생하시는 분들중에 비밀번호도 다 알맞게 설정했는데 오류가 발생하신다면 supabase에 새로운 project를 생성하여 시도 해보시는 것도 좋을 것 같아요! 계속 안 되다가 새로 만들어서 시도했더니 되네요...ㅠㅠ 며칠동안 해결하려고 노력했다가 log보고 그냥 다시 만들어볼까해서 시도해봤는데 해결했습니다..ㅎ 다른 분들이 올려주신 오류와 유사하게 supabase와 연결하는 과정에서 오류가 발생합니다. supabase database log를 확인하였을 때에 error는 확인되지 않고, 비밀번호를 수정해봐도 오류가 바뀌지 않습니다. 비밀번호가 틀릴 경우에도 log에 error는 확인되지 않는걸까요?
미해결
비전공자도 이해할 수 있는 DB 설계 입문/실전
지금 제가 개인적으로 혼자 만들고 있는 프로젝트가 있습니다. 그냥 아이디어만 갖고 시작한건데요. 아래와 같은 순서로 만들고 있습니다. (1) GPT한테 내가 원하는 기능을 설명한다. (2) GPT한테 View 먼저 그려달라고 한다. (3) View는 데이터 바인딩 안하고 그냥 하드코딩한다. (4) View 보고 GPT랑 토의하면서 기능을 기획한다. (5) 완성된 View를 보고 DB 모델링 한다. (보통 엔티티 하나나 두개정도가 됩니다) (6) 백엔드를 붙인다. 이렇게 해서 하나씩 만들어나가고 있는데요. 이거 잘못된 방법이에요? 그냥 그때그때 DB 모델링에 필요한 컬럼이 생긴다고 하면 넣어주고 빼고 하면서 만들고있거든요.
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
선생님 안녕하세요 혹시 강의 관련해서 강의업데이트나 이전 기출, 모의고사처럼 문제가 더 업데이트될까요? 문제모음 같이 해당문제지와 영상이 있으면 좋을 것 같아 여쭤봐요
해결됨
[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
피그마 링크를 못찾겠어요ㅠ 이미지 다운 받아야 하는데 어디서 볼 수 있을까요?
해결됨
실전! FastAPI 입문
안녕하십니까? 좋은 강의 1회독 후, 계속 부족한 부분 수강하는 수강생입니다. 다시 공부하다가 제대로 이해하게 맞는지 궁금한게 있어 질문드렸습니다. ORM이라하면 Python 환경에서 외부 서버에 구동되고 있는 DB에 대해서 객체지향의 추상화와 상속의 개념을 적용하여 Python에서 외부 서버의 DB에 대해서 SQL 명령어를 수행할 수 있도록 도움을 준다라고 이해하면 좋을까요?
해결됨
[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
데이터의 4가지만 고려했다는 것은, 주식예측에 대해서 재무제표나 그런 지표들을 고려를 안했다는 의미로 말씀하신거 같습니다 근데 그 외에 이유도 있을지 궁금하여 질문 드립니다!
미해결
[PL 0302] 데이터 연산을 위한 파이썬 - 넘파이 마스터 클래스
안녕하세요. Lecture.15-3 강의에서 강의노트 pdf 파일은 보이는데, image 자료가 확인되지 않습니다.
해결됨
파이썬으로 나만의 블로그 자동화 프로그램 만들기
안녕하세요. driver.find_element(By.CSS_SELECTOR, "#id").click() 아이디 패스워드부분을 작성하실때는 #id 를 사용하시고 다른 버튼 및 선택 부분은 .class를 사용하시는데 차이가 있을까요? 개발자도구에서 ID 부분에서 ID도 있지만 class도 있어서요. ID가 명시되어 있다면 ID로 하면되고 그렇지 않다면 Class를 넣어서 사용하면 될까요?
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
4:30 스위치 문 바로 위 for문은 생략하면 되는건지요?
해결됨
한 입 크기로 잘라먹는 Next.js
안녕하세요 강사님 http://localhost:3000/book/100 URL로 테스트 진행 시에 저는 왜 문제가 발생했습니다. 다시 시도해주세요 문구가 웹페이지에 보이지 않는건가요? [해결 완료] 강사님 인강에서 아무리 찾아봐도 fetch-one-book.ts 파일에 if (!response.ok) throw new Error(""); 코드를 추가한 내역이 인강에서 보이지가 않습니다.. 몇 번을 되돌려봐도 못찾고 있습니다. 혹시 누락 사항일까요? import style from "./[id].module.css"; import {GetStaticPropsContext, InferGetStaticPropsType} from "next"; import fetchOneBook from "@/lib/fetch-one-book"; import { useRouter } from "next/router"; export const getStaticPaths = () => { return { paths: [ { params: { id: "1" } }, { params: { id: "2" } }, { params: { id: "3" } }, ], // fallback: "blocking", fallback: true, }; }; export const getStaticProps = async ( context: GetStaticPropsContext ) => { const id = context.params!.id; const book = await fetchOneBook(Number(id)); return { props: { book, }, }; }; export default function Page({ book, }: InferGetStaticPropsType<typeof getStaticProps>) { const router = useRouter(); if (router.isFallback) return "로딩중입니다"; console.log("booktest") console.log(book) if (!book) return "문제가 발생했습니다 다시 시도하세요"; const { id, title, subTitle, description, author, publisher, coverImgUrl, } = book; return ( <div className={style.container}> <div className={style.cover_img_container} style={{backgroundImage: `url('${coverImgUrl}')`}} > <img src={coverImgUrl} alt={""}/> </div> <div className={style.title}>{title}</div> <div className={style.subTitle}>{subTitle}</div> <div className={style.author}> {author} | {publisher} </div> <div className={style.description}>{description}</div> </div> ); }
해결됨
파이썬을 활용한 머신러닝 딥러닝 입문
안녕하세요. feature scaling 부분에 그래프 예시 (before, after) 에 표준정규화를 거치면 분포가 다 같아지는것처럼 그려졌는데 각각 다른 분포를 가진 데이터들이 전부 같은 분포로 바뀌게 되면 서로 다른 데이터의 의미자체를 잃어버리는것 아닌가요? 감사합니다.
미해결
[신규 개정판] 코딩 입문자를 위한 파이썬 완벽가이드
'NoneType'으로 떠야 하는데 'str'로 오류가 납니다. 어떻게 해결할 수 있을까요?
해결됨
실전! FastAPI 활용(비동기)
기존에는 fastapi를 간략하게 이해하고, async def를 쓰면 비동기처리를 수행한다고 해서, 사용하였지만, 비동기처리가 안 되길래, 무슨 문제인지 몰랐는데, await를 추가해줘야 한다는 것을 알게 되었습니다. 그러면 강의에서는 네트워크 IO를 발생시키는 작업에 대해서는 await를 사용하신다고 하고, ORM 객체 명령어는 동기처리를 해도 된다고 하셨는데, commit이랑 DB에서 사용되는 CRUD가 주로 네트워크 IO를 발생시키는 작업이라고 이해해도 되는걸까요?