묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 1편
열거형
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.public class ClassGrade {public static final ClassGrade BASIC = new ClassGrade(); //classGrade.basic x001public static final ClassGrade GOLD = new ClassGrade(); //classGrade.gold x002public static final ClassGrade DIAMOND = new ClassGrade(); //x003private ClassGrade(){}}에서ClassGrade BASIC,ClassGrade GOLD, ClassGrade DIAMON 를 사용했는데, BASIC 등 다른 변수들에 객체값을 담을려고 만드는 거면, ClassGrade BASIC말고 다른 class를 예로들면 Grade를 만들어서 Grade BASIC = new Grade()로 만들어도 되는지 궁금해서 질문드립니다 !1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨2시간으로 끝내는 코루틴
한 suspend fun 의 반환값이 다른 suspend fun의 파라미터로 쓰일 때
fun main(): Unit = runBlocking { val job1 = async { apiCall1() } val job2 = async { apiCall2(job1.await()) } printWithThread(job2.await()) } suspend fun apiCall1(): Int { delay(1_000L) return 1 } suspend fun apiCall2(num: Int): Int { delay(1_000L) return num + 2 }위와 같은 코드에서, 코루틴을 사용해도 apiCall1() 의 반환값이 apiCall2()의 인자로 사용되기 때문에, apiCall1()이 완료된 후에 apiCall2()가 실행되는 것은 이해했습니다. 그리고 코루틴을 사용할 때의 이점이 마치 한줄한줄 동기식 코드를 작성할 때처럼 비동기 코드를 사용할 수 있다. 로 이해했습니다.그럼 위와 같은 상황에서는 굳이 코루틴을 사용하지 않고, 아래와 같이 동기적으로 코드를 작성해도 같은 것일까요? (두 apiCall1,2를 사용하는 외부 메서드가 없을 때)fun main() { val job1 = apiCall1() val job2 = apiCall2(job1) printWithThread(job2) } fun apiCall1(): Int { delay(1_000L) return 1 } fun apiCall2(num: Int): Int { delay(1_000L) return num + 2 }비동기 처리가 처음이다 보니 직관적으로 잘 와닿지 않는 부분이 많아 자꾸 질문드리네요 ㅜㅜ 죄송합니다.
-
해결됨스프링 핵심 원리 - 기본편
강의 7분,9분에서 출력이 안돼요
김영한 강사님처럼 system.out.println 결과가 안 뜹니다
-
미해결Next + React Query로 SNS 서비스 만들기
추천탭 게시글작성 오류
추천탭에서 게시글을 작성하면 새로고침 시 사라져버리고 추천탭에서 게시한 게시글이 "팔로우 중" 탭에서 존재하여 좋아요 버튼을 클릭하면 새로고침 시 다시 추천탭에도 해당 게시글이 나타납니다.도무지 뭐가문제인지 모르겠네요ㅠㅠ"use client" import { MouseEventHandler } from 'react'; import style from './post.module.css'; import cx from 'classnames'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import { Post } from '@/model/Post'; type Props = { white? : boolean; postId: number; } export default function ActionButtons({white, postId}: Props) { const queryClient = useQueryClient(); const commented = true; const reposted = true; const liked = false; const heart = useMutation({ mutationFn: () => { return fetch(`${process.env.NEXT_PUBLIC_BASE_URL}/api/posts/${postId}/heart`, { method: 'post', credentials: 'include', }) }, // 클릭한 하트 상태를 실시간으로 true로 만들어줌 // post에서 검색결과,추천,팔로잉,답글 등등 쿼리키가 다양한대 어떤 쿼리키인지 무슨상황인지 알 수가 없다. // 그래서 전부 다 해줘야 한다. onMutate() { const queryCache = queryClient.getQueryCache(); const queryKeys = queryCache.getAll().map(cache => cache.queryKey); console.log('queryKeys',queryKeys); queryKeys.forEach((querykey) => { if(querykey[0] === 'posts') { const value:Post | Post[] | undefined = queryClient.getQueryData(querykey); // 게시글 console.log(value) // 싱글포스트 일 수도 있기때문에 조건문 걸어줌. if(Array.isArray(value)){ const index = value.findIndex((v) => postId == v.postId); // 찾고자 하는 게시글이 있는지 확인 if(index > -1) { const shallow = [...value]; shallow[index] = { ...shallow[index], } // 옅은 복사해준것을 쿼리에 전송 queryClient.setQueryData(querykey, shallow); } }else { // 싱글 포스트인 경우 } } }); }, onError() { }, onSettled() { } }) // 댓글 const onClickComment = () => {} // 리트윗 const onClickRepost = () => { } // 좋아요 const onClickHeart:MouseEventHandler<HTMLButtonElement> = (e) => { e.stopPropagation(); if(liked){ // unheart.mutate(); }else{ heart.mutate(); } } return ( <div className={style.actionButtons}> <div className={cx(style.commentButton, { [style.commented]: commented }, white && style.white)}> <button onClick={onClickComment}> <svg width={24} viewBox="0 0 24 24" aria-hidden="true"> <g> <path d="M1.751 10c0-4.42 3.584-8 8.005-8h4.366c4.49 0 8.129 3.64 8.129 8.13 0 2.96-1.607 5.68-4.196 7.11l-8.054 4.46v-3.69h-.067c-4.49.1-8.183-3.51-8.183-8.01zm8.005-6c-3.317 0-6.005 2.69-6.005 6 0 3.37 2.77 6.08 6.138 6.01l.351-.01h1.761v2.3l5.087-2.81c1.951-1.08 3.163-3.13 3.163-5.36 0-3.39-2.744-6.13-6.129-6.13H9.756z"></path> </g> </svg> </button> <div className={style.count}>{1 || ''}</div> </div> <div className={cx(style.repostButton, reposted && style.reposted, white && style.white)}> <button onClick={onClickRepost}> <svg width={24} viewBox="0 0 24 24" aria-hidden="true"> <g> <path d="M4.5 3.88l4.432 4.14-1.364 1.46L5.5 7.55V16c0 1.1.896 2 2 2H13v2H7.5c-2.209 0-4-1.79-4-4V7.55L1.432 9.48.068 8.02 4.5 3.88zM16.5 6H11V4h5.5c2.209 0 4 1.79 4 4v8.45l2.068-1.93 1.364 1.46-4.432 4.14-4.432-4.14 1.364-1.46 2.068 1.93V8c0-1.1-.896-2-2-2z"></path> </g> </svg> </button> <div className={style.count}>{1 || ''}</div> </div> <div className={cx([style.heartButton, liked && style.liked, white && style.white])}> <button onClick={onClickHeart}> <svg width={24} viewBox="0 0 24 24" aria-hidden="true"> <g> <path d="M16.697 5.5c-1.222-.06-2.679.51-3.89 2.16l-.805 1.09-.806-1.09C9.984 6.01 8.526 5.44 7.304 5.5c-1.243.07-2.349.78-2.91 1.91-.552 1.12-.633 2.78.479 4.82 1.074 1.97 3.257 4.27 7.129 6.61 3.87-2.34 6.052-4.64 7.126-6.61 1.111-2.04 1.03-3.7.477-4.82-.561-1.13-1.666-1.84-2.908-1.91zm4.187 7.69c-1.351 2.48-4.001 5.12-8.379 7.67l-.503.3-.504-.3c-4.379-2.55-7.029-5.19-8.382-7.67-1.36-2.5-1.41-4.86-.514-6.67.887-1.79 2.647-2.91 4.601-3.01 1.651-.09 3.368.56 4.798 2.01 1.429-1.45 3.146-2.1 4.796-2.01 1.954.1 3.714 1.22 4.601 3.01.896 1.81.846 4.17-.514 6.67z"></path> </g> </svg> </button> <div className={style.count}>{0 || ''}</div> </div> </div> ) }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
모든 경우의수를 구해보는 방식
선생님, 안녕하세요.괄호추가하기 문제를 풀어보고 있습니다.bfs는 아니고, 큐를 이용하기는 하는데 visited를 이용하지 않게 문제를 풀고 있어요.전략은 처음에 큐에 식을 넣고,큐에서 뺄 때, 수식을 계산한다음, 앞에서부터 괄호를 칠 수 있는 부분에 하나씩 괄호를 치고 넘기고. 이걸 반복하고 있습니다. 예를 들면, 9 3+8*7-9*2를 입력했을 때,3+8*7-9*2 (3+8)*7-9*2 3+(8*7)-9*2 3+8*(7-9)*2 3+8*7-(9*2) (3+8)*(7-9)*2 (3+8)*7-(9*2) 3+(8*7)-(9*2) 이런식으로 해서 모든 경우의 수를 구해서 비교하는 방식으로 하고 있는데요.예제는 잘 통과하는데, 제출하면 틀리네요...한번 봐주시고, 의견주시면 감사하겠습니다.또, 어떤 반례가 있을까요??http://boj.kr/0fced5587b8a4c5eb38406042eff5d6d 감사합니다~!
-
미해결Airflow 마스터 클래스
파이썬 외부함수 임포트 경로 질문
안녕하세요 강사님실습 따라서 코드 작성하고 dags_python_import_func.py 대그 에어플로우에 올려서 테스트해봤는데 계속 임포트 에러가 나서 질문드립니다.제 실습환경이 강의의 실습환경과 달라서 그러는건지 잘 모르겠는데 제 실습환경은 아래와 같습니다.이 상태에서 common.common_func 경로로 get_sftp 함수 임포트하면 moduleNotFoundError가 발생합니다.plugins를 포함해도 동일하고요ㅜ어떤게 문제인지 알려주실 수 있을까요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
네트워크 책
혼자 배우는 네트워크강의는 안나오나요ㅠㅠ책말고 강의도 해주세요 ㅠㅠ
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
위키피디아 연결 방법
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 위키피디아 링크 붙여넣으면 SSL/TLS 보안 채널을 만들 수 없습니다라는 에러가 뜹니다. 남겨주신 답글을 봤는데 1. 웹 콘텐츠 액세스 > 익명 > 연결..클릭2. 개인정보..블러블러를 묻는 대화상자에서는 > 중간 쯤에 위치한 '개인정보를 무시합니다...' 의 체크 박스에 체크하고 > 확인 ...클릭 이게 뭔 말인지 모르겠습니다. 웹 콘텐츠 액세스라는 것부터 못 찾고 있습니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
도메인 연결 후 게시글 작성..
안녕하세요 도메인 연결 후 로그인과 로그아웃이 잘 되고, 새로고침 시에도 유지가 되는데요~게시글이 작성은 안됩니다 ㅠㅠ 회원가입은 되구요!이 다음 강의 S3를 연결하면 게시글이 작성이 되는게 맞을까요? 아니면 현재 오류가 있는건가여..
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 DB 생성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.13:51초에서 실행 오류가 나며, H2 db에서 Member가 생성되지 않습니다. 하루정도 구글링을 진행하였지만 해결되지 않아 질문드립니다. 아래는 작성한 코드입니다!https://drive.google.com/file/d/1vASQI42Acv8UbdcQ_MDLIkDe0W0pcUba/view?usp=sharing
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
node 안에 있는 data 타입을 shared_ptr 로 하는 이유?
제 생각에는 락프리 스택 만들 때도 그렇고 이번 강의 큐도 그렇고 노드 안에 있는 data 타입을 그냥 T data 라고 해도 될 것 같은데 굳이 shared_ptr로 하는 이유가 있을 까요?shared_ptr 로 하면 메모리 비용과 시간 비용이 더 드는것으로 알고있는데요! 별 이유는 없을까요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-D 질문드려요 (메모이제이션)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 잘듣고있습니다.! 메모이제이션 부분이 이해가 잘 안되서 질문드립니다.dp에 어떤 값이 들어가 있을 때 재귀 호출하지 않고 dp에 담겨져 있는 값을 리턴하는 것에 대한 추가 설명 가능할까요? #include <bits/stdc++.h> using namespace std; int T, W; vector<int> I; int mx = 0; int DP[1001][3][31]; // tree: 트리번호 // cnt: 움직인 횟수 int go(int idx, int tree, int cnt){ int another_tree; if (tree==1) another_tree =2; else another_tree =1; if (idx == T) return 0; // 기저사례 int &ret = DP[idx][tree][cnt]; // 메모이제이션 if (ret) return ret; if (cnt > 0) ret = max(go(idx+1, another_tree, cnt-1), go(idx+1, tree, cnt)) + (tree == I[idx]? 1:0); else ret = go(idx+1, tree, cnt) + (tree==I[idx]? 1:0); return ret; } int main(){ cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false); cin >> T >> W; I = vector<int>(T,0); for(int i =0 ; i < T; ++i){ cin >> I[i]; } cout << max(go(0, 2, W-1), go(0, 1, W)); return 0; } dp에 어떤값이 들어가있다는 것은 이미 한번 수행한 이력이 있는 정점이라는 의미로, 더 이상 아래 정점을 탐구할 필요가 없다 라는 의미겠는데.., 완전히 이해를 하지 못하여 질문드려요
-
미해결김영한의 실전 자바 - 기본편
문제와풀이2번 출력
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.package poly.expay; public class PayService{ public void processPay(String name, int amount) { boolean result; System.out.println("결제를 시작합니다: " + "option = " + name + ", amount = " + amount); if(name.equals("kakao")) { KakaoPay kakaoPay = new KakaoPay(); result = kakaoPay.Pay(amount); } } }다름이 아니라 result값에 kakaoPay.Pay(amount)를 넣는건 알겠는데 그반환값도 true로 되구요 근데 왜 메인에서 출력이 되는건가여? 제가 생각하기로는 result = true라고 생각을 하였는데, 따로 출력을 하기위해선 kakaoPay.Pay(amount); 만 써야 출력이 되지 않나요? 아님 result에 값을 대입함과 동시에 출력도 되는지요.
-
해결됨웹 프론트엔드를 위한 자바스크립트 첫걸음
강사님 코드를 똑같이 따라했는데 에러코드로 떠요.
🚨질문 작성법 및 안내사항질문 작성법-'섹션6. 디지털 시계 개발하기 수업' 질문입니다.약 7분 8초 쯤 수업을 따라하고 있는데 setNowDate(month, date, week[day]); }; const setNowDate = (month, date, day) => { dateElement.textContent = `$ {month} 월${date}일 ${day}`; 가자꾸 Uncaught TypeError: Cannot set properties of null (setting 'textContent')오류가 뜨며 아무것도 보여주지 않아 강의 진행에 어려움을 겪고 있습니다. 어떻게 해결을 해야될까요?
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
프로젝트 생성해보기! 1:36에서 체크박스 설정 안하고 다운로드해야되나요?
상관없을까요
-
해결됨기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
웹사이트에서 바로 한글로 번역되는거 어떤 프로그램쓰시는건가요?
안녕하세요. 처음 15초쯤에 nextjs소개하면서 나오는 번역프로그램은 어떤걸 쓰시는건가요? 편리해보여서요~
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
섹션2 연습문제 질문입니다.
연습문제중 팩토리얼 구현에 있어서 질문 드립니다. static int Factorial(int a){for (int i = a - 1; i >= 1; i--){a *= i;}return a;}static void Main(string[] args){int ret = Factorial(3);Console.WriteLine(ret);} 이 구현도 괜찮을까요?
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
책과의 차이가 궁금합니다.
큰돌님 안녕하세요~ 면접을 위한 CS 전공지식 노트를 구매해서 완독을 하고, 어느 정도 암기도 다 했다고 생각하는데 뭔가 아쉬운 느낌이 들어서 큰돌님 강의를 구매했습니다. -개발자가 꼭 알아야하는 지식이 파트의 경우에는 책에 없는 내용이라 너무 좋게 들었고 이제 디자인 패턴부분부터 학습을 시작하려고 하는데 책과의 차이점이 궁금해서 질문드립니다. 책과 함께 병행해서 보면 좋은 것인지, 아니면 책의 내용이 모두 강의에 담겨 있어서 제공해주시는 교안을 통해 책의 내용을 복습하고 추가적인 내용을 학습하는 것이 좋을지 궁금합니다. 늘 좋은 강의 감사합니다!
-
미해결FreeRTOS 프로그래밍
caddr_t undeclared 문제
TASKMAN 예제를 돌리려는데 다음과 같은 문제가 발생합니다. Description Resource Path Location Type'caddr_t' undeclared (first use in this function) sysmem.c /01_TASKMAN/Src line 76 C/C++ Problem 검색해보니, https://community.st.com/t5/stm32cubeide-mcus/how-do-i-load-stm32cube-fw-g4-v1-5-0-examples-into-stm32cubeide/m-p/582818 void * 로 대체 하거나 <sys/types.h> include 하라는것 같은데 예제에 업데이트가 되야 할것 같아 문의 드립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컴파일러에 ‘-parameters’ 옵션 추가하는 방법을 알려주세요
build.gradle에compileJava { options.compilerArgs << '-parameters'}를 추가했는데 안됩니다.IDE 또는 빌드 도구(Gradle, Maven 등)의 설정에서 Java 컴파일러 옵션에 ‘-parameters’를 추가하라고 하는데, 인텔리제이 메뉴의 설정에서 하는건지, 어떻게 하는건지 자세한 방법을 알려주세요.