묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
스트림 질문 있습니다.
구글링 해봤는데 명확하게 이해가 되지 않아서 질문 남깁니다.기존의 코드에서 메서드 참조, 여기서는 생성자 참조를 사용하는 코드로 변경해보려고 했는데 안 되더라구요.map(아이디, 이름, 나이) 부분에 어쨌든 user.getId() 이런 식으로 해야 하는데 user 참조변수를 가져올 방법도 없고.. 이런 경우에는 메서드 참조를 사용하면 안 되는 건가요??users.stream().map(UserResponse::new(User::getId, User::getName, User::getAge)) -> 이것도 안되네요 names 리스트를 메서드 참조 사용할 때는 names의 지네릭 타입이 String이니까 별도의 변수를 생성할 필요 없이 생성자 참조로 사용할 수 있는 것인지 궁금합니다.결론은 메서드 참조가 명확하게 이해가 안되네요..
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
스트림즈에서 테이블의 데이터 수명주기
안녕하세요 카프카 스트림에서 조인을 공부하다가 질문을 남기게 되었습니다. 카프카에는 기본적으로 세그먼트가 있는거로 알고 있습니다. 저는 이것의 수명주기를 1주일로 세팅했다고 가정하겠습니다. 1월 1일address topic에 gildong: busan 이라는 내용이 들어갔습니다. 1월 3일order topic에 gildong: iphone이라는 내용이 들어갔습니다. 1월 15일order topic에 gildong: apple watch라는 내용이 들어갔습니다. 그럼 1월1일 address의 gildong: busan은 1월 15일에는 액티브 세그먼트에는 들어있지 않게 되는거 아닌가요? 이상태에서 order에 gildong: ipad라는 내용이 들어가면 조인이 되는건지 궁금합니다.
-
미해결홍정모의 따라하며 배우는 C++
읽기 및 쓰기에 대해 파일 포인터가 하나만 있는 이유가 궁금합니다.
#include <iostream> #include <fstream> #include <string> #include <sstream> int main() { using namespace std; // 1. 파일 입출력의 파일 포인터 // 테스트용 텍스트 파일 생성 fstream fs{ "test.txt", std::ios::out }; fs.close(); fs.open("test.txt"); fs << "THIS IS FILE STREAM.\n"; // 읽기 및 쓰기에 대한 현재 파일 포인터의 위치를 콘솔창에 출력 cout << "읽기 위치: " << fs.tellg() << '\n'; // 예상: 0 (파일의 시작 위치) cout << "쓰기 위치: " << fs.tellp() << '\n'; // 예상: 22 (THIS IS FILE STREAM.\n를 쓴 후의 위치) cout << endl; // => 그러나 동일한 결과를 출력한다. // 2. 문자열 스트림 입출력의 스트림 포인터 stringstream ss; ss << "THIS IS STRING STREAM.\n"; string str; ss >> str; cout << "str: " << str << '\n'; // THIS cout << "읽기 위치: " << ss.tellg() << '\n'; // 예상: 4 (THIS를 읽은 후의 위치) cout << "쓰기 위치: " << ss.tellp() << '\n'; // 예상: 23 (THIS IS STRING STREAM.\n 이후의 위치) return 0; } 강의 시청 후에 learncpp.com에서 관련된 챕터를 복습하던 중에 파일 포인터는 읽기 및 쓰기에 대한 파일 포인터가 동일하다는 사실을 알게 되었습니다. 그래서 텍스트 파일을 생성해 임의의 문자열을 파일에 작성하고 tellg()와 tellq()로 확인해봤습니다. 결과는 동일한 위치를 반환했습니다. 읽기를 하지도 않았는데 말이죠. 그런데 일반적으로 생각해보면 입력과 출력에 대해 서로 개별적인 포인터를 가져야할 것 같은데 입출력의 기능을 모두 하는 스트림이 동일한 포인터를 가진다는 게 이해가 안돼서, 이번에는 다른 스트림인 문자열 스트림으로 테스트를 했습니다. 놀랍게도 문자열 스트림은 입출력에 대한 포인터를 독립적으로 보유하는지 tellg()와 tellq()는 서로 다른 위치를 반환했습니다. 구글링으로 답을 찾아보려 했지만 능력의 한계로 찾지 못 했습니다. 왜 입출력 파일 스트림만 동일한 포인터를 가지는 건가요? 단독 언어에 국한된 문제가 아니라 운영체제에 관련된 것일까요?