========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] public class MemoryMemberRepository implements MemberRepository 이 부분을 import 하려고하면 java.lang.reflect.Member member이게 import가 됩니다. 그래서 다른 분들의 질문을 보고 import hello.hellospring.domain.Member;로 변경해봤습니다. 그래도 계속해서 java: hello.hellospring.repository.MemoryMemberRepository is not abstract and does not override abstract method findAll() in hello.hellospring.repository.MemberRepository 이러한 오류가 발생합니다. 전에 파일 경로중에 한글로 된 경로가 있어서 바꿔서 그 이후 잘 되다가 이번에도 이러네요 왜 그런가요? 코드와 오류 메시지 같이 올리겠습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 크롤링 관련해서 이 다음 클래스도 준비되어 있을까요?? 도움많이 받고 있어 조금 더 고급 스킬 배우고 싶습니다.
밸리데이션 프로젝트 index.html 입니다. 이 상태로 실행했는데 화면에는 폼 프로젝트 화면이 뜹니다. (이 프로젝트 실행전에 폼프로젝트를 실행했었습니다.) 새로고침을 해도, 다시 시작해도, 새화면에서 띄워도 마찬가지입니다. index.html 파일을 삭제하고 새로 만들면 정상 화면이 뜨는데 이유가 뭘까요? (다른 프로젝트 실행때도 동일한 현상이 계속 나타났었습니다)
이전 버전에서는 파라미터로 HttpServletRequest와 Response를 받았는데 V3버전부터 반환을 ModelView로 하는 이유와 그 파라미터로 맵이 사용되는 이유 그리고 맵의 키 벨류가 String 인데 각각이 어떤 값이 매칭되는건지 이해가 안됩니다. 지금 다시 복습하는 부분인데 다시 봐도 모르곘습니다…
안녕하세요 제공해 주신 코드를 수정해서 rdma와 wdma의 data width를 서로 다르게 설계해보았는데요. AWSIZE와 ARSIZE을 다르게 설정해도 큰 값으로 통일되어 error가 발생하더라구요. data width를 서로 다르게 설계하면 axi spec에 위배되는 것인가요? 잠깐 알아본 바로는 위와 같이 read/write의 width가 다른 data를 전송하고 싶은 경우 경우 큰 쪽의 data width에 맞춘뒤 narrow burst라는 것을 활용해서 data width보다 작은 데이터를 전송할 수 있는 방법이 있던데 이것을 사용해야 하는 것인가요?
자동으로 수집되는 이벤트 향상된 측정 이벤트 추천 이벤트 맞춤 이벤트 이렇게 4개의 이벤트가 있다고 이해 했습니다. 이 중 1,2번 항목은 자동으로 수집되며 GA4에서 정의된 이벤트 이름으로 접근, 사용할 수 있다고 이해 했습니다. 4번은 사용자가 직접 커스텀 하여 만드는 것이기 때문에 어떻게 사용 해야 하는지를 이해 하고 있습니다. 그런데 3번에 대해, 구글에서 해당 이벤트 이름과 관련해 데이터를 수집해 제공해 주는 것인지요? 아니라면 사용자가 직접 이벤트를 만들어야 하는데 관련한 항목, 즉 예를 들어 login에 대해 이벤트를 만들어 추적하고자 한다면, 트리거 요소나 매개변수 설정 등 원하는 항목들은 사용자가 직접 커스텀 하고 대신, 이벤트 이름은 추천 이벤트의 테이블에 명시된 설명과 부합되는 login 이라는 이벤트 이름을 정의하여야 한다. 그래야지 내가 원하는 이벤트의 value 뿐만 아니라 GA4의 머신러닝 기반의 분석에 활용되어 추가적인 분석 리포트로 제공되거나 탐색의 세그먼트 등에 활용되어 진다. 이렇게 이해를 해야 할까요? 정확하게 어떻게 사용해야 하는지에 대한 이해가 잘 와닿지 않아서 사용 프로세스에 대해 알고 싶습니다.
https://github.com/myungkeun02/spring_blog_3 공부하고있는 코드입니다. 제목 그대로 포스트맨으로 테스트중에 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception 라는 에러가 발생합니다. 구글링해서 문제가 발생할만한 부분을 모두 찾아 보았지만 해결이 안되어 글 올려봅니다. 해결해주시는분께 아메리카노 쏩니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 프로젝트 먼저 첨부합니다. https://drive.google.com/file/d/1xDPF5Zfm4ou2KgjOeroxDoAaXHuuiE9s/view?usp=sharing 중복회원예외와 회원가입 테스트에서 아래와 같은 오류가 발생합니다. org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement [Table "MEMBER" not found (this database is empty); SQL statement: select m1_0.id,m1_0.name from member m1_0 where m1_0.name=? [42104-224]] [select m1_0.id,m1_0.name from member m1_0 where m1_0.name=?]; SQL [select m1_0.id,m1_0.name from member m1_0 where m1_0.name=?] Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement [Table "MEMBER" not found (this database is empty); SQL statement: select m1_ 0.id ,m1_ 0.name from member m1_0 where m1_ 0.name =? [42104-224]] [select m1_ 0.id ,m1_ 0.name from member m1_0 where m1_ 0.name =?] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" not found (this database is empty); SQL statement: select m1_ 0.id ,m1_ 0.name from member m1_0 where m1_ 0.name =? [42104-224] 이 오류가 뜨기 전에도 실행은 되나, 테이블이 생성이 되지 않았는지 h2에서 select * from member; 했을 때 아무것도 나오지 않는 문제가 있었습니다. 더하여 http://localhost:8080/ 이 연결거부됐다고 나오면서 아예 접속이 되지 않습니다. 어떤 부분에 오류가 있을까요? 계속 다른 오류들이 나오면서 조금씩 수정해봤던 것이라 어디서부터 잘못된지도 잘 모르겠습니다,,
설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
안녕하세요 맛비님. AXI4_Lite 관련 질문을 드리게 되었습니다. 1. 스위치나 버튼의 상태를 알려주는 reg의 값과 주소를 알 수 있는 방법이 있나요? 5장과 8장을 통합한 프로젝트를 만들려고 합니다. 각 스위치의 ON/OFF 상태를 UART로 상태를 print하는 것을 하려고 합니다. xilinx에서 제공하는 IP의 datasheet는 아래 페이지에서 원하는 IP를 검색하여 하는 것이 맞나요? https://www.xilinx.com/support.html#documentation
안녕하세요 선생님 lower_bound()를 사용하는 방법으로 boj 11053을 풀면 답은 맞지만 로직 흐름이 맞지 않는 테스트 케이스가 있습니다. 4 10 20 30 11 위 input을 입력하면 출력으로 10 0 0 0 10 20 0 0 10 20 30 0 10 11 30 0 이렇게 나옵니다. 이러한 경우를 고려하지 않아도 괜찮나요?
안녕하세요! 항상 수고 많으십니다. r-value 레퍼런스와 move 함수에 대해 궁금한 것이 몇 있는데 나름 찾아봤지만 해소되지않은 부분이 있어 이렇게 여쭤봅니다. 아래와 같이 && 를 통해 r-value 를 받고있는데요, { int && ref = 5; cout << ref << endl; //ok ref = 3; // ok cout << &ref << endl; //ok } { ref; //error, 정의된 scope 밖 } 원래 r-value 이던 5 는 잠시 레지스터든 어디에 임시 생성됐다가 표현식( ; )이 끝나면 바로 사라질 예정이었지만 l-value 로 바뀌어 메모리에 직접 저장되는 형식으로 되어, l-value 처럼 작동한다는 것이 적절한 이해인가요? (scope안에서는 계속 데이터 유효, scope 밖은 자동소멸 등..) move 함수에 대해서, move 는 인자로 들어간 것을 r-value 로 리턴하여 소유권을 이전, 및 자신의 소유권은 박탈해줍니다. 다음의 예시에서, string&& s 가 r-value 인 abc 를 받고있는데요, 이때 b 는 move(s) 를 통해 abc 에 대한 소유권을 이전받고, s 는 소유권을 박탈당해서 코드 실행시 다음의 결과가 나옵니다. b 는 abc를 정상출력, s 는 소유권을 박탈당해 아무것도 출력안함. 즉 move 가 소유권 이전, 박탈을 잘 해주는데요, 한편, (15.4강 2:54부근) 에서 가운데를 보면 res1 이 move 를 통해 r-value 로 리턴되고 res2 로 소유권(포인팅 주소) 이전 및 자신은 박탈 되는 것 처럼 보입니다. 명확히 확인해보기 위해 저 주황줄 코드가 호출하는 생성자에 아래와 같이 res1 의 m_ptr 의 주소를 찍어봤는데 와 같이 널포인터(소유권상실)가 아닌 가지고 있던 주소를 계속 가지고 있습니다. 저희가 50번째 줄에 널포인터를 직접 넣기 전에도 소유권 박탈은 안 된 모습인데 move 를 통해 소유권이 상실되는 string 케이스와는 대비가 되는 모습입니다. string 과 달리 사용자 정의 자료형은 이전이나 박탈은 사용자가 직접 정의 해줘야한다는 시각으로 이해하면 될까요? 그리고 move 를 통해 r-value 로 바뀐다고 하는데 그렇다면 바로 위의 예시에서 res1 는 r-value 가 돼서 언뜻 보면 26번줄 이후로는 소멸될 것 같지만 AutoPtr 클래스인 res1 에 테스트 멤버함수를 만들어 호출해봐도 정상적으로 작동이 됩니다. (i'am --> i'm 오타입니다) --> res1 test 멤버함수 --> 32번째 줄 test 멤버함수 호출 이것을 토대로 생각해보면 res1 에 대해 res1 자체를 r-value 로 수정하는 것이 아니라, 자신은 변경되는 것이 아닌 res1 를 r-value 로 가공한 걸 잽싸게 넘겨주고 자신은 바뀌는 것 없이 끝인 개념인가요? 의 경우 위에 해당하는 r-value 복사생성자로 이동합니다. 이렇게 얕은복사가 진행됩니다. ---------------------------------------------------- 이번에는 위에 move 함수를 뺐는데요, 그러면 에 해당하는 l-value 복사생성자가 호출됩니다. 실제로 30번 줄에 의해 와 같은 깊은복사가 일어나게 됩니다. 그래서 r-value 를 써서 소유권 이전 등으로 얕은복사로 리소스를 적게쓰자가 지향점이겠으나 그냥 단순히 아까 깊은복사가 일어나는 l-value 복사생성자 의 내용을 처럼 그냥 얕은복사가 일어나도록 하는 코드로 갈아끼우면 되는 것 아닌가요? 물론 저렇게는 오류가 나서 처럼 const 를 빼주면 정상작동합니다. 위 실행결과 --> 결과도 의도하는 얕은복사가 이루어지는데 이런 방법이 왜 잘못된 건지 알고싶습니다. 질문글이 좀 많이 길어 죄송한 면이 있네요. 항상 친절한 답변 감사합니다. 감사합니다. 3번 질문에 해당하는 코드입니다. <main.cpp> #include "AutoPtr.h" #include "Resource.h" #include <iostream> using namespace std; template<class T> void MySwap(T& a, T& b) { //T tmp = a; //a = b; //b = tmp; T tmp{ std::move(a) }; a = std::move(b); b = std::move(tmp); } int main() { { AutoPtr<Resource> res1(new Resource(1000000)); cout << res1.m_ptr << endl; AutoPtr<Resource> res2 = res1; cout << res1.m_ptr << endl; cout << res2.m_ptr << endl; } return 0; } <AutoPtr.h> #pragma once #include <iostream> using namespace std; template<class T> class AutoPtr { public: T* m_ptr; public: AutoPtr(T* ptr = nullptr) : m_ptr(ptr) { std::cout << "AutoPtr default constructor " << std::endl; } ~AutoPtr() { std::cout << "AutoPtr destructor " << std::endl; if (m_ptr != nullptr) delete m_ptr; } AutoPtr(AutoPtr& a) : m_ptr(a.m_ptr) { a.m_ptr = nullptr; // really necessary? std::cout << "AutoPtr move constructor " << std::endl; } AutoPtr& operator = (const AutoPtr& a) { std::cout << "AutoPTr copy assignment " << std::endl; if (&a == this) // prevent self-assignment return *this; if (m_ptr != nullptr) delete m_ptr; // deep copy m_ptr = new T; *m_ptr = *a.m_ptr; return *this; } AutoPtr(AutoPtr&& a) : m_ptr(a.m_ptr) { a.m_ptr = nullptr; // really necessary? std::cout << "AutoPtr move constructor " << std::endl; } AutoPtr& operator=(AutoPtr&& a) { std::cout << "AutoPtr move assignment " << std::endl; if (&a == this) return *this; if (!m_ptr) delete m_ptr; //shallow copy m_ptr = a.m_ptr; a.m_ptr = nullptr; return *this; } void test() { std::cout << m_ptr << " i'am here " << std::endl; } T& operator*() const { return *m_ptr; } T* operator->() const { return m_ptr; } bool isNull() const { return m_ptr == nullptr; } }; <Resource.h> #pragma once #include <iostream> class Resource { //private: public: int* m_data = nullptr; unsigned m_length = 0; public: Resource() { std::cout << "Resource constructed" << std::endl; } Resource(unsigned length) { std::cout << "Resource length constructed" << std::endl; this->m_data = new int[length]; this->m_length = length; } Resource(const Resource& res) { std::cout << "Resource copy constructed" << std::endl; Resource(res.m_length); for (unsigned i = 0; i < m_length; ++i) m_data[i] = res.m_data[i]; } ~Resource() { std::cout << "Resource destroyed" << std::endl; if (m_data != nullptr) delete[] m_data; } Resource& operator = (Resource& res) { std::cout << "Resource copy assignment" << std::endl; if (&res == this) return *this; if (this->m_data != nullptr) delete[] m_data; m_length = res.m_length; m_data = new int[m_length]; for (unsigned i = 0; i < m_length; ++i) m_data[i] = res.m_data[i]; return *this; } void print() { for (unsigned i = 0; i < m_length; ++i) std::cout << m_data[i] << " "; std::cout << std::endl; } void setAll(const int& v) { for (unsigned i = 0; i < m_length; ++i) m_data[i] = v; } };
"홈탭 만들면서 Context API" 강좌를 듣고 localhost3000/home에 들어가면 localhost3000/[username] 경로로 들어가지다가(화면에 '프로필 페이지'라고 뜨는 것을 보니 이런 것 같습니다! ) 화면이 빈 화면으로 바뀝니다.. 그리고 왼쪽 섹션에 있는 프로필을 클릭하면 아래와 같은 오류가 뜹니다 ㅠ 무슨 문제일까요? 오류 내용 : ⨯ Error: Cannot find module '/Users/ryuhojun/Documents/z-com/.next/server/app/(afterLogin)/[username]/page.js' Require stack: - /Users/ryuhojun/Documents/z-com/node_modules/next/dist/server/require.js - /Users/ryuhojun/Documents/z-com/node_modules/next/dist/server/load-components.js - /Users/ryuhojun/Documents/z-com/node_modules/next/dist/build/utils.js - /Users/ryuhojun/Documents/z-com/node_modules/next/dist/server/dev/hot-middleware.js - /Users/ryuhojun/Documents/z-com/node_modules/next/dist/server/dev/hot-reloader-webpack.js - /Users/ryuhojun/Documents/z-com/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js - /Users/ryuhojun/Documents/z-com/node_modules/next/dist/server/lib/router-server.js - /Users/ryuhojun/Documents/z-com/node_modules/next/dist/server/lib/start-server.js
메세지를 관리하는 공통 관리팀에서 필드에 대한 required 메세지 4가지를 정의해 놨다고 가정할 때 required.item.itemName=상품 이름은 필수입니다. required.itemName=이름은 필수입니다. required.java.lang.String = 필수 문자입니다. required = 필수 값 입니다. 아래 명령어는 bindingResult.rejectValue("itemName","required"); required.item.itemName으로 정의된 에러 메세지(상품 이름은 필수입니다.)만 불러 올 수 있는거죠? 개발자가 네가지 오류 메세지 중에서 선택해서 사용할 수 있는 방법은 없나요?