묻고 답해요
138만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
질문 드립니다..
안녕하세요.. 궁금한점이 있어서 질문드립니다..밀리의 서재 홈페이지에서 검사를 눌러봤는데div 다음 data-v-003e81a0 이 부분은 어떤 걸 의미하는지요? 속성명="값" 이렇게 안쓰고 저렇게 쓸 수도 있나요?그리고 p태그 아래에 글자들에 쌍 따옴표로 묶어준 것도 왜 인지 궁금합니다.. 검사 화면에는 쌍따옴표가 있는데 실제 화면에는 쌍따옴표가 안뜨는건 왜 그럴까요..?https://www.millie.co.kr/v3/brand/update?utm_source=google&utm_medium=cpc&utm_campaign=pc&utm_content=brand&utm_term=%2B%EB%B0%80%EB%A6%AC%EC%9D%98%2B%EC%84%9C%EC%9E%AC%2B&gad_source=1&gclid=Cj0KCQiA-62tBhDSARIsAO7twbb3uOaPxtCl7MI2dexTMHLKLnXTEK9kaIQLua7WRA7sAHVtG_zOt70aAqWJEALw_wcB 그리고 여기서 쓰신 확장 프로그램 이름도 알려주실수 있으실까요..?
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
질문입니다..
선생님.. 텍스트 복사하러 넷플릭스 사이트에 갔는데..궁금한 것이 생겨서 여쭤봅니다..https://www.netflix.com/kr/ newletter div 부분에원래 클릭 하지않으면 아래 화면이 뜨고이메일을 입력하려면고 클릭하면 아래 화면처럼placeholder가 사라지고 background 텍스트가 되는것 같은데.. 이렇게 만들려면 어떻게 하면 되나요..?
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
select 배열 이해를 도와주세요!
안녕하세요, 알고리즘 개선하기 강의를 들은 이후, 새로 짜여진 알고리즘의 원리(?)에 대해 공부하는 중입니다. 그런데, select 부분에 대한 이해가 어려워 질문 올려봐요 ㅠㅠ answer.addEventListener("click", function(){ //'answer' 버튼을 클릭했을 때 4 var children = document.querySelectorAll('.answerList'); for(let i = 0; i < children.length; i++){ children[i].disabled = true; // 버튼 비활성화 children[i].style.WebkitAnimation = "fadeOut 0.5s"; // 0.5초동안 main 섹션이 사라지면 children[i].style.animation = "fadeOut 0.5s" // 사용자가 어떤 한 버튼만 클릭해도, 다른 버튼들은 다 무시가 되고 모든 버튼들이 사라진다. } setTimeout(() => { var target = qnaList[qIdx].a[idx].type; // 우리가 선택한 버튼이 가지고 있는 타입이 target에 할당됨. //버튼을 클릭하는 순간에 바로 값 증가 for(let i = 0; i < target.length; i++){ select[target[i]] += 1; // 이 반복문이 돌고나면 사용자가 버튼을 클릭하였을 때, 12간지의 순서대로 해당하는 type의 값이 1씩 증가 } for(let i = 0; i < children.length; i++){ children[i].style.display = 'none'; // 버튼이 보이지 않게 } goNext(++qIdx); console.log(target); console.log(children.length); },450); //450 경과 시 }, false); 저는 이 for문 안에 들어있는 select[target[i]] += 1; 이 부분을 이해하기 위해calResult() 부분에 console.log(select);를 작성하였고, 임의로 선택된 모든 버튼에 대한 select값을 받을 수 있었습니다. // console.log(select); [2, 4, 3, 4, 4, 3, 4, 4, 2, 5, 1, 6]우선 저는 처음에 이 숫자들이 select 값이라는 것은 알고 있었으나 진짜 무엇을 의미 하는 지 알 수 없어 수기로 디버깅을 해보았습니다. 모든 버튼에 대한 type 값을 추적해가며 적어보았는데 qIdx 선택한 버튼 type 0 a [1, 2, 4, 9] 1 c [7, 4, 9, 11] 2 b [7, 9 ,11] 3 c [0, 3, 6, 5] 4 c [2, 5, 8] 5 b [0, 3, 6, 10] 6 a [1, 7, 11] 7 c [1, 7, 11] 8 b [1, 3, 6, 11] 9 a [4, 9, 11] 10 c [2, 5, 8] 11 a [3, 6, 4, 9]선택한 버튼에 대한 type 값의 누계를 도출해보니 [2, 4, 3, 4, 4, 3, 4, 4, 2, 5, 1, 6] // select console에 제가 요청했던 select 값과 동일한 배열이 나왔습니다. 또한 0~11까지의 띠 순서 그대로 오름차순으로 배정된 것을 발견할 수 있었습니다.제가 부족한 지식을 동원하여 생각한 바로는 type값을 누계할 때 오름차순으로 정렬하라는 어떤 메세지가 있지 않으면 [4, 2, 3, 4, 4, 3, 1, 4, 2, 6, 4, 5] 이런식으로 순서에 상관없이 해당 값에 대한 누계만 select에 담길 것으로 예상하였으나 오름차순으로 배열이 정리되어 정렬 원리가 궁금하였습니다. select[target[i]] += 1; 이 부분에서 자동으로 저희가 선택한 버튼들의 type을 select 배열에 넣을 때, 각 누계 값이 0 부터 11까지의 오름차순으로 자동 정렬되나요? const select = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];아니면 저희가 초반에 select에 0값으로 총 12개의 빈자릿수를 만들어 주었을 때부터각 자리당 0부터 11까지의 인덱스 주소가 자동 배정되는 건가요?아니면 이 배열(select)의 정렬방식에 대하여 놓친 부분이 있을까요? 도와주세요 ㅠㅠ
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
제이쿼리 연결을 어떻게 하라는건지 이해를 전혀 못했습니다.
제이 쿼리 연결, 제일 처음 강의에서 파일을 왜 새로 만들고, 왜 첫번째 파일 이름은 3.2어쩌구고 Custom파일에 왜 쓰는건지,연결은 아래 바디 맨 마지막에 3.어쩌고를 먼저 쓰고그 다음에 custom 쓰라는 부분만 이해하고인터넷 찾아보니 무슨 링크를 찾아서 넣고 뭐 방법이 여러가지인데 무슨 말인지 당췌 이해가 안갑니다…설명이 좀 필요할 것 같아요…도와주세요
-
미해결빠르게 훑는 HTML + CSS 기초
가상요소가 체크되었을때 체크박스 테두리까지 같이 움직입니다.
top 2px left 4px 를 주는데 안에 폰트어썸 아이콘이 움직이는게 아니라 체크박스가 통으로 움직입니다.
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
인터넷 익스플로러 호환성
모던 HTML/CSS 로 상용화도 가능한 반응형 모던 웹페이지만들기 11(9:37) 내용중인터넷 익스플로러 호환성을 위해 width:240px 대신 max-width:240px를 사용하고 flex-shrink:0;을 설정하셨는데인터넷 익스플로러가 사용되지 않는 현 시점에서 <link rel="short icon" type="image/x-icon" href="img/fun-coding.ico" />이와 같이 익스플로러의 호환성을 고려하는 행위가 현업에서 필요한지 궁금합니다!
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
영상이 반복되면서 다시 시작할 때 검정화면이 잠깐 나오는 것 같은데 혹시 없애는 방법이 있을까요?
안녕하세요.. MP4 영상 소스에는 검정화면이 없는 것 같은데,소스에 넣으면 검정 화면이 나타나는 것 같습니다,..인터넷이 느려서 그런걸까요..?영상이 반복되면서 다시 시작할 때 검정화면이 잠깐 나오는 것을혹시 없애는 방법이 있을까요?
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
상품추천api오류
//상품 추천 api (feat: tensoflow) app.get("/products/:id/recommendation", (req, res) => { const { id } = req.params; //findOne으로 req을 통해 받아온 param값 id에 맞는 상품을조회한다. models.Product.findOne({ where: { id, }, }) .then((product) => { //id와 일치하는 상품에서 type값을 뽑아서, const type = product.type; //type값과 일치하는 상품들을 모두찾는다. models.Product.findAll({ where: { type, id: { //기준이되는 id와 일치하지않는 데이터만찾겠다. //예를들어 id가4번일때 4번을제외한 4번과 같은type의 상품만 보여줘야하는데 //4번도 함께 추천이되니, 4번을 제외하게해준다. [models.Sequelize.Op.ne]: id, }, }, }).then((products) => { res.send({ products, }); }); }) .catch((error) => { console.error(error); res.status(500).send("에러가 발생했습니다.."); }); });server.js에서 추천api를 작성하고 웹에서 확인하려고하면 에러내용TypeError: Cannot read properties of null (reading 'type')at /Users/kimsehun/Desktop/market-prj/h-market-server/server.js:191:28 이런 에러가발생합니다.models-product.jsmodule.exports = function (sequelize, DataTypes) { const product = sequelize.define("Product", { name: { type: DataTypes.STRING(20), allowNull: false, }, price: { type: DataTypes.INTEGER(10), allowNull: false, }, seller: { type: DataTypes.STRING(30), allowNull: false, }, description: { type: DataTypes.STRING(300), allowNull: false, }, imageUrl: { type: DataTypes.STRING(300), allowNull: true, }, soldout: { type: DataTypes.INTEGER(1), allowNull: false, defaultValue: 0, }, type: { type: DataTypes.STRING(50), allowNull: true, }, }); return product; }; 계속보고있는데,findOne부분에서 where을 통해 id값에 해당하는 상품을못찾아서 product에 데이터가 담기지않아서,type을 못불러오는거같은데.뭐가문제일까요??
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
상품상세페이지 구현-2 와 3 사이에 빠진 내용이 있는거같아요
다른 수강생분들에게도 문제 해결에 도움을 줄 수 있도록 좋은 질문을 남겨봅시다 :) 1. 질문은 문제 상황을 최대한 표현해주세요.2. 구체적이고 최대한 맥락을 알려줄 수 있도록 질문을 남겨 주실수록 좋습니다. 그렇지 않으면 답변을 얻는데 시간이 오래걸릴 수 있습니다 ㅠㅠex) A라는 상황에서 B라는 문제가 있었고 이에 C라는 시도를 해봤는데 되지 않았다!3. 먼저 유사한 질문이 있었는지 꼭 검색해주세요! 상품상세페이지 구현-2 마지막에 보면 css를 적용하고자,product폴더내에 Index.css를 만드는데, Index.js에 css를 import하지 않고 넘어가서 상세페이지구현-3 영상에서는 그냥 css를 적용하고 적용되는 모습이 영상에 담겨있습니다.원래 자동으로 Import 되는게 아니라면, 이부분에 대한 추가적인 제안이 필요할거같습니다. import "./index.css";
-
미해결반응형 웹사이트 포트폴리오(Architecture Agency)
section about에 관련.. 궁금해요
items에 div를 사용했기때문에 CSS작성시 그러한 것 때문에 이왕이면 다른 태그가 좋다고 하는 부분은 이해가 됐어요~혹시나 dl dt dd 태그를 이용을 안하신건 이유가 있으실까요?div를 사용해도 되고 어느것도 괜찮다고 하셨는데dl이 있는데 이용하지 않고 span태그와 h3를 이용하신 이유가 있을 것 같아서요.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
에뮬레이터에 화면 흰색만나오는 문제
import { API_URL } from "./config/constants.js"; import avatarImg from "./assets/icons/avatar.png"; import React from "react"; import { StyleSheet, Text, View, Image, ScrollView, Dimensions, TouchableOpacity, Alert, } from "react-native"; import { GestureHandlerRootView } from "react-native-gesture-handler"; import Carousel from "react-native-reanimated-carousel"; import axios from "axios"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import "dayjs/locale/ko"; dayjs.extend(relativeTime); dayjs.locale("ko"); export default function App() { const [products, setProducts] = React.useState([]); const [banners, setBanners] = React.useState([]); React.useEffect(() => { axios .get(`${API_URL}/products`) .then((result) => { const products = result.data.products; setProducts(products); }) .catch((error) => { console.log("error :", error); }); axios .get(`${API_URL}/banners`) .then((result) => { const banners = result.data.banners; setBanners(banners); }) .catch((error) => { console.log("error :", error); }); }, []); return ( <GestureHandlerRootView> <View style={styles.container}> <ScrollView> <Carousel data={banners} width={Dimensions.get("window").width} height={200} autoPlay={true} sliderWidth={Dimensions.get("window").width} itemWidth={Dimensions.get("window").width} itemHeight={200} renderItem={(obj) => { return ( <TouchableOpacity onPress={() => { Alert.alert("배너 클릭"); }} > <Image style={styles.bannerImage} source={{ uri: `${API_URL}/${obj.item.imageUrl}` }} resizeMode="contain" /> </TouchableOpacity> ); }} /> <Text style={styles.headline}>판매되는 상품들!</Text> <View style={styles.productList}> {products.map((product, index) => { return ( <View key={index} style={styles.productCard}> {product.soldout === 1 && <View style={styles.productBlur} />} <View> <Image style={styles.productImg} source={{ uri: `${API_URL}/${product.img_url}`, }} resizeMode={"contain"} /> </View> <View style={styles.productContents}> <Text style={styles.productName}>{product.name}</Text> <Text style={styles.productPrice}>{product.price}원</Text> <View style={styles.productFooter}> <View style={styles.productSeller}> <Image style={styles.productAvatar} source={avatarImg} /> <Text style={styles.productSellerName}> {product.seller} </Text> </View> <Text style={styles.productDate}> {dayjs(product.created_at).fromNow()} </Text> </View> </View> </View> ); })} </View> </ScrollView> </View> </GestureHandlerRootView> ); } const styles = StyleSheet.create({ headline: { fontSize: 24, fontWeight: "800", marginTop: 10, marginBottom: 10, }, container: { flex: 1, backgroundColor: "#fff", paddingTop: 32, margin: 10, }, productCard: { width: "100%", borderColor: "rgb(230,230,230)", borderWidth: 1, borderRadius: 16, backgroundColor: "white", marginBottom: 10, }, productBlur: { position: "absolute", top: 0, bottom: 0, right: 0, left: 0, backgroundColor: "#ffffffaa", zIndex: 999, }, productImg: { width: "100%", height: 210, }, productContents: { padding: 8, }, productSeller: { flexDirection: "row", }, productAvatar: { width: 24, height: 24, }, productFooter: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", marginTop: 12, }, productName: { fontSize: 14, }, productPrice: { fontSize: 16, fontWeight: "600", marginTop: 8, }, productSellerName: { fontSize: 14, }, productDate: { fontSize: 14, }, productList: { alignItems: "center", }, bannerImage: { width: "100%", height: 200, }, }); 어떤 오류메세지도 뜨지않고,에뮬레이터에 화면이 출력되지않는 문제가 발생합니다.Carousel을 적용하기전에는 화면 잘 출력되었는데,Carousel을 적용하니 화면이 출력되지않네요..Error: PanGestureHandler must be used as a descendant of GestureHandlerRootView. Otherwise the gestures will not be recognized. See https://docs.swmansion.com/react-native-gesture-handler/docs/installation for more details.이러한 오류가 발생해서GestureHandlerRootView 태그로 최상단에 묶어주니 저 오류는 사라졌는데,애뮬레이터의 화면이 출력되지 않는 문제가 발생합니다.서버는 잘 연결되어있는걸 확인햇습니다..뭐가문제일까요
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
deploy후에 접속시 오류발생
안녕하세요, 설명 우선 launch를 할때 port를 8080으로 설정하고 setting을 해도fly.toml 파일과 dockkerfile에 port번호가 3000으로 자동으로 설정되는 문제가있어 해당파일의 port번호를 수동으로 8080으로 다시 설정하고 deploy완료했을 때 해당 주소로 접속시에 접속이 안되는 오류가발생합니다. 이미지fly.tomldockkerfilehttps://h-market-server.fly.dev/접속시 오류구글링, 다른분들의 질문을 찾아봤는데도해결하지못해, 질문드립니다. 파일을 지우고 다시런치 후 배포프로젝트를 다 지우고 gitclone해서 런치 후 배포등 다른방법들을 다 진행해봐도 해결되지않아 질문남깁니다.
-
미해결면접과 취업을 부르는 '퍼블리셔 개인 포트폴리오 홈페이지' 제작
iframe 질문입니다.
안녕하세요 현재 목업 단계에 있는데 iframe에 다른 파일에서 만든 html의 주소를 삽입해야 하는데 http 주소가 아니다 보니 실행이 잘 안됩니다.. 어떻게 해야 될까요? 그리고 포트폴리오 오프라인 강의 계획이 또 있으신지 궁금합니다.
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
구조 가상 클래스 셀렉터에대해서 질문있습니다
모던 웹을 위한 상세한 모던 CSS Selector 정리3[2:49]에서셀렉터에 따른 css적용 모습을 보여주셨는데,css가 아래와 같이 작성된 상태에서 p:first-child { color: red; } p:last-child { color: blue; } p:nth-child(2) { color: green; } p:nth-last-child(2) { color: purple; } <body> <div> <p>1번</p> <p>2번</p> <p>3번</p> <p>4번</p> <p>5번</p> </div> </body>의 결과값은<body> <p>1번</p> <p>2번</p> <p>3번</p> <p>4번</p> <p>5번</p> </body>의 결과값은이렇게 나오는데, 왜 이런 차이가 발생하는 것인가요?제 생각엔, <div>태그가 없더라도 <body>태그를 기준으로 하면 last-child가 적용되는 자식 요소의 순서는 똑같아야 할 것 같은데 그 이유가 궁금합니다
-
미해결만들면서 배우는 HTML/CSS
이 강의 들으려면 뭘 선행 학습 해야 하죠?
html 자바스크립트 css 한번도 안해봤는데강의가 전혀 이해가 안가요자바 기초는 조금 들었어요20분 강의를 1시간 넘게 끊어가며 앞뒤로 돌려보고,다른분들 커뮤니티 질문 보고 있는데 한계네요...
-
미해결웹퍼블리셔가 알려주는 실무 웹사이트 따라만들기 Season1
:after에 설명해주신 css 차이가 이해가 어렵습니다.
header .lnb li a span:after{position: absolute; left:0; bottom:0; content:""; display:block; width: 100%; height: 1px; background: #2d5b79;}header .spot li:after{content:""; position: absolute; left: 0; top: 50%; width: 1px; height: 7px; background: #ccc; transform: translateY(-50%); } 1강에서 40분쯤에 이렇게 강의를 해주셨는데span:after 에는 display:block;을 주셨고li:after 에는 display:block; 을 안주셨더라고요둘 다 똑같이 선을 만드는 css인데요 (차이는 좌우에 만드느냐, 아래에 만드느냐) 이 두개의 차이는 뭔지 설명 좀 부탁드리겠습니다 : )ㅜㅜ
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
import- export 필수
약 7분경 css는 그냥 import로 불러오시는 강의 내용이 있는데요, 이전에 import를 하기 위해선 원본 파일에서 꼭 export를 해줘야한다고 말씀해주셨던 것 같아서요.js파일과 다르게 css 파일을 불러올때는 꼭 export를 하지 않아도 되는 걸까요?
-
미해결SCSS(SASS)+FLEX 실전 반응형 웹 프로젝트 with Figma
네비게이션 클릭시 헤더높이로 인해 제목 가리는 부분 해결방안
선생님, 안녕하세요:)강의 유익하게 잘 보고 있습니다. 좋은 강의 해주셔서 몰랐던 부분을 정말 많이 알아갑니다! 'PC 레이아웃 상세 퍼블리싱 - 강의소개 05(네비게이션 부드럽게 스크롤링)' 강의에서 헤더 높이로 인해 제목 부분이 가려지는 문제를, 헤더 높이를 빼주면 해결되지 않을까 싶어 작성해보았습니다. /* Smooth Scrolling */ var linkLocation = $(this).attr('href'); $('html, body').animate({ scrollTop: $(linkLocation).offset().top-'180' // <- 작성한 부분 }, 500); e.preventDefault();헤더 높이인 123px보다 더 많은 값인 180을 주니 제목이 가리지 않고 알맞게 스크롤되는데 이 방법이 맞는건지, 이렇게 했을 때 다른 문제가 발생하지 않는지 궁금하네요!
-
해결됨HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
disabled 디자인 이렇게 하면 될까요?
안녕하세요... 강의 3분 8초에 나오는 체크된 부분 퍼블리싱에 대해 질문드립니다.. 라이브 서버로는 되는 것 같기는 한데혹시 더 낫게 하는 방법이나 실무에서 더 선호되는 방법이 있다면 알려주시면 감사하겠습니다... <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="https://kit.fontawesome.com/c0fe093804.js" crossorigin="anonymous"></script> <link rel="stylesheet" href="02.fontawesome-active.css"> </head> <body> <form> <input type="checkbox" id="chk1" checked> <label for="chk1">HTML</label> <input type="checkbox" id="chk2"> <label for="chk2">CSS</label> <input type="checkbox" id="chk3"> <label for="chk3">Javascript</label> <input type="checkbox" id="chk4" disabled> <label for="chk4">UIKit</label> </form> </body> </html> /* Google Web Fonts CDN Raleway */ @import url('https://fonts.googleapis.com/css?family=Raleway&display=swap'); /* Google Web Fonts CDN Noto Sans KR */ @import url('https://fonts.googleapis.com/css?family=Noto+Sans+KR:300,400,500,700,900&display=swap'); @import url('https://kit.fontawesome.com/c0fe093804.js" crossorigin="anonymous'); body{ font-family: 'Raleway', sans-serif; /* font-family: 'Noto Sans KR', sans-serif; */ color: #222; line-height: 1.5em; font-weight: 300; margin: 0; font-size: 30px; display: flex; justify-content: center; align-items: center; height: 100vh; } a{ color: #222; text-decoration: none; font-size: 12px; } form input[type=checkbox]{ display: none; } form label{ display: block; margin-bottom: 3px; } form label:before{ content: '\f00c'; text-align: center; line-height: 30px; font-family: fontawesome; margin-right: 8px; border: 1px solid #292929; color: transparent; display: inline-block; width: 30px; height: 30px; vertical-align: middle; padding: 2px; border-radius: 3px; font-size: 30px; transition: 0.2s; } form input[type=checkbox]:checked + label:before{ background-color: crimson; color: #fff; border: 1px solid crimson; /* border-color: transparent; */ } /* 눌리는 효과 */ form input[type=checkbox] + label:active:before{ transform: scale(0); } form input[type=checkbox]:disabled + label:before{ border: 1px solid rgba(220, 20, 60, 0.233); background-color: rgba(220, 20, 60, 0.233); color: #fff; } form input[type=checkbox]:disabled + label:active:before{ transform: scale(100%); }
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
테스트 코드 오류
안녕하세요 선생님, 좋은 강의 항상 감사하게 잘 듣고 있습니다. 제가 지금 카테고리를 테스트 하는 강의를 수강하고 있습니다. 그런데 아무리 테스트를 하여도 blog/test.py 83번째 줄에서 Nonetype 오류가 나옵니다. id를 제대로 html에 부여 하였고 대문자, 소문자, 특수기호를 모두 확인하였습니다. 그래서 제 지식으로는 오래 생각을 해 보아도 틀린 부분을 찾을 수 없어서 어느 부분이 틀린 부분인지 선생님께 여쭤보고자 연락을 드립니다. 아래 제 깃허브 url을 첨부하도록 하겠습니다. 감사합니다. https://github.com/rapgodd/django_2023.git