묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Next + React Query로 SNS 서비스 만들기
docker 이미지로 배포시 phase별 환경 설정 로드
안녕하세요.강의 잘 듣고 업무에 활용 중 입니다.감사합니다.업무에 활용 중 문의사항이 있어서 질문 드립니다.next.js 문서를 참고하여 docker 이미지로 next.js application을 배포 했습니다.https://nextjs.org/docs/app/building-your-application/deploying#docker-image프로젝트 특성 때문에하나의 docker 이미지가 phase마다 동일하게 사용이 되는데요.phase별로 환경설정 값들이 달라서 .evn.dev, .env.beta, .env.real등으로 사용을 하고 싶은데요.server가 로드될때 .env.[phase] 를 로드하는 방법에 대해 알고 싶습니다.가능하면 next.js가 지원하는 방법으로 구현을 했으면 싶은데요.가이드를 읽어봐도 이해가 잘 안되어서 문의 남깁니다.https://nextjs.org/docs/pages/building-your-application/configuring/environment-variables감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
scanf와 버퍼 질문
scanf 함수는 입력 버퍼에서 개행 문자는 가져오지 않고 내버려두는 것이라고 들었습니다.제가 궁금한 점은 만약 scanf 함수를 연달아 쓴다면 다음 입력 버퍼의 처음에 개행 문자가 있어서 오류를 일으키지 않느냐는 것입니다.예를 들어 scanf("%d", &i1); scanf("%d", &i2) 라고 작성했을 때 첫번째 scanf에서 10을 입력하고 엔터를 쳤다고 가정하면 입력 버퍼에는 10과 \n이 들어가는데, scanf 함수는 \n은 읽어들이지 않아서 입력 버퍼에 그대로 남게 되는 것이 아닌가요? 제 생각엔 버퍼 지우기 while을 두 개의 scanf 함수 사이에 넣어야 버퍼를 비울 수 있다고 생각했는데 해보면 정상작동이 되는 이유가 궁금해요..
-
미해결
산술 연산자
8분 45초 7/2 를 입력 했는데 왜 7로 계산이 되나요? 7뒤에 /2는 왜 적용이 안되나요
-
미해결파이썬 무료 강의 (활용편7) - 머신러닝
K-평균(실습#3) 결과 값이 왜 다르게 나올까요?
random_state=0으로 결과값을 맞추면 강사님과 결과값이 동일해야하는데요. ㅠy_kmeans의 결과값이 다르게 나옵니다.강사님 파일 받은거 돌려도 그러네요. 그래서 그런지 클러스터 네이밍 번호 순서도 다르게 나와요.vscode, 주피터 모두 동일하게 나와서... 강사님과 같지 않아도 맞는거겠죠?ㅎㅎ
-
미해결
취준생 할인 질문
안녕하세요 현재 개발자 준비중인 취준생입니다. 다름이 아니라 스프링 강의를 너무 듣고 싶은데 한 강의 당 88000~120000원 하다 보니 약간? 가격 면에서 부담이 없지 않아 있습니다. 혹시 할인 쿠폰 받거나 혜택이 있는지 궁금합니다.
-
미해결Next + React Query로 SNS 서비스 만들기
Next.js, 서버컴포넌트에서 ssr로 데이터 패칭할 때 토큰 도 같이 보내기
next.js에서 서버컴포넌트에 데이터 패칭할 때 13버전 이후부터는 const fetchPosts = async () => { const response = await fetch("URL", { cache: "no-store", }); return response.json(); }; cache설정으로, ssr, ssg를 한다고 들었습니다. 이때, 궁금한게 있어요.1. get방식, post방식 등, 어떻게 구별하나요?2. 만약 보낼때, header에 토큰값을 보내거나 할 때, 서버컴포넌트에서 어떻게 처리하나요? 그때도 cache설정만 해주면, ssr이 적용 되나요??
-
해결됨스프링 배치
분류가 필요한 상황이 있는데 방향에 대해 질문드립니다.
안녕하세요.구현하고자 하는 배치를 해보면서 강의를 부분부분 병행하며 듣고 있는데, 제가 원하는 배치는 어떻게 설계 해야 하는지 고민이 되어 조언을 얻고 싶어 질문드립니다.구현하려는 상황은 다음과 같습니다. db 컬럼 중 플래그 값이 있고 그걸로 reader 에서 readread 한 데이터들로 processor 에서 로직 진행 (로직 중간중간 db 조회나 업데이트하는 상황도 생김) writer 에서 write 해야 하는 테이블이 4개 인데 processor 로직 조건에 따라 어떤 경우는 2개, 어떤 경우는 4개 등 write 되는 테이블 개수가 달라짐마지막에 최종적으로 read 한 모든 데이터의 플래그 값을 업데이트 쳐서 다음 read 에서 조회되지 않게 함 처음 생각은 reader 와 processor 를 하나씩 만들고 writer 를 여러개 만드려고 했습니다.processor 에서 리턴되는 객체 하나로 여러 테이블에 write 해도 될만큼 필드가 겹치는게 많아서 이렇게 생각했습니다.그래서 찾아보니 writer 에도 composite 과 classifierComposite 구현체가 있더라구요.그런데 둘 다 사용해봤는데 제가 원하는 바를 실현시키지 못했습니다. 분류 후 여러개를 writer 해야 하는데 composite 는 분류가 안되고 classifierComposite 은 하나만 writer 되더라구요.그래서 writer 여러개로 설계하는게 안맞는 방법인가 싶어서요.같은 맥락으로 processor 여러개로 하는 방법도 뭔가 그림이 잘 안그려지고..결국 step 을 여러개 하는 방향을 생각 중인데 이때도 고민거리가 생깁니다.step 으로 했을 때는 같은 조건으로 테이블 개수만큼 read 를 여러번 하게 된다는 단점이 있는 것 같아서요.그리고 4번에서 read 하는 조건 플래그 값을 update 하는데 첫번째 스탭에서 해버리면 다음 스탭에서 read 를 못하게 되버립니다.그리고 2번 과정도 각 테이블마다 거의 똑같고 마지막에 조건에 따라 저장할 테이블만 분류하는 과정만 있는건데 그거를 스탭마다 중복되게 하는 것도 그렇습니다. 구현 상황을 보셨을 때 어떤 식으로 처리하는게 좋다고 생각하시는지 궁금합니다.
-
미해결웹 개발의 혁신: C, C++, Rust로 시작하는 WebAssembly 마스터 클래스
리눅스 개발환경 구성 시 Ubuntu 22.04LTS 필요 여부
안녕하세요, 친절하신 강의 잘 듣고 있습니다.'섹션 2. Linux 에서 WebAssembly 개발 환경 구축'을 듣고 있는 중인데, Ubuntu 20.04LTS를 설치하신걸로 보았습니다. 잠깐 뒷 강의를 찾아보니, 이후 강의에서 Qt6를 사용하시는 것 같은데, Ubuntu 22.04LTS를 사용해야 하지 않을까요? 근거는 다음 링크와 같습니다.Supported Platforms | Qt 6.6저는 말씀하신대로 Qt 6.5를 사용할 예정이긴 한데, 지원 플랫폼이 별 차이가 없을 것 같아서요.아니면, 20.04 LTS를 사용하시는 특별한 이유가 있는지 궁금합니다. 답변 부탁 드립니다. 강의 감사드립니다.
-
미해결파이썬 무료 강의 (활용편7) - 머신러닝
K-평균(실습#2) 의 fit, fit_transform 질문입니다.
StandardScaler()KMeans() 객체 생성 후 fit_transform(), fit() 으로 학습데이터 만들기 하는데, 모두 훈련데이터니까...둘다 fit(), 또는 fit_transform()으로 구분없이 사용해도 되는건가요?아니면... 구분지어야 하는 이유가 있는건지 궁금합니다.
-
미해결
accessor method, mutator method
accessor method 랑 mutator method 에 대한 혼동이 있어서 질문드립니다. mutator method 란 단순히 return 값을 가진다고 해서mutator method 가 아니라method { } 이 {} 안 스코프 안에서의 계산이 class 의 필드 변수의 값을 바꾸게 하는 경우 mutator method 라고 하는 건가요 ? 그렇기 때문에,String str1 = " Hello " ; 라고 있을때 ,String str2 = str1.substring( )String str2 = str1.length( ) 가 있을때, ' String str1 '이라는 객체 안에 있는 값들은 변경 되지 않기 때문에 substring 가 length 는 accessor method 라고 부르는건가요 ? 그러면 예를 들어 Scanner scanner = in.nextInt();에서는 어떤한 이유에서 nextInt() 메서드가 mutator method 인가요 ? mutator method 의 정의가 객체의 값을 변경시키는 거라고 알고 있는데, 그러면 in 객체의 값을 변경시키는건가요 ?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
레이아웃 설정에서 진행이 안됩니다.
강의보면서 공식문서 코드를 복붙했는데 저쪽에서 에러가 뜨고나서 해결이 안되서 진행이 안됩니다. 아무리 해도 진행이 안되네요 ㅠㅠ..
-
미해결
C++ 멤버함수의 class가 논리적으로 적합하지 않다고 오류가 날 수 있나요
C++ 멤버함수의 class가 논리적으로 적합하지 않다고 오류가 날 수 있나요? C++로 이진트리 자료구조를 공부하는데class의 멤버함수를 딱히 상관하지 않고 c스타일로 매개변수로 주소를 주다보니까class별 멤버함수들이 약간 꼬였는데주소를 매개변수로 줘서 작동에는 상관이 없을 줄 알았는데 실행이 안됩니다.그래서 해당 함수를 queuetype 넣고 접근제어지시자들만 수정하니까 정상적으로 됩니다컴파일러가 논리적으로 적합한 class를 구분하는 일도 하나요? 혹시 몰라 코드도 올립니다. C스타일을 C++로 고치면서해서 좀 엉성해서 죄송합니다.class treenode { int data; treenode* llink, * rlink; public: treenode() :data{}, llink{ NULL }, rlink{ NULL } { } treenode(int a, treenode* n1, treenode* n2) :data{ a }, llink{ n1 }, rlink{ n2 } { } void level_order(treenode* root); //-------문제 함수----------------------- void enque(queuetype* que, treenode* item); treenode* deque(queuetype* que); //-------문제 함수----------------------- }; #define size 100 class queuetype { public: int front, rear; treenode* stack[size]; void init_queue(); int is_empty(); int is_full(); }; void error(const char* mss) { cout << mss << endl; exit(1); } void queuetype::init_queue() { this->front = this->rear = 0; } int queuetype::is_empty() { return this->front == this->rear; } int queuetype::is_full() { return ((this->rear + 1) % size == this->front); } //-------문제 함수----------------------- void treenode::enque(queuetype* que,treenode* item){ if (que->is_full()) error("error"); que->rear = (que->rear + 1) % size; que->stack[que->rear]=item; } treenode* treenode::deque(queuetype* que) { if(que->is_empty()) error("error"); que->front = (que->front + 1) % size; return que->stack[que->front]; } //-------문제 함수----------------------- void treenode::level_order(treenode* root){ queuetype q; q.init_queue(); if (root == NULL)return; root->enque(&q,root); while (!q.is_empty()) { root = deque(&q); cout << root->data << endl; if (root->llink) enque(&q, root->llink); if(root->rlink) enque(&q, root->rlink); } } treenode n1 = { 1,NULL,NULL }; treenode n2 = { 3,&n1,NULL }; treenode n3 = { 12,NULL,NULL }; treenode n4 = { 25,NULL,NULL }; treenode n5 = { 18,&n3,&n4 }; treenode n6 = { 14,&n2,&n5 }; treenode* root = &n6; int main() { cout << "중위 순회="; root->level_order(root); cout << endl; return 0; }
-
해결됨독하게 시작하는 C 프로그래밍
단항 증/감 연산자
안녕하세요 강사님 단항 증감 연산자 부분에서 강의에서 풀어주신 예제에 대해서 질문있습니다. data = ++x + ++y + x--;를 풀어쓰면 data = ++x + ++y + x; x--; 가 된다고 하셨는데요 제가 캡처한 그림의 빨간 동그라미 부분(x)이 제가 아래에 풀어쓴대로 변형되어서 나온게 맞을까요? x--; 는 단항 증감연산자의 후위식 표기이고 연산의 우선순위는 한 개의 구문(세미콜론이 다 끝나고 나서 진행 됨) x--;는 x-=1; x=x-1; 와 같기에 data = ++x + ++y +x-1; 과 같이 쓸 수 있고 이때 x의 값에서 -1 이라는 연산의 우선 순위가 구문이 끝나고 적용되므로 x만 남고 후위식은 다음 행으로 옮겨진다data = ++x + ++y +x;x--; 빨간색 x만 남는다는게 이상한데 맞을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7_A 2분 쯤 설명이 이해가 안됩니다.
코드를 아무리 봐도 DP에 넣은 값들이 여태까지 지나온 경로들의 최적해가 아니라 visited에 포함되지않은 남은 경로들의 최적해 인거같아요.... 설명에서는 앞에서부터 쌓아가는거 처럼 설명하시는데( (a b c)든 (a c b)든 최적의 값을 구해서 d로 가면 되는거아니냐는 부분) 제가 이해를 잘못 한건가요???
-
미해결Next + React Query로 SNS 서비스 만들기
msw로 Front 미리 만들어두고, 백앤드개발자가 API 만들어주면 나중에 교체하는건에 대해서 질문 있습니다.
msw로 Front에서 미리 만들때 요령이 있나요? 백앤드개발자와 api로 전달 될 값을 json으로 주겠다, 배열로 주겠다, 스트링값으로 주겠다 확정을 짓고 msw를 만들어서 작업해야 하는건가요?msw에서 json으로 만들때 데이터의 구성요소들을 제가 작업한것과 다르게 배열로 준다거나 json안에 데이터의 구조가 예상과 다르게 주면 그에따라 수정이 너무 많이 생길 거 같은데 제가 너무 쓸데없는 걱정하는건가요?
-
해결됨차세대 Node.js 백엔드 서버 개발(Fastify & Prisma & Typescript와 함께하는)
똑같이 따라하고 오류나서 다시해보고 다시해보고 올려주신 코드 확인해봐도 계속 에러가 뜨는대요 ㅠ.ㅠ
PS C:\Users\ohdaesung\Desktop\study\fastify> npm start> sample@1.0.0 start> npm run build:live> sample@1.0.0 build:live> nodemon --watch 'src/**/*' --exec ts-node --esm src/main.ts --verbose[nodemon] 3.0.3[nodemon] to restart at any time, enter rs[nodemon] or send SIGHUP to 12892 to restart[nodemon] watching path(s): 'src\**\*'[nodemon] watching extensions: ts,json[nodemon] starting ts-node --esm src/main.ts[nodemon] spawning[nodemon] child pid: 17216[nodemon] watching 4 filesTypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for C:\Users\ohdaesung\Desktop\study\fastify\src\main.ts at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:160:9) at defaultGetFormat (node:internal/modules/esm/get_format:203:36) at defaultLoad (node:internal/modules/esm/load:143:22) at async nextLoad (node:internal/modules/esm/hooks:750:22) at async nextLoad (node:internal/modules/esm/hooks:750:22) at async Hooks.load (node:internal/modules/esm/hooks:383:20) at async handleMessage (node:internal/modules/esm/worker:199:18) { code: 'ERR_UNKNOWN_FILE_EXTENSION'}[nodemon] app crashed - waiting for file changes before starting... ㅠ.ㅠ
-
미해결
import jakarta.servlet.http.HttpServlet;
public class HelloServlet extends HttpServlet HttpServlet을 상속받으면 import jakarta.servlet.http.HttpServlet; 가 되는데 이게 맞는건가요? 강의에서는 javax로 나와서요.
-
해결됨실전! Querydsl
Querydsl 자동 join
안녕하세요? JPA 활용 2편과 Querydsl 편을 수강하고 나서 코드를 작성하다가 알게 된 내용인데 원래 그런 것인지 알고 싶어서 여쭤봅니다.JPA 활용 2편에서 Order와 member, delivery를 한번에 조회하는 OrderSimpleApiController에서 V4를 Querydsl 버전으로 바꾸었습니다.OrderSimpleApiController.javaOrderSimpleQueryDto@Data public class OrderSimpleQueryDto { private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; @QueryProjection public OrderSimpleQueryDto(Long orderId, String name, LocalDateTime orderDate, OrderStatus orderStatus, Address address){ this.orderId = orderId; this.name = name; // LAZY 초기화 this.orderDate = orderDate; this.orderStatus = orderStatus; this.address = address; // LAZY 초기화 } }orderSimpleQueryRepository.findOrderDtosQuerydslpublic List<OrderSimpleQueryDto> findOrderDtosQuerydsl(){ JPAQueryFactory queryFactory = new JPAQueryFactory(em); return queryFactory .select(new QOrderSimpleQueryDto( order.id.as("orderId"), order.member.name, order.orderDate, order.status, order.delivery.address) ) .from(order) .fetch(); }이렇게 V4버전을 바꿨는데, 딱히 제가 join을 날린 게 없는데 join이 날라갑니다. 오히려 제가 fetchJoin용으로 코드를 작성하려고 from절의 아랫 부분에 다른 코드를 작성하는게 불가능했습니다. join(order.delivery, order).fetchJoin() 같은 코드는 작성이 안되고 join(order.delivery).fetchJoin()은 semantic 오류라는 에러코드가 날라옵니다.Dto로 작성할 때 여러 테이블을 페치 조인해야하는 상황에서는 Querydsl을 어떻게 사용해야하나요? 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결따라하며 배우는 자바스크립트 A-Z
[Event Delegation] 요소의 id를 변수 선언 없이 바로 사용할 수 있는 이유?
예시<body> <div id="buttons"> <button class="buttonClass">Click Me</button> <button class="buttonClass">Click Me</button> </div> <script> console.log(`buttons`, buttons); </script> </body> Event Delegation 강의 약 8분 조금 지난 부분에서 궁금한 점이 있어 질문 드립니다!이벤트 등록을 buttonList가 아닌 buttons라는 곳에 등록을 했음에도 버튼 이벤트가 잘 작동하더라구요.선언하고 할당하지 않은 buttons라는 변수명?이 어떻게 id가 buttons인 div를 가리키는지 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
(해결)AOP 시간측정이 테스트 할 때만 출력되는 경우
안녕하세요. AOP 강의를 듣다가 테스트를 할 때는 Start, End가 잘 출력되는데 서버에 띄워서 회원 목록을 누를 시 출력이 안되는 경우가 있었습니다.저의 경우 test/java/hello.hellospring 밑의 경로로 파일을 만들었기 때문에 생겼었고 이를 main 쪽으로 옮겨주니까 정상적으로 실행이 되었습니다.혹시 같은 일로 문제가 생기셨다면 참고해주셔도 좋을 것 같습니다. 감사합니다.