묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 member 오류
[질문 템플릿]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 질문
안녕하세요 맛비님. AXI4_Lite 관련 질문을 드리게 되었습니다.1. 스위치나 버튼의 상태를 알려주는 reg의 값과 주소를 알 수 있는 방법이 있나요? 5장과 8장을 통합한 프로젝트를 만들려고 합니다. 각 스위치의 ON/OFF 상태를 UART로 상태를 print하는 것을 하려고 합니다.xilinx에서 제공하는 IP의 datasheet는 아래 페이지에서 원하는 IP를 검색하여 하는 것이 맞나요?https://www.xilinx.com/support.html#documentation
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
[도메인 연결하기] 로그인 완료 후에 getServerSideProps 실행되지만,회원정보가 null 이 표시 되는 이유를 몰라서 질문드립니다.
React로 Nodebird sns를 시청하고 나서 개인 프로젝트를 만들고 나서 배포하는 과정에서 막히는 부분이 있어서 질문드립니다. 기존에 localhost:3060 에서 로그인 완료후 메인화면으로 이동시 메인화면 서버사이드 렌더링이 실행됩니다.export const getServerSideProps = wrapper.getServerSideProps(async (context) => { const cookie = context.req ? context.req.headers.cookie : ''; axios.defaults.headers.Cookie = ''; if (context.req && cookie) { axios.defaults.headers.Cookie = cookie; } context.store.dispatch({ type: LOAD_MY_INFO_REQUEST, }) context.store.dispatch(END); await context.store.sagaTask.toPromise(); })그래서,const dispatch = useDispatch(); const { me } = useSelector((state) => state.user); me에 데이터가 들어있습니다. [도메인 연결하기] 영상 시청후Route 53, 가비아 주소, 탄력적 ip 주소를 사용하여 백엔드/ 프론트 서버를 실행하였습니다. 회원가입 후 로그인하고 나서 메인 화면으로 이동되면 쿠키가 저장되는 것을 확인했습니다 하지만로그인 후 메인 화면으로 이동하면, 메인page에 서버사이드 렌더링 코드(getServerSideProps)가 실행하고, export const getServerSideProps = wrapper.getServerSideProps( async (context) => { const cookie = context.req ? context.req.headers.cookie : ""; axios.defaults.headers.Cookie = ""; if (context.req && cookie) { axios.defaults.headers.Cookie = cookie; } context.store.dispatch({ type: LOAD_MY_INFO_REQUEST, }); context.store.dispatch(END); await context.store.sagaTask.toPromise(); } ); const dispatch = useDispatch(); const { me } = useSelector((state) => state.user); 이때 로그인한 사용자의 데이터 정보가 null로 표시됩니다.[back logs]왜 me가 null 인지 ? 무엇이 문제인지 모르겠어서 질문드립니다. 진행 순서[로그인 화면]: 아이디와 비밀번호 를 입력하고 확인 버튼을 누른다. 메인화면에서 서버사이드 렌더링 코드부분 실행하여 회원정보를 불러온다. (LOAD_MY_INFO_REQUEST) export const getServerSideProps = wrapper.getServerSideProps(async (context) => { const cookie = context.req ? context.req.headers.cookie : ''; axios.defaults.headers.Cookie = ''; if (context.req && cookie) { axios.defaults.headers.Cookie = cookie; } context.store.dispatch({ type: LOAD_MY_INFO_REQUEST, }) context.store.dispatch(END); await context.store.sagaTask.toPromise(); }) export default Blog;const dispatch = useDispatch(); const { me } = useSelector((state) => state.user); 3. [메인화면] 회원정보를 불러와 회원정보가 null 이여서 로그아웃 버튼으로 변경되지 않습니다. (me 정보가 null 여서 버튼이 변경되지 않습니다.) 쿠기는 유지되어서 로그인 화면으로 가서 로그인 할시 "로그인하지 않은 사용자만 접근 가능합니다" 안내창이 나옵니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
LIS 예시 문제 boj 11053에서 lower_bound() 질문드립니다.
안녕하세요 선생님lower_bound()를 사용하는 방법으로 boj 11053을 풀면 답은 맞지만 로직 흐름이 맞지 않는 테스트 케이스가 있습니다. 410 20 30 11위 input을 입력하면 출력으로10 0 0 0 10 20 0 0 10 20 30 0 10 11 30 0 이렇게 나옵니다. 이러한 경우를 고려하지 않아도 괜찮나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로그인 성공 후 어떻게 진행되는지 이해가 안갑니다.
@Override protected void successfulAuthentication(HttpServletRequest req, HttpServletResponse res, FilterChain chain, Authentication auth) throws IOException, ServletException { String userName = ((User) auth.getPrincipal()).getUsername(); UserDto userDetails = userService.getUserDetailsByEmail(userName); byte[] secretKeyBytes = Base64.getEncoder().encode(environment.getProperty("token.secret").getBytes()); SecretKey secretKey = Keys.hmacShaKeyFor(secretKeyBytes); Instant now = Instant.now(); String token = Jwts.builder() .subject(userDetails.getUserId()) .expiration(Date.from(now.plusMillis(Long.parseLong(environment.getProperty("token.expiration_time"))))) .issuedAt(Date.from(now)) .signWith(secretKey) .compact(); res.addHeader("token", token); res.addHeader("userId", userDetails.getUserId()); } 여기서 로그인 성공 후 토큰이 발급된 뒤에 @Component@Slf4jpublic class AuthorizationHeaderFilter extends AbstractGatewayFilterFactory<AuthorizationHeaderFilter.Config> { Environment env; public AuthorizationHeaderFilter(Environment env) { super(Config.class); this.env = env; } public static class Config { // Put configuration properties here } @Override public GatewayFilter apply(Config config) { return (exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); if (!request.getHeaders().containsKey(HttpHeaders.AUTHORIZATION)) { return onError(exchange, "No authorization header", HttpStatus.UNAUTHORIZED); } HttpHeaders headers = request.getHeaders(); Set<String> keys = headers.keySet(); log.info(">>>"); keys.stream().forEach(v -> { log.info(v + "=" + request.getHeaders().get(v)); }); log.info("<<<"); String authorizationHeader = request.getHeaders().get(HttpHeaders.AUTHORIZATION).get(0); String jwt = authorizationHeader.replace("Bearer", ""); // Create a cookie object// ServerHttpResponse response = exchange.getResponse();// ResponseCookie c1 = ResponseCookie.from("my_token", "test1234").maxAge(60 60 24).build();// response.addCookie(c1); if (!isJwtValid(jwt)) { return onError(exchange, "JWT token is not valid", HttpStatus.UNAUTHORIZED); } return chain.filter(exchange); }; } private Mono<Void> onError(ServerWebExchange exchange, String err, HttpStatus httpStatus) { ServerHttpResponse response = exchange.getResponse(); response.setStatusCode(httpStatus); log.error(err); byte[] bytes = "The requested token is invalid.".getBytes(StandardCharsets.UTF_8); DataBuffer buffer = exchange.getResponse().bufferFactory().wrap(bytes); return response.writeWith(Flux.just(buffer));// return response.setComplete(); } private boolean isJwtValid(String jwt) { byte[] secretKeyBytes = Base64.getEncoder().encode(env.getProperty("token.secret").getBytes()); SecretKey signingKey = new SecretKeySpec(secretKeyBytes, SignatureAlgorithm.HS512.getJcaName()); boolean returnValue = true; String subject = null; try { JwtParser jwtParser = Jwts.parserBuilder() .setSigningKey(signingKey) .build(); subject = jwtParser.parseClaimsJws(jwt).getBody().getSubject(); } catch (Exception ex) { returnValue = false; } if (subject == null || subject.isEmpty()) { returnValue = false; } return returnValue; }여기로 넘어 오는 게 맞나요?그리고 그 뒤에 어떻게 진행되는지 설명 부탁드립니다!!
-
미해결홍정모의 따라하며 배우는 C++
r-value reference와 std::move
안녕하세요! 항상 수고 많으십니다.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; } };
-
미해결Next + React Query로 SNS 서비스 만들기
[username] 경로와 home 경로로 라우팅할 때 오류
"홈탭 만들면서 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
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필드 오류 메세지를 골라 쓸수는 없나요?
메세지를 관리하는 공통 관리팀에서필드에 대한 required 메세지 4가지를 정의해 놨다고 가정할 때required.item.itemName=상품 이름은 필수입니다. required.itemName=이름은 필수입니다. required.java.lang.String = 필수 문자입니다. required = 필수 값 입니다.아래 명령어는bindingResult.rejectValue("itemName","required");required.item.itemName으로 정의된 에러 메세지(상품 이름은 필수입니다.)만 불러 올 수 있는거죠?개발자가 네가지 오류 메세지 중에서 선택해서 사용할 수 있는 방법은 없나요?
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
노션 공유 부탁드려요
노션 공유 요청 드렸는데 아직 받지 못해서 질문글 남깁니다.메일은 bsy1343@naver.com노션은 thedark1343@gmail.com 입니다.감사합니다.
-
해결됨윤파고의 정보처리기사 DB/프로그래밍 All-In-One
강의 3분 50초 두번째 예제코드 질문드립니다.
int a, hap = 0; for(a=0; a<5; a++, hap += a) ;초기 hap = 0a = 0일 때, hap = 0+0 => hap = 0a = 1일 때, hap = 0 + 1 => hap = 1a = 2일 때, hap = 1 + 2 => hap = 3a = 3일 때, hap = 3 + 3 => hap = 6a = 4일 때, hap = 6 + 4 => hap = 1010 아닌가요? 결과가 동일하게 15라고 되어있는데 어떻게 15가 되는 것인지 이해가 안됩니다...ㅜㅜ혹시 a<=5의 오타일까요..?
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
주피터 노트북 실행 했는데 앞에 *가 생기고 결과가 나오지 않아요
그림처럼 * 가생기고 밑에 결과가 나와야 하는데 나오지 않는 이유가 어떻게 될까요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
소수 뒤집기 문제 다른 방식으로 풀기
복잡하게 푼 것 같기는 한데, 혹시 어떻게 수정하면 정답이 될까요?인풋, 아웃풋은 잘 나오는데 채점 사이트에서는 오답이라고 뜹니다. import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; class Main { public String solution(int n, int[] intArr){ String answer = " "; int[] intPrimeArray= new int[n]; for(int i=0; i<n; i++){ int indexInt= intArr[i]; int remain; int reverse=0; while(indexInt > 0){ remain= indexInt%10; reverse= reverse*10 + remain; indexInt = indexInt/10; } intPrimeArray[i] = reverse; int flag= 0; if(intPrimeArray[i]==1) flag=1; for(int j=2; j<intPrimeArray[i]; j++){ if(intPrimeArray[i] % j ==0 ) flag=1; } if(flag==0) answer += intPrimeArray[i] + " "; } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc= new Scanner(System.in); int n = sc.nextInt(); int[] intArr = new int[n]; for(int i=0; i<n; i++){ intArr[i]= sc.nextInt(); } System.out.println(T.solution(n, intArr)); } }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
쿼리파라미터 타임리프 param에 대해 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]<h2 th:if="${param.status}" th:text="'저장 완료'"></h2>이거와 같이 status를 모델에 안담고 바로 사용하는 것을 볼 수 있는데 그럼 item객체 모델도 model.addattribute 사용 안하고 바로 html에서 ${param.item.id}로 사용 할 수 있나요?
-
해결됨개발자를 위한 쉬운 도커
redis 운영 방법
일단 유익한 강의 감사드립니다 !강의 리마인드 중 갑자기 의문이들어서 질문 드려봅니다.Redis, PostgreSQL 등 db가 서버와 같은 머신에 설치되지않고 따로 별도의 머신에 설치되고 있습니다.대부분의 아키텍쳐가 이런 형상인데 서버랑 분리해서 따로 운영하는 이유가 있을까요?
-
미해결모던 안드로이드 - 코틀린과 Jetpack 활용
Room_DB코틀린 버전에서 에러 나시는 분들
코틀린 최신 버전으로 프로젝트를 만드셔서 그렇습니다.2023년 7월부터 Room적용 방식이 조금 달라졌어요.https://developer.android.com/topic/libraries/view-binding/migration공식문서 입니다.이제 뷰(UI ID)에 바로 접근할 수 없습니다.적용 방식이 달라졌으니 공식 문서에서 참고 해보시겠어요?이 부분 적용하셨으면https://developer.android.com/jetpack/androidx/releases/room#kts빌드그래들쪽에 이것도 적용하셔야 합니다.main에서 뷰 접근 코드는 이런식으로 작성하시면 됩니다. :)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 개념 #9 누적합 질문있습니다!
안녕하세요 선생님 🙂 쉽게 설명해주셔서 항상 감사합니다 ^^ 다름이 아니라 누적합 개념강의에서 선생님께서는 아래의 방식으로 설명해주셨는데요,0번 인덱스는 비워둠psum배열을 전역으로 설정하여 값들을 전부 0으로 초기화psum[1]부터 psum[i - 1] + a[i]를 하시면서 누적합을 계산 아래 방식이 효율적인지 궁금합니다.0번 인덱스 사용psum배열에 a배열을 복사psum[0]은 그대로 둠psum[1]부터 psum[i] + psum[i - 1] 아래는 선생님께서 설명해주신 승철이가 뇌를 잃어버린 문제에 대한 제 풀이의 전체 코드입니다. #include <iostream>#include <vector>#include <iterator>using namespace std;#define N 8#define M 3int A, B;int temp[N];int main(){ int arr[N] = { 1, 2, 3, 4, 5, 6, 7, 8 }; copy(begin(arr), end(arr), begin(temp)); for (int i = 1; i < N; i++) temp[i] += temp[i - 1]; for (int i = 0; i < M; i++) { cin >> A >> B; cout << temp[B] - temp[A - 1] << endl; } return 0;}
-
미해결
딥러닝 질문있습니다
화상통화를 하면서 해당 사람이 고개를 돌리는지 졸고 있다는지 정면을 보지않은 행동을하면 잡아낼려고하면 그냥 딥러닝으로 정면을 보는 이미지 데이터들과 그렇지 않은 데이터들을 모아 정면을 보면 대략 클래스0 반대의 경우 클래스1로 분류하는식으로해도 상관없나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
redirect 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품등록과 상품수정코드에서 redirect부분코드를 보면@PostMapping("/add") public String addItemV5(Item item) { itemRepository.save(item); return "redirect:/basic/items/" + item.getId(); } @PostMapping("/{itemId}/edit") public String edit(@PathVariable Long itemId, @ModelAttribute Item item) { itemRepository.update(itemId, item); return "redirect:/basic/items/{itemId}"; }이렇게 배웠는데 상품등록폼에서 리다이렉트로 상품 수정처럼 @PathVariable 해주고 리다리렉트를 시키니 오류가 납니다. 이런식으로는 못하는건가요? @PostMapping("/add") public String addItemV5(@PathVariable Long itemId, Item item) { itemRepository.save(item); return "redirect:/basic/items/{itemId}"; } 안되는이유가 혹시 addForm.html에서 itemid로 넘겨주는 요청이 없어서 인가요? 더 자세하게 알려주시면 감사하겠습니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
rest api설계 디자인에 관하여
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 현재 프로젝트로 스케줄러 rest api 개발을 하고 있습니다.하지만 rest api 설계 중 어떤 형식으로 설계해야 좋은 설계가 될지 고민이 들어 질문 드립니다. 스케줄러 시나리오는 다음과 같습니다.유저A가 여러 유저들과 그룹a'를 만들고 그룹a'에서 스케줄을 생성할 수 있습니다.유저A는 모든 약속을 한번에 모아볼 수 있고, 또는 그룹a'의 방에 들어가서 그룹a'의 스케줄을 볼 수 있습니다.1번 /user/{userId}/schedules : 유저의 모든 스케줄/group/{groupId}/schedules : 그룹의 모든 스케줄/schedules/{scheduleId} : 상세 스케줄 2번/schedules/user/{userId} or /schedules?userId= 유저의 모든 스케줄/schedules/group/{groupId} or /schedules?groupId 그룹의 모든 스케줄/schedules/{scheduleId} 상세 스케줄 어떤 방식이 좋은 방식인가요?1번은 계층적 구조에 중점을 두었다 생각하고 2번은 리소스에 대한 가시성이 좋다고 생각이 듭니다.웹페이지를 라우팅할때는 1번 rest api를 설계할때는 2번 방식을 무심코 썼었던거 같은데 둘의 URL매핑 구조는 달라야 하는게 맞는건가요? 글이 두서가 없어 죄송합니다! 아직 지식에 부족함이 많아 정리가 잘 안되네요.
-
미해결
챕터 15관련 질문입니다.
우선 무료로 이런 속이 꽉 찬 강의를 만들어주신 강사분께 감사드립니다.다름이 아니라 제가 챕터15에 있는 실습코드를 보고 실행을 해보았는데 이러한 에러가 뜨던가 아니면 빈 웹페이지만 덩그러니 떠있는 경우만 있어혹시 고칠 수 있는 방법이 있나 여쭤봅니다.관리자 화면에는 이렇게 뜹니다!import styled from "styled-components"; const Wrapper = styled.div` padding: 1rem; display: flex; flex-direction: row; align-items: flex-start; justify-content: flex-start; background-color: lightgrey; `; const Block = styled.div ` padding: ${(props) => props.padding}; border: 1px solid black; border-radius: 1rem; background-color: ${(props) => props.backgroundColor}; color: white; font-size: 2rem; font-weight: bold; text-align: center; `; const blockItems = [ { label: "1", padding: "1rem", backgroundColor: "red", }, { label: "2", padding: "3rem", backgroundColor: "green", }, { label: "3", padding: "2rem", backgroundColor: "blue", }, ]; function Blocks(props) { return ( <Wrapper> {blockItems.map((blockItem) => { return ( <Block padding={blockItem.padding} backgroundColor={blockItem.backgroundColor} > {blockItem.label} </Block> ); })} </Wrapper> ); } export default Blocks;