묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
컨텍스트와 프로퍼티 선택 기준
안녕하세요 강의 잘 보고 있습니다. 컨텍스트도 많이 사용하면 성능 저하가 생길 것으로 예상됩니다. 그래서 컨텍스트와 프로퍼티 선택 기준이 궁금한데,실무에선 보통 프로퍼티로 우선 사용하고 하위 컴포넌트들이 특정 개수 이상이 되면 컨텍스트로 변경을 하나요?아니면 처음부터 컨텍스트로 정의해 놓고 불필요한 컨텍스트를 프로퍼티로 변경하나요? 감사합니다
-
미해결Flutter로 SNS 앱 만들기
12댓글화면_3댓글정보 가져오기
logger.d(currentUserModel);콘솔에서는 찍고 있습니다그러나 logger.d(commentState.commentList);콘솔에서 못찍고 있습니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-L 질문있습니다.
http://boj.kr/ad36bd7f8ec04337b4e4eb98ed2ecdfc이 코드는 틀린 코드이고http://boj.kr/8494f1ca7ca84fbeaa1cd47409006e9f이 코드는 맞은 코드인데요. 둘의 차이는 combi(0)으로 시작하냐 combi(-1)로 시작하냐입니다.근데 combi(-1)은 for (int i = start + 1; ...) 로 하고combi(0)은for (int i = start; ...) 해서 결국 똑같은 코드 아닌가요? 왜 combi(0)으로 하면 답이 안나오는지 모르겠습니다.
-
해결됨[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
섹션5. 날씨 앱 expo 버전
확실히 expo 버전으로 프로젝트를 생성하면, 영상처럼 진행이 되지 않습니다 ㅠㅠ 프로젝트 설치 및 실행 과정은 다음과 같습니다.기종: Androidnpx create-expo-app <앱 이름> --template세 번째(blank) :typescript 선택npx expo start를 실행expo 앱에서 QR 코드로 보기강의와 달리, expo로 빌드하셨다면npx expo install expo-location를 설치해주신 다음에 useEffect 함수 부분을 다음과 같이 변경해주면 됩니다.(Expo는 자체 위치 서비스 API를 제공하므로, @react-native-community/geolocation 대신 expo-location을 사용해야 합니다.)useEffect(() => { const getLocation = async () => { try { // 위치 권한 요청 let { status } = await Location.requestForegroundPermissionsAsync(); if (status !== 'granted') { setError('위치 권한이 거부되었습니다'); setLoading(false); return; } // 현재 위치 가져오기 let location = await Location.getCurrentPositionAsync({}); const { latitude, longitude } = location.coords; fetchWeather(latitude, longitude); } catch (err) { setError(err.message); setLoading(false); } }; getLocation(); }, []);다음으로 OpenWeatherMap API는 기본적으로 켈빈 온도를 반환합니다. 따라서 섭씨로 변환하는 코드를 추가해야 합니다.각자 가져오신 API 값 뒤에 &units=metirc 를 추가해주시면 됩니다. 전체 코드는 다음과 같습니다.import { StatusBar } from 'expo-status-bar'; import { useEffect, useState } from 'react'; import { ActivityIndicator, Text, View } from 'react-native'; import styled from 'styled-components/native'; import * as Location from 'expo-location'; const Container = styled.View` align-items: center; margin-top: 40px; background-color: #222222; flex: 1; `; const MainTemp = styled.Text` font-size: 80px; color: white; `; const Addition = styled.View` background-color: #aeaeae; width: 150px; height: 150px; margin: 15px; align-items: center; justify-content: center; border-radius: 15px; `; const App = () => { const [weatherData, setWeatherData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const getLocation = async () => { try { // 위치 권한 요청 let { status } = await Location.requestForegroundPermissionsAsync(); if (status !== 'granted') { setError('위치 권한이 거부되었습니다'); setLoading(false); return; } let location = await Location.getCurrentPositionAsync({}); const { latitude, longitude } = location.coords; fetchWeather(latitude, longitude); } catch (err) { setError(err.message); setLoading(false); } }; getLocation(); }, []); const fetchWeather = async (latitude, longitude) => { try { const response = await fetch( `https://api.openweathermap.org/data/2.5/weather?lat=${latitude}&lon=${longitude}&appid=<<개인 API값>>&units=metric` ); // <<>>는 지우셔야 합니다. if (!response.ok) { throw new Error('Network response was not ok'); } const data = await response.json(); setWeatherData(data); } catch (error) { setError(error.message); } finally { setLoading(false); } }; if (loading) { return ( <Container> <ActivityIndicator size="large" color="#ffffff" /> </Container> ); } if (error) { return ( <Container> <Text style={{ color: 'white', fontSize: 20 }} >{`Error: ${error}`}</Text> </Container> ); } if (!weatherData) { return ( <Container> <Text style={{ color: 'white', fontSize: 20 }}>No data available</Text> </Container> ); } const { main: { temp, feels_like, humidity, temp_max, temp_min }, wind: { speed }, weather, } = weatherData; return ( <Container> <StatusBar /> <Text style={{ fontSize: 20, marginTop: 40, color: 'white' }}> {weatherData.name} </Text> <MainTemp>{Math.round(temp)}℃</MainTemp> <Text style={{ fontSize: 24, color: 'white' }}>{weather[0].main}</Text> <View style={{ flexDirection: 'row' }}> <Addition> <Text style={{ color: 'white', fontSize: 20, marginTop: -40, marginBottom: 30, }} > 체감 온도 </Text> <Text style={{ color: 'white', fontSize: 18 }}> {Math.round(feels_like)}℃ </Text> </Addition> <Addition> <Text style={{ color: 'white', fontSize: 20, marginTop: -40, marginBottom: 30, }} > 습도 </Text> <Text style={{ color: 'white', fontSize: 18 }}>{humidity}%</Text> </Addition> </View> <View style={{ flexDirection: 'row' }}> <Addition> <Text style={{ color: 'white', fontSize: 20, marginTop: -40, marginBottom: 30, }} > 최고/최저 온도 </Text> <Text style={{ color: 'white', fontSize: 18 }}> {Math.round(temp_max)}℃/{Math.round(temp_min)}℃ </Text> </Addition> <Addition> <Text style={{ color: 'white', fontSize: 20, marginTop: -40, marginBottom: 30, }} > 풍속 </Text> <Text style={{ color: 'white', fontSize: 18 }}>{speed} m/s</Text> </Addition> </View> <View></View> </Container> ); }; export default App;
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
강의자료는 어떻게 만드셨는지 궁금해요.
강의를 보면서 정리를 참 잘하시는걸 느꼇습니다.일머리가 있으셔서 업무를 할 때에도 큰 그림을 그리고 공부를 할때도 큰 그림을 그리고 공부를 할때 공부한 내용을 잘 정리한다고 하셨는데요.어떤 앱이나 어떤 방식으로 정리를 이렇게 잘 하시는지 궁금합니다. 저도 정리를 좀 더 잘하고 싶은데, Notion에서 텍스트로 나열하는것 말고는 방법을 몰라서요.강의자료 처럼 내가 아는 내용을 도형을 이용해서 체계적으로 작성해보고 싶은데 이런것은 어디서 배운적이 없어서 질문 드립니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
ANOVA 질문드립니다
안녕하세요,독립표본검정 시 정규성을 만족하나 등분산성을 만족하지 않는 경우 equal_var = False라는 파라미터를 추가한다고 가르쳐주셨는데요,분산분석에서도 정규성은 만족하였으나 등분산성을 만족하지 않는 경우 추가해야 하는 조건이 있는지 문의드립니다.학습에서 정규성을 만족하지 않을 경우 kruskal-wallis 비모수검정을 활용한다고 말씀해주셨는데, 등분산성을 만족하지 않는 경우는 설명이 되지 않은 듯 해서요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
MinMaxScaler 에러
안녕하세요. MinMaxScaler하는데 qsec을 인지하지 못했다는 에러가 뜨네요. 어떤 부분이 잘 못 되었는지 알 수 있을 까요?자료는 df=pd.read_csv("mtcars.csv")코드를 통해 내려받아서 head확인하였습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님 이 문제를 재귀를 이용해서 풀어봤는데 인덱스를 포함하는 경우에서 temp_v 배열에 인덱스를 포함해서 보내는 경우는 어떻게 하는건가요??(요 부분)// 현재 인덱스를 포함하지 않는 경우 go(idx + 1, p, f, s, v, sum, temp_v); // 현재 인덱스를 포함하는 경우 go(idx + 1, p + a[idx].p, f + a[idx].f, s + a[idx].s, v + a[idx].v, sum + a[idx].c, temp_v);#include <bits/stdc++.h> using namespace std; const int INF = 987654321; int n, mp, mf, ms, mv; int ret = INF; map<int, vector<vector<int>>> ret_v; // 비용별 조합 저장 struct A { int p, f, s, v, c; } a[16]; void go(int idx, int p, int f, int s, int v, int sum, vector<int> temp_v) { // 모든 재료를 확인한 경우 if (idx == n) { // 최소 조건 만족하는지 확인 if (p >= mp && f >= mf && s >= ms && v >= mv) { if (ret > sum) { ret = sum; // 최소 비용 갱신 ret_v[ret].clear(); // 이전 조합 제거 ret_v[ret].push_back(temp_v); // 새로운 조합 저장 } else if (ret == sum) { ret_v[ret].push_back(temp_v); // 같은 비용의 다른 조합 저장 } } return; } // 현재 인덱스를 포함하지 않는 경우 go(idx + 1, p, f, s, v, sum, temp_v); // 현재 인덱스를 포함하는 경우 go(idx + 1, p + a[idx].p, f + a[idx].f, s + a[idx].s, v + a[idx].v, sum + a[idx].c, temp_v); } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); // 입력 받기 cin >> n >> mp >> mf >> ms >> mv; for (int i = 0; i < n; i++) { cin >> a[i].p >> a[i].f >> a[i].s >> a[i].v >> a[i].c; } // 탐색 시작 go(0, 0, 0, 0, 0, 0, {}); // 결과 처리 if (ret == INF) { cout << -1 << '\n'; // 조건 만족하지 못하는 경우 } else { sort(ret_v[ret].begin(), ret_v[ret].end()); // 사전순 정렬 cout << ret << '\n'; // 최소 비용 출력 for (int idx : ret_v[ret][0]) { // 첫 번째 조합 출력 cout << idx << " "; } cout << '\n'; } return 0; }
-
해결됨김영한의 실전 자바 - 중급 2편
문제와 풀이3 stack - 히스토리 에서 ArryDeque 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. stack 2번째, 문제 풀이 를 보면서 궁금증이 생겨서 질문을 남깁니다.문제 풀이를 듣던 도중에 영한 님이 history를 만들 때, ArryDeque를 이용해서 만들었던 것을 볼 수 있었습니다. 그러다가 계속 듣다 보니까 갑자기 이런 생각이 들더라고요.(어떤 분이 '자바 성능 비교 표' 올린 영향도 있습니다.)'앞으로만 추가하니 LinkedList가 더 빠르지 않을까?' 라는 생각 이요. 그런데 ArrayDeque를 왜 사용했을까? 생각 해보니 '앞으로만 추가 하지만, 여러 가지 이용할게 더 많아서 ArrayDeque 를 사용 했다.' 인데 이것도 추측이라서 정확하지 않네요.그래서 LinkedList 대신 ArryDeque를 사용한 이유를 자세히 알고 싶습니다.답변 부탁 드립니다.
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
디스코드 참여 안됨
안내해주신 링크를 눌러 디스코드에 참여하려는데 없는 링크거나 참여 권한이 없다고 뜹니다..ㅠㅠ
-
미해결
bad SQL grammar [select * from member where name = ?] 왜 에러가 나는지 모르겠네요 문법에 문제가 없는듯한데요;; 파라메터 name 값이 쿼리에 대입이 안되는건지?;;
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select * from member where name = ?]at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:103)at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107)at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1548)at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:677)at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:723)at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:754)at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:767)at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:825)at azul.hello.Repository.JdbcTemplateMemberRepository.findByName(JdbcTemplateMemberRepository.java:44)at azul.hello.service.MemberService.checkDuplicateName(MemberService.java:37)at azul.hello.service.MemberService.join(MemberService.java:31)at azul.hello.service.MemberServiceIntTest.join(MemberServiceIntTest.java:29)at java.base/java.lang.reflect.Method.invoke(Method.java:569)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) =========================================코드 부분@Override public Optional<Member> findByName(String name) { List<Member> result = jdbcTemplate.query("select * from member where name = ?", memberRowMapper(), name); System.out.println("sql = "+ result.stream().findAny()); return result.stream().findAny(); }
-
미해결김영한의 실전 자바 - 중급 2편
안녕하세요. 문의드립니다.
직접 구현하는 Set1 - MyHashSetV1 강의중public class MyHashSetV1 { static final int DEFAULT_INITIAL_CAPACITY = 16; LinkedList<Integer>[] buckets; private int size = 0; private int capacity = DEFAULT_INITIAL_CAPACITY; public MyHashSetV1() { buckets = new LinkedList[capacity]; for (int i = 0; i < capacity; i++) { buckets[i] = new LinkedList<>(); } }이렇게 생성자에 객체를 생성하는데클래스 필드에 객체를 생성하지 않고생성자 안에서 생성하는 이유가 무엇인지 궁금해서 문의드립니다.
-
미해결
요약집 최신판 언제쯤?
안녕하세요~ 요약집 구입하려 하는데 23년 8월자 자료고 업데이트 예정이라고 하여 기다리고 있습니다. 혹시 언제쯤 업데이트 될 지 알 수 있을까요??
-
해결됨실전 연습으로 익히는 고급 타입스크립트 기술
행운문제 테스트 유저 이름 입력 요청
안녕하세요. 행운문제 테스트에 '존재하지 않는 유저'라고 나옵니다. 다른 질문을 참고하니 수동을 등록해주셔야한다는데 등록 요청드립니다.
-
미해결김영한의 실전 자바 - 기본편
문제 1번 Rectangel
문제만 보고 풀었을 때, Rectangle이렇게 정의하고RectangleOopMain에서이렇게 작성했는데, 이렇게 문제를 풀이해도 객체지향으로 변경한게 맞나요? 실행시켰을 때 값은 동일하게 나와서 정답인 줄 알았는데, 문제 풀고 강의 들어보니 정답과 달라서 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
RandomForestRegressor 실행할때 마다 성능평가값이 달라집니다.
RandomForestRegressor 실행할때 마다 성능평가값이 달라집니다.반복해서 실행하니, 처음보다 유의미하게 수치가 낮아졋습니다.강의에서는 스케일링 한거 보다 베이스라인이 성능평가가 더 낫다고 하는데, minmaxsclaler 를bmi 만 한 성능평가 수치가 가장 좋습니다.질문1) 랜덤포레스트는 원래 돌릴때마다 성능이 좋아지나요? 질문2) 시험환경에서는 랜덤포레스트를 반복해서 실행하면 안되나요? (성능평가 결과가 좋아져서 신뢰성 하락이 되나요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스트림 람다식 관련해서 강의 언제나올지
계속해서 영한님 강의를 들으니 이해도 잘되고 재미도 있어서 제가 백엔드 개발자가 되기위해 계속 노력할 수 있는 것 같습니다. 궁금한점은 제가 코딩테스트 문제를 계속 연습하고있는데 거기서 stream/lambda 식이 많이 활용되어서이대로는 풀으나 마나라고 생각해서 먼저 그부분부터 알고자 학습을 진행중입니다.혹시 스트림/람다 강의는 언제 열리는지랑 지금 과정을 알아여지 람다/스트림 과정의 이해가 쉬워지는 지 궁금합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
reject 메소드 시그니처가 불분명한 경우 조치방법
안녕하세요. BindingResult의 reject 메소드시그니처를 확인하려고 합니다. ctrl + 클릭으로 정의된 곳으로 이동하니 Errors 인터페이스로 이동했습니다. 이때 시그니처가 아쉽게도void reject(String errorCode, @Nullable String defaultMessage); 아니라 위 그림처럼 var1, var2로 되있습니다. 강사님께서 강의하실 땐 전자처럼 파라미터변수명이 ctrl + p로 확인할 수 있었던것 같습니다.저도 동일한 환경을 만들고 싶은데요. 유용한 방법이 있는지 궁금합니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
BearerTokenGuard 구현해보기
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 토큰이 없다고 듭니다. 토큰값이 담기는건 확인되는데포스트맨 authorization : Bearer refreshToken 넣어보면 토큰이 없습니다. 401 떠서 다시 계속 해보는데 못찾겠습니다.
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
BP에서 노드 정리하는 단축키가 뭘까요??
BP에서 노드 정리하시는걸 단축키로 하시는 것 같은데찾아봐도 강사님처럼 노드 정리하는 옵션을 찾을 수가 없네요...