묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 배치
분류가 필요한 상황이 있는데 방향에 대해 질문드립니다.
안녕하세요.구현하고자 하는 배치를 해보면서 강의를 부분부분 병행하며 듣고 있는데, 제가 원하는 배치는 어떻게 설계 해야 하는지 고민이 되어 조언을 얻고 싶어 질문드립니다.구현하려는 상황은 다음과 같습니다. 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번 과정도 각 테이블마다 거의 똑같고 마지막에 조건에 따라 저장할 테이블만 분류하는 과정만 있는건데 그거를 스탭마다 중복되게 하는 것도 그렇습니다. 구현 상황을 보셨을 때 어떤 식으로 처리하는게 좋다고 생각하시는지 궁금합니다.
-
미해결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 쪽으로 옮겨주니까 정상적으로 실행이 되었습니다.혹시 같은 일로 문제가 생기셨다면 참고해주셔도 좋을 것 같습니다. 감사합니다.
-
미해결
스프링 validation을 할때 errors.properties 의 문구가 적용되지 않습니다.
개인 프로젝트 중 DTO 의 내용을 검증하려고 하는데, 검증 실패시 에러 메시지 내용이 변하지 않아요.test 환경에서 MessageSource 를 주입받아 확인해보면 값인 정상적으로 나오는데 어디서 문제가 된건지 잘 모르겠네요.아래는 코드 내용입니다.DTO@Data @AllArgsConstructor public class MemberJoinForm { @NotBlank private String id; @NotBlank private String pw; @NotBlank @Size(min = 2, max = 5) private String name; @Size(min = 4, max = 15) private String nickName; @NotBlank private String location; @Email private String mail; }Controller@Controller @RequiredArgsConstructor @Slf4j @RequestMapping("/member") public class MemberController { private final MemberService memberService; @PostMapping("/join") public String join(@Validated @ModelAttribute MemberJoinForm memberJoinForm, BindingResult bindingResult){ if(bindingResult.hasErrors()){ log.info("errors={}", bindingResult); return "layout/member-join"; } memberService.save(memberJoinForm); return "layout/home"; } }(application.properties), (errors.properties) 파일 내용# messages 객체 메시지 spring.messages.basename=errorsNotBlank= 필수 입력란을 반드시 입력해 주세요. 테스트 코드로 확인해보면 MessageSource 에 errors.properties 내용이 담기긴 하는데 정작 NoBlank 에러가 발생할때 오류 문구가 바인딩 되지가 않네요.뭐가 문제일까요?
-
해결됨Airflow 마스터 클래스
python 설치 관련
안녕하세요.python 설치 관련 질문이 있어 문의드립니다 ~ 강의에서는 파이썬 3.7.x 버전 설치 후 python 명령어를 통해 버전을 확인해주셨는데요.강의를 보고 저도 3.8.x 버전 설치 후 (에어플로우와 버전 통일) python 명령어를 통해 버전을 확인해보았는데, 버전이 확인되지 않아 python3 명령어를 사용해보니 버전이 확인되었습니다.구글링을 해보니 파이썬 3버전 부터는 python3 명령어를 사용해야 한다고 하는데강사님 버전은 3버전임에도 불구하고 오류없이 작동하여서 별도의 처리를 해두신건지 궁금합니다.(참고로 제 os는 mac os입니다!)
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
데이터베이스 업데이트 시 벌크성 수정 쿼리를 사용할 수 없을 때
JPA를 활용하여 여러 개의 row들을 업데이트하는 상황입니다.하지만 전체를 동일하게 수정하는 것이 아니고, 하나의 Service 로직 상에서 여러 개의 row들을 서로 다른 값으로 업데이트해야하는 상황입니다. 이 경우에는 각 데이터에 대해서 일일이 변경 감지를 통해 update 하는 게 최선일까요?
-
미해결배달앱 클론코딩 [with React Native]
73버전 cocoapod 다운로드 질문입니다.
안녕하세요 현재 android 와 ios앱 제작을 위해 강의를 시청하고 있습니다 . 운영체제 : win10react-native버전 : 0.73# Do you want to install CocoaPods now? 뜨면 y 입력현재 프로젝트를 받을때 CocoaPods 관련 다운 내용이 안 나와서 (묻지않았음..) 수동으로 다운로드 받으려고 합니다.아래 내용은 그때 생긴 에러 입니다.-------------------------------------PS C:\Users\asus\FoodDeliveryApp1> ^CNeed to install the following packages: pod-install@0.2.0Ok to proceed? (y) yScanning for pods...CocoaPods is only supported on darwin machinesPS C:\Users\asus\FoodDeliveryApp1> react-native-cli -version--------------------------------------------------- 공심홈페이지 나 stackoverflow 에서 윈도우에선 다운받을 수 없다고 하는 것 같긴한데.. 혹시 윈도우환경에서 다운받을 수 있는데 제가 잘못하고 있는 것인지 궁금해 질문들렸습니다 ... 추가로 정 안된다면 일단 안드로이드 위주로 개발을 진행하여 완성 한 후 ios환경에서 시험하려고 하는데요 추후에 pod-install 같은 ios 관련 환경을 추가해 앱이 동작하는지 확인할 수 있나요? 아니면 현재 프로젝트를 만들때 모두 준비되어있어야 하는지.. 궁금합니다 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HashMap<> store 의 원리에 대한 질문
강의 4:47 즈음에서 궁금해진 내용입니다. MemoryMemberRepository 에서,save() 함수를 통해 HashMap<> store 에 id 값과 Member 변수를 담도록 되어 있는데,그 밑에 있는 findById(), findAll() 함수에서 store 에 담겨져 있는 값을 가져오려면 store 가 어딘가에 저장이 되어야 하는 것이 아닌가요?프로그램을 종료해도 store 에 담겨 있는 정보가 휘발되지 않는 건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
RegisterRecv() 함수에서
WSABUF wsaBuf; ::WSARecv(_socket, &wsabuf, ...);위 코드에서 WSABUF 타입 객체를 스택에 생성에서 WSARecv() 함수에 넘기면 이 함수가 바로 완료되지 않고, 나중에 완료 통지로 받는다면 스택에 생성된 WSABUF는 그전에 해제되서 잘못된 메모리에 쓰게 되는 게 아닌가요?또 이런 api들을 호출할 때 넘길 파라미터를 스택에 생성할 지 new 로 힙에 생성할 지 기준은 어떻게 정하시는지 궁금합니다.