묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Basic Video Call 사이트에 오늘 문제가 있나요?
지금까지 잘 되다가, 갑자기 좀 전 부터 화면이 뜨지 않습니다. 혹시 무슨일인지 아실까요?
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
넷플릭스 공식사이트 수업 header
넷플릭스 공식사이트 만들기에서 header에 padding 35px 55px을 주니까 가로스크롤이 생깁니다. 어떻게하면 없앨 수 있을까요?
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
구매버튼 클릭 시 soldout 구현 부분(상품 블러 처리)
상품 상세 페이지에서 구매 버튼을 누르게 되면,해당 상품의 soldout값이 1로 바뀌게고 적용 완료.그 이후 자동으로 구매 버튼이 회색으로 다시 바뀌겠끔도 구현 완료 그 이후 뒷 페이지로 돌아갔을 때, 상품 목록에서 blur처리 되는 기능이 구현되지 않아 이 방법이 궁금합니다.뒤로가기 버튼을 눌렀을 때는 해당 페이지가 새로 불러와지는 로직이 아닌가요? // Main페이지 코드 import { StatusBar } from "expo-status-bar"; import { StyleSheet, Text, View, Image, ScrollView, Dimensions, TouchableOpacity, Alert } from "react-native"; import React, {useEffect, useState} from "react"; import axios from "axios"; import dayjs from "dayjs" import relativeTime from "dayjs/plugin/relativeTime" import "dayjs/locale/ko" import Carousel from "react-native-reanimated-carousel" import { API_URL } from "../config/constants"; import AvatarImage from "../assets/icons/avatar.png"; dayjs.extend(relativeTime); dayjs.locale("ko"); export default function MainScreen(props) { const [products, setProducts] = useState([]); const [banners, setBanners] = useState([]); const getProduct = () => { axios .get(`${API_URL}/products`) .then((result) => { console.log(result); setProducts(result.data.products) }) .catch((error) => { console.error(error); }); } useEffect(() => { getProduct(); axios .get(`${API_URL}/banners`) .then((result) => { setBanners(result.data.banners); }) .catch((error) => { console.error(error); }) }, []); return ( <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 sytle={styles.productList}> {products.map((product, index) => { return ( <TouchableOpacity onPress={() => { props.navigation.navigate("Product", { id: product.id }) }}> <View style={styles.productCard}> {product.soldout === 1 && ( <View style={styles.productBlur} /> )} <View> <Image style={styles.productImage} source={{ uri: `${API_URL}/${product.imageUrl}`, }} resizeMode={"contain"} /> </View> <View style={styles.productContents}> <Text sytle={styles.productName}> {product.name} </Text> <Text sytle={styles.productPrice}> {product.price}원 </Text> <View style={styles.productFooter}> <View style={styles.productSeller}> <Image style={styles.productAvatar} source={AvatarImage} /> <Text style={styles.productSellerName} > {product.seller} </Text> </View> <Text style={styles.productDate}> {dayjs(product.createdAt).fromNow()} </Text> </View> </View> </View> </TouchableOpacity> ); })} </View> </ScrollView> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: "#fff", padding: 32, }, productCard: { width: 320, borderColor: "rgb(230,230,230)", borderWidth: 1, borderRadius: 16, backgroundColor: "white", marginBottom: 8, }, productImage: { width: "100%", height: 210, }, productContents: { padding: 8, }, productSeller: { flexDirection: "row", alignItems: "center", }, productAvatar: { width: 24, height: 24, }, productFooter: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", marginTop: 12, }, productName: { fontSize: 16, }, productPrice: { fontSize: 18, fontWeight: "600", marginTop: 8, }, productSellerName: { fontSize: 16, }, productDate: { fontSize: 16, }, productList: { alignItems: "center", }, Headline: { fontSize: 24, fontWeight: "800", marginBottom: 24, }, productBlur: { position: "absolute", top: 0, bottom: 0, left: 0, right: 0, backgroundColor : "#ffffffa6", zIndex: 999 }, bannerImage: { width: "90%", height: 200, }, safeAreaView: { flex: 1, backgroundColor: "#fff" } }); // Product 화면 코드 import axios from "axios"; import React, { useEffect, useState } from "react" import {Image, ActivityIndicator, StyleSheet, View, Text, TouchableOpacity, Alert, ScrollView} from "react-native" import { API_URL } from "../config/constants"; import Avatar from "../assets/icons/avatar.png" import dayjs from "dayjs" export default function ProductScreen(props){ const {id} = props.route.params; const [product, setProduct] = useState(null); const getProduct = () => { axios.get(`${API_URL}/products/${id}`) .then((result) => { console.log("product result : ", result.data); setProduct(result.data.product); }) .catch((error) => { console.error(error); }) } useEffect(() => { getProduct(); }, []); const onPressButton = () => { if(product.soldout !== 1) { axios.post(`${API_URL}/purchase/${id}`) .then((result) => { Alert.alert("구매가 완료되었습니다."); getProduct(); }) .catch((error) => { Alert.alert(`에러가 발생했습니다. ${error.message}`); }) } } if(!product){ return <ActivityIndicator /> } return ( <View style={styles.container}> <ScrollView> <View> <Image style={styles.productImage} source={{uri: `${API_URL}/${product.imageUrl}`}} resizeMode="contain" /> </View> <View style={styles.productSection}> <View style={styles.productSeller}> <Image style={styles.avatarImage} source={Avatar} /> <Text>{product.seller}</Text> </View> <View style={styles.divider} /> <View> <Text style={styles.productName}>{product.name}</Text> <Text style={styles.productPrice}>{product.price} 원</Text> <Text style={styles.productDate}>{dayjs(product.createAt).format("YYYY년 MM월 DD일")}</Text> <Text style={styles.productDescription}>{product.description}</Text> </View> </View> </ScrollView> <TouchableOpacity onPress={onPressButton}> <View style={product.soldout ===1 ? styles.purchaseDisabled : styles.purchaseButton}> <Text style={styles.purchaseText}>{product.soldout === 1 ? "구매완료" : "구매하기"}</Text> </View> </TouchableOpacity> </View> ) } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: "#fff" }, productImage: { width: "100%", height: 300 }, productSeller: { flexDirection: "row", alignItems: "center" }, avatarImage: { width: 50, height: 50, }, productSection: { padding: 16 }, divider: { backgroundColor: "#e9ecef", height: 1, marginVertical: 16 }, productName: { fontSize: 20, fontWeight: "400" }, productPrice: { fontSize: 18, fontWeight: "700", marginTop: 8 }, productDate: { fontSize:14, marginTop: 4, color: "rgb(204,204,204)" }, productDescription: { marginTop : 16, fontSize: 17 }, purchaseButton: { position: "absolute", bottom: 0, left: 0, right: 0, height: 60, backgroundColor: "rgb(255,80,88)", alignItems : "center", justifyContent: "center" }, purchaseText : { color: "white", fontSize: 20, }, purchaseDisabled: { position: "absolute", bottom: 0, left: 0, right: 0, height: 60, backgroundColor: "gray", alignItems : "center", justifyContent: "center" } })
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
시퀄라이즈안쓰고 mysql연결하려고 합니다.
기존에 mysql에 연결은 이런식으로 했습니다. 코드가 너무 지져분해서 mvc패턴으로 나눠보려고 하는중입니다.아래처럼 바꾸고 db연결하고 로그인하려고 하는데 이렇게 오류가 발생하고있습니다.구글링해봤는데 대부분은 처음에했던 위에것처럼 많이 나오는거 같아요. db를 models폴더에 mysql.js에 정의하고 controller에서 연결해서 사용하고싶습니다.혹시 controller에서 쿼리문입력하면 너무 지저분한거 같아서 강사님이 models의 user.js에 시퀄라이즈를 이용해서 db에 정보넣는것처럼 쿼리문 따로 폴더를 만들어서 가져오고 사용할수있나요?(쿼리문을 밖으로 빼서 사용하고싶습니다.) 자세히 설명해 주시면 감사하겠습니다.
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
강사님 프로젝트 진행중인데
혹시 EC2 관련해서 배포중인데 이거관련해서도 여쭤봐도될까요..? 배포까지 마무리하였는데, EC2의 퍼블릭IPv4:8080 으로 하면 연결거부가 떠서요.. 이거 관련해서도 메일로 여쭤봐도되나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
질문이 있습니다.
안녕하세요 저는 게임 서버에 관심이 있어서 혼자 독학하고 있는 대학생입니다. 다름이 아니라 Connector수업을 다 듣고 실행할라고 했는데 대상에 컴퓨터가 연결을 거부합니다. 이런 오류가 뜨는데 어떻게 해결 해야할지 모르겠습니다.
-
미해결내 가치를 높이는 노션 이력서 만들기
블로그 글 관련 질문있습니다.
안녕하세요! 궁금한게 생겨서 질문 남겨요. 이력서의 BLOG 부분에 SQL 공부 내용을 정리중인데요, 혹시 <백문이불여일타-데이터 분석을 위한 SQL> 강의 중 화면 캡쳐한 이미지를 노션에 첨부해도 될까요? 출처 표기하면 업로드 해도 되는 건지 아니면 아예 사용할 수 없는 이미지 인지 알려주시면 감사할 것 같아요. 우피 연결은 안 할 예정이에요.감사합니다 :)
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
this의 사용에 대해
안녕하세요. 나름대로 혼자 코드를 짜고 문제를 풀어보았습니다. 근데 SpeedCam의 코드에서 저의 코드는 package camera2; import detector.*; import reporter.*; public class SpeedCam extends Camera { private Detectable detect; private Reportable report; public void setDetect(Detectable detect) { this.detect = detect; } public void setReport(Reportable report) { this.report = report; } public void showMainFeature() { System.out.println("속도 측정, 번호 인식"); } public void detect() { detect.detect(); } public void report() { report.report(); } } 이러합니다. 정상적으로 목표 결과도 얻었습니다 근데 강사님의 코드는 public void detect() { this.detect.detect(); } public void report() { this.report.report(); } 이렇게 다른 부분이 존재하는데this는 왜 필요한걸까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
페이지 접속시 다수 렌더링 이슈(slack환경으로 새 프로젝트 구축)
슬랙 프로젝트의 환경설정(웹팩 등)을 토대로 새 프로젝트를 만들고 있습니다.페이지 접속시 console.log를 찍어보니 3번 찍히는 문제가 있습니다.원인 및 해결방법을 모르겠어서 질문드립니다. 아래는 라우터 쪽입니다.login과 signup은 loadble을 사용해서 그런지 1번만 console.log가 찍혔습니다.아래 stockrecode에 해당하는 페이지가 3번 console.log 찍힙니다. 아래는 stockrecode 컴포넌트에 있는 코드입니다. 나머지는 다 주석처리하였습니다.아래는 로 이동시에 표시된 내용입니다. useSwr 사용 부분을 지우면 2번 표시됩니다.<해본 방법>strict-mode를 지우면 되는 글을 보아서 찾아봤는데이미 strict-mode가 없는 상태였습니다. 2.웹팩에서 strict-mode를 false로 하면 되는 글을 보고 해보았는데(관련 링크 https://www.sobyte.net/post/2021-09/webpack-strip-use-strict/)아래처럼 @babel/plugin-transform-modules-commonjs 설치를 하고 적용해보았는데도아래처럼 에러가 생겨서 이 방법으로도 해결하지 못하였습니다 답변주시는데 더 필요한 정보가 있으시면 말씀부탁드립니다.꼭 해결하고 싶은데 제자리만 멤도는거 같아 질문 올립니다. ㅠ
-
미해결리눅스 시스템 프로그래밍 - 이론과 실습
inotify.c. ret 질문
안녕하세요 수강생입니다.ret -= (sizeof(struct inotify_event) + event->Len) 가 0이 된다는 의미가, ret에 누적된 event가 모두 소거된다는 의미인가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Token 생성하는 ui가 변경되었습니다.
토큰을 생성하는 방식이 변경되었습니다.강의의 내용과 ui가 달라서 조금 헤맸습니다.configuration page 들어가서 Primary Certificate를 enable하고 그 아래 No Certificate를 delete (이메일을 입력필요)합니다.그 후 아래 Features에 Temp token for audio/video call의Generate temp RTC token링크를 타고 들어가면 같은 과정이 나옵니다!한번 확인 부탁드립니다!
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
질문있습니다
아래 코드에서 detect메소드는 public으로 해줘야 에러가 안뜨더라구요. 무조건 정의는 public으로 해줘야 하는 건가요? package detector; public class AcciedntDetector implements Detectable{ public void detect() { System.out.println("교통 사고를 감지합시다."); }; }
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
res.render 질문
사용자 이름을 누르면 사용자의 게시글이 출력되는 기능 구현중 res.render가 동작하지 않아 질문 드립니다.아래가 컨트롤러 부분이고 console.log(posts[0].User.nick); 이부분도 출력 되는걸 확인했습니다.그런데 title 안에 posts[0].User.nick 이 부분에서 오류가 뜨는데 위 console.log에서 출력이 되는데 왜 여기선 오류가 뜨는지도 모르겠고 title과 twits 부분을 지우고 main을 다른 페이지로 바꿨는데도 아예 동작을 하지 않는걸 확인했습니다. title 부분에서 오류가 안떠도 페이지가 제대로 로드 되지도 않습니다. exports.renderUpost = async (req, res, next) => { try { console.log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); let posts = []; if (req.params.userId) { const posts = await Post.findAll({ include: [ { model: User, where: { id: req.params.userId }, attributes: ["id", "nick"], }, ], }); console.log(posts[0].User.nick); } res.render("main", { title: ` ${posts[0].User.nick} | NodeBird`, twits: posts, }); } catch (error) { console.error(error); next(error); } }; 제가 작성자 이름을 a 태그로 해서 아래 코드처럼 수정해서 했는데 혹시 이 a태그에 넣은것들이 잘못된건가요? 위 코드에서 console.log 까지 출력 다 되는거 보면 문제가 없을것 같은데 그나마 생길것 같은게 이부분뿐이라 올려봅니다.<a href="#" onclick="findUpost(this);return false;" class="twit-author">{{twit.User.nick}}</a>
-
미해결
페이지 접속시 다수 렌더링 이슈(slack환경으로 새 프로젝트 구축)
슬랙 프로젝트의 환경설정(웹팩 등)을 토대로 새로 프로젝트를 만들고 있는데console.log를 찍어보니 3번 찍히는 걸 발견해서요. 3번 렌더링이 되는 거 같은데원인 및 해결방법을 모르겠어서 질문드려요. 아래는 라우터 쪽입니다.login과 signup은 loadble을 사용해서 1번만 렌더링이 되는 걸 console.log로 확인하였습니다.stockrecode에 해당하는 페이지가 3번 렌더링이 되고 있습니다. 아래는 stockrecode 컴포넌트에 있는 코드입니다. 나머지는 다 주석처리하였습니다.아래는로 이동시에 표시된 내용입니다. useSwr부분을 지우면 2번 표시됩니다.해본 방법으로는 strict-mode를 지우면 되는 글을 보아서 찾아봤는데이미 strict-mode가 없는 상태였습니다. 웹팩에서 strict-mode를 false로 하면 되는 글을 보고 해보았는데(관련 링크 https://www.sobyte.net/post/2021-09/webpack-strip-use-strict/)아래처럼 @babel/plugin-transform-modules-commonjs 설치를 하고 적용해보았는데도아래처럼 에러가 생겨서 이 방법으로도 해결하지 못하였습니다 답변주시는데 더 필요한 정보가 있으시면 말씀부탁드립니다.꼭 해결하고 싶은데 제자리만 멤도는거 같아 질문 올립니다. ㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
2-6)런타임에러 질문입니다.
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { public String solution(String[] arr) { String answer= ""; ArrayList<Integer> newlist = new ArrayList<>(); for(int i=0; i<arr.length; i++) { StringBuffer sb = new StringBuffer(arr[i]); newlist.add(Integer.parseInt(sb.reverse().toString())); } for(int i=0; i<newlist.size(); i++) { if((int)newlist.get(i)==1) { newlist.remove(i); } } for(int i=0; i<newlist.size(); i++) { for(int j=2; j<newlist.get(i); j++) { if(newlist.get(i)%j==0) { newlist.remove(i); } } } for(int i=0; i<newlist.size(); i++) { answer += newlist.get(i)+ " "; } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb=new Scanner(System.in); int N = kb.nextInt(); String[] arr = new String[N]; for(int i=0; i<N; i++) { arr[i] = kb.next(); } System.out.println(T.solution(arr)); return ; } } 맨 처음에 string[]배열로 입력값을 받은후stringbuffer을 이용해서 뒤집고, Integer.parseInt하면 0이 제거 되는 숫자화가 됩니다.그 이후에 arraylist에 순서대로 담아서, 소수가 아니면 제거하는 방식으로 풀었는데런타임에러가 나는 이유를 모르겠습니다.
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
SyntaxError: invalid syntax
print(5)라고만 입력해도 SyntaxError: invalid syntax 이라고 떠요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
섹션 15 페이네이션 서버 에러
강의에 나온 대로 아무리 해도 계속 서버 에러가 뜨네요. 이전에 질문했던 codegen 까지 설치 완료 해서 제대로 작동이 되는데 이 페이지만 실행시키면 계속 오류가 발생합니다. 저가 뭘 잘못한 걸까요? import { useQuery, gql } from "@apollo/client"; import type { IQuery, IQueryFetchBoardArgs, } from "../../../src/commons/types/generated/types"; const FETCH_BOARDS = gql` query { fetchBoards { _id writer title contents } } `; export default function StaticRoutingMovedPage() { const { data } = useQuery<Pick<IQuery, "fetchBoards">, IQueryFetchBoardArgs>( FETCH_BOARDS ); console.log(data?.fetchBoards); return ( <div> {data?.fetchBoards.map((el) => ( <div key={el._id}> <span style={{ margin: "10px" }}>{el.title}</span> <span style={{ margin: "10px" }}>{el.writer}</span> </div> ))} </div> ); }
-
미해결[웹 개발 풀스택 코스] Vue.js 프로젝트 투입 일주일 전 - 기초에서 실무까지
카카오/네이버 로그인 이용하기
안녕하세요, 이번에 신입으로 들어온 개발자입니다.말이 개발자이지...아무것도 정말 모르는 상태로 붙었네요..근데 사수도 없고 개발자가 사실상 저 혼자이다 보니... 물어볼 사람이 없어서 급하게 질문드립니다 ㅠㅠ 담당자분께서, 카카오, 네이버 로그인(rest api)를 이용해express로 연결하라고 하십니다. 프론트-백엔드를 이렇게 연결하라고 하시는 것 같습니다...ㅠㅠ 혹시나, 강의에서 알려주신 대로, javascript와 express로 연결하는 것은 안될까요? 질문 수준이 낮아서 죄송합니다.
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
copywith 함수를 안만들면 어떻게 되나요?
스플레시 데이터 로드 및 인증 체크 프로세스 영상에서 11분 쯤에 AppDataLoadState 클래스 안에 copyWith 함수를 또 하나 만드시는 이유가 궁금합니다 ㅠ 정확히 어떤 역할을 하는지왜 만들어 주는지flutter나 dart의 기능이 아닌 그냥 임의적으로 copyWith라는 이름을 쓴 함수?생성자? 인지 이 3가지가 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
간단한 질문입니다만..
회원 웹 기능-등록 강의에 나오는 부분중에package spring.lecture0.controller; import lombok.Getter; import lombok.Setter; //웹 등록 화면에서 데이터를 전달 받을 폼 객체 @Getter @Setter public class MemberForm { private String name; }이 코드가 MemberController에서 @PostMapping의 create메소드에 파라미터로 사용되던데 그러면 저 MemberForm은 혹시 DTO(Data Transfer Object)인가요?혹시 DTO가 맞다면 DTO객체들만 따로 디렉토리를 생성해도 괜찮나요?..감사합니다