안녕하세요! 강의 잘 듣고 있습니다! suspense태그 관련 질문이 있습니다! 5.2 풀 라우트 캐시2 강의에서 저희가 useSearchParams() 훅이 빌드타임에서 실행되는 오류를 없애기 위해 <SearchBar/ > 컴포넌트를 suspense로 감싸잖아요 이때 강의 4분45초 쯤에서 사전 suspense를 사용해서 이제 사전 렌더링 과정에서 완전히 배제한다고 하셨는데, 그러면 페이지를 만들때 suspense로 감싼 컴포넌트는 nextjs app router방식이 아니라 csr방식으로 구현이 되는건가요 나머지 컴포넌트들만 approuter의 사전 렌더링 방식으로 구현이 되는건가요?? 제가 정리했을땐 동적 페이지도 정적 페이지도 사전렌더링의 시점은 다르지만 (요청할때, 빌드할때) 사전렌더링이라는 기능은 nextjs에서 기본으로 작동한다고 알고 있습니다! 그래서 사전렌더링에서 완전 배제된다는 부분이 헷갈려서 질문 남깁니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] API 예외 처리.pdf 강의 자료에서 아래 내용에 대해 문의드립니다. "지금까지 다음 ExceptionResolver 들에 대해 알아보았다. ExceptionHandlerExceptionResolver → 다음 시간에 ResponseStatusExceptionResolver → HTTP 응답 코드 변경 DefaultHandlerExceptionResolver → 스프링 내부 예외 처리 지금까지 HTTP 상태 코드를 변경 하고, 스프링 내부 예외의 상태 코드를 변경 하는 기능도 알아보았다. 그런데 HandlerExceptionResolver 를 직접 사용하기는 복잡하다 . API 오류 응답의 경우 response 에 직접 데이터를 넣어야 해서 매우 불편하고 번거롭다. ModelAndView 를 반환해야 하는 것도 API에는 잘 맞지 않는다. 스프링은 이 문제를 해결하기 위해 @ExceptionHandler 라는 매우 혁신적인 예외 처리 기능을 제공 한다. 그것이 아직 소개하지 않은 ExceptionHandlerExceptionResolver 이다." 이때까지 ResponseStatusExceptionResolver, DefaultHandlerExceptionResolver에 대해 공부했습니다. 관련 애노테이션을 붙이거나, 관련 예외 클래스 (ex REsponseStatusException 등) 을 사용하면 스프링이 자동으로 예외 코드 및 메시지를 설정해서 예외 처리해주는 걸로 이해했습니다. DefaultHandlerExceptionResolver는 애초에 스프링 내부적으로 발생한 예외 처리이므로 개발자가 별도 구현할 필요가 없고요... 그런데 갑자기 " HandlerExceptionResolver 를 직접 사용하기는 복잡하다 . API 오류 응답의 경우 response 에 직접 데이터를 넣어야 해서 매우 불편하고 번거롭다." 이 얘기가 나온 맥락이 이해가 가질 않습니다. 혹시 ResfponseStatusExceptionResolver, DefaultHandlerExceptionResolver를 사용하기 위해서는 HandlerExceptionResolver를 직접 구현 해야하나요? 전 강의에서 HandlerExceptionResolver 인터페이스를 구현한 구현체 클래스도 실행됐다고 생각해야하나요? 제가 지금 강의 쭉 듣고나서, 자료 보면서 다시 복습 중이라.. 조금 기억이 가물 가물하네요 ㅠㅠㅠ
선생님 코드에서 ret의 초기값을 -1000000 으로 주셨는데 이유가 궁금합니다. 만약 n이 100000, k가 99999, 모든 temp가 -100일 때 0~99999까지 더하면 -1000000보다 작은 값이 나오게 되어 최대 값을 제대로 못찾을거같은데 어떻게 코드가 통과한 것인지 궁금합니다.
제가 어도비의 다른 버전을 사용하고 잇어서 그런지 오른쪽 상단 위의 설정이 안되어잇어서 직접 찾아야 하더라고요. 근데 또 버전이 다르다보니 그 설정 하나하나가 안보이더라고요. 예: stroke, transparency. 그래서 도저히 진도를 따라갈수가 없어요. 혹시 해결책이 잇을까요?
일단 서로 주소가 다른다는것은 알겠습니다. 헤더 파일에서 선언과 define 을 했을 경우 각각 cpp 파일에서 주소가 다르게 나왔다.. 이지만 my_constants.cpp 에서 define 을 하고 헤더 파일에는 declaration 만 했을경우 서로 같은 주소가 나오는이유를 잘모르겠습니다. 혹시 추가로 설명을 들을수 있을까요?
try { getLock("쿠폰발급"); issueCoupon(); <- @Transactional(propagation = Propagation.REQUIERS_NEW) } finally { releaseLock("쿠폰발급"); } 의 형태로 되어있다면, issueCoupon(); 메소드를 호출 할 때, Propagation.REQUIERS_NEW) 로 새로운 transaction 생성으로 인해 DB Connection을 확보하려 했지만 쿠폰 발급 요청이 몰려 DB namedLock 대기가 기존 connectionPool을 모두 차지하고 있어 timeout이 발생했다면, releaseLock에 기존 대기상태로 변환 트랜잭션이 실행되지 못 할 가능성이 존재할까요? connectionTimeout 시간은 짧지만, namedLock 획득을 위한 대기 시간이 10분으로 되어있다고 가정하게 된다면 deadLock이 어디서 발생할 지 궁금합니다. 제가 생각한 건 issueCoupon(); 을 호출하면서 connecionPool 부족으로 인한, 기존의 getLock() 에 사용된 connectionPool이 대기 상태가 되면서 반환되고, 쿠폰 발급이 진행되고 이후 releaseLock()을 호출해야 하지만 connectionPool을 재확보하지 못 하고 Lock을 해제하지 못해 Lock 점유 시간동안 DeadLock 발생 issucoupon(); 에서 connectionPool을 확보하지 못해 timeoutException이 발생했지만 rollbackFor = Exception.class 로 인해 rollback을 위한 connectionPool()을 확보하기 위한 대기로 인한 DeadLock 발생 아직 기초 지식이 부족해 어떻게 deadLock이 발생하는지 모르겠습니다. 도움 부탁드립니다.
안녕하세요, 큰돌님. http://boj.kr/f7198ad0aa0740abb6a3d6f9cb33c43e 2-H 에서 입력 받은 s가 "a" 같은 하나의 문자일 때 런타임 에러가 떴습니다. 계속 수정하다 보니 모음 or 자음 3개 연속 조건 부분의 코드 문제인 것 같았습니다. for(int i = 0; i < s.size() - 2; i ++) 그래서 s가 하나의 문자일 때를 나눠서 계산하였습니다. // s가 문자일 때 if(s.size() == 1) 이렇게 하니 맞긴 했는데 코드가 너무 난잡해진 것 같습니다... 기존 방식의 런타임 에러의 이유 제 코드보다 더 좋은 해결 방안이 있을까요?
수업 자료 중에 Half Height가 캡슐의 반구 부분을 제외한 몸통 부분의 절반 높이라고 표현되어있고, 수업 코드상 수치도 그렇게 계산 된 것으로 보입니다. 하지만 아무리 테스트해 봐도 판정 범위와 다른것 같아 테스트 결과와 함께 질문드립니다. 위 사진은 수업 코드와 그 실행 결과입니다. NonPlayer의 캡슐와 닿지 않아도 충돌 처리 된 모습입니다. 아래 사진은 Half Height에 캡슐의 반구 크기를 포함 시킨 수치를 적용한 코드와 그 실행 결과입니다. 그려진 캡슐과 정확히 겹칠 때 충돌 처리된 모습입니다. 그래서 아래의 자료에서 초록색으로 표기한 길이가 Half Height인지, 혹은 수업 자료의 Half Height는 맞지만 DrawDebugCapsule함수의 인자만 초록색 표기된 부분으로 사용하는 것인지 질문드립니다!!
vercel 빌드를 했는데, 이렇게 에러 메시지가 나오는데 뭐가 문제인지 찾지 못했습니다. vercel 페이지에서도 빌드로그를 보면 아래와같이 나오는데요. npm run build 했을때 정상적으로 노출되고, 오류 메시지가 없어서 정상배포될 줄알았는데 안되네요.ㅠ x Build failed in 181ms 18:15:46.529 error during build: 18:15:46.530 Could not resolve "./pages/NotFound" from "src/App.jsx" 18:15:46.530 file: /vercel/path0/src/App.jsx 18:15:46.530 at getRollupError (file:///vercel/path0/node_modules/rollup/dist/es/shared/parseAst.js:397:41) 18:15:46.530 at error (file:///vercel/path0/node_modules/rollup/dist/es/shared/parseAst.js:393:42) 18:15:46.530 at ModuleLoader.handleInvalidResolvedId (file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:21111:24) 18:15:46.530 at file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:21071:26 18:15:46.544 Error: Command "npm run build" exited with 1
안녕하세요! 혹시 타이포그래피 베리어블 스타일을 지정했을때 line height를 1.4로 계산해서 지정했는데, 작업하다보니 1.2로 더 줄여야 하는 상황이 생긴다면 디자인 시스템 자체를 바꿔서 1.2로 적용해야하나요? 아니면 해당 작업물만 로컬로 별도 타이포그래피 지정해서 해야할까요? 다른 속성값들보다 Line height는 프로젝트 스타일에 따라 스타일로 정해놨어도 값이 조정이 되어야 할때가 발생해서 이런 경우의수는 어떤식으로 대응하는게 좋을지 의견 여쭤보고싶습니다. 베리어블값이 weight나 line height 와 같은 값들을 primitive에 지정해놓고, semantic에서 다양하게 참조해서 쓸 수 있다고 생각해서 확장성이 있는것 같은데, 만약에 로컬 타이포그래피에 베리어블을 참조해놓았고 (heading 4xl는 line height 56이라면) 이 값으로 개발팀에 공유가 됐다면 이후에 line height베리어블 참조값을 50 이렇게 바꿀때 개발팀에 공유를 매번 별도로 해야하는거죠? 마지막으로, color는 로컬 스타일을 지워주셨는데 타이포그래피는 로컬에 베리어블을 다 적용하고 로컬 스타일을 지우지 않는 이유가 무엇인가요?
강의에서 나온 내용 중 pd.get_dummies를 제외하고 동일하게 했는데 RandomForestClassifier로 모델링을 하려고 하니 아래와 같은 오류가 나타납니다 : Unknown label type: unknown. Maybe you are trying to fit a classifier, which expects discrete classes on a regression target with continuous values.
안녕하세요! 혹시 타이포그래피 베리어블 스타일을 지정했을때 line height를 1.4로 계산해서 지정했는데, 작업하다보니 1.2로 더 줄여야 하는 상황이 생긴다면 디자인 시스템 자체를 바꿔서 1.2로 적용해야하나요? 아니면 해당 작업물만 로컬로 별도 타이포그래피 지정해서 해야할까요? 다른 속성값들보다 Line height는 프로젝트 스타일에 따라 스타일로 정해놨어도 값이 조정이 되어야 할때가 발생해서 이런 경우의수는 어떤식으로 대응하는게 좋을지 의견 여쭤보고싶습니다. 베리어블값이 weight나 line height 와 같은 값들을 primitive에 지정해놓고, semantic에서 다양하게 참조해서 쓸 수 있다고 생각해서 확장성이 있는것 같은데, 만약에 로컬 타이포그래피에 베리어블을 참조해놓았고 (heading 4xl는 line height 56이라면) 이 값으로 개발팀에 공유가 됐다면 이후에 line height베리어블 참조값을 50 이렇게 바꿀때 개발팀에 공유를 매번 별도로 해야하는거죠?
안녕하세요, 이케아 어린이 의자를 만드는 과정에서 강의에서는 필릿코너를 줄때 필릿 반지름 설정으로 바로 넘어가는데 저 같은 경우는 반지름 혹은 첫번째 거리 포인트 설정으로 넘어가서 동일하게 적용이 안됩니다. 이럴 경우 어떻게 강의와 동일하게 필릿코너 설정을 주어야하나요?
점을 지워서 반원으로 만들기>어플라이 all transform, scale하기> 미러모디파이어> 섭디비모디파이어 이 순서로 진행했는데요,, 저 원 중간에 각이 왜 생기는 걸까요..? 클리핑을 활성화 하거나 merge값을 키워도 해결이 안되네요 ㅜ 어플라이가 문제인가 싶어 어플라이 없이 진행해도 결과가 같아요 제가 설정창을 잘못 건드린 걸까요..? 이전에 미피 얼굴 만들때엔 스무스한 원이었는데 미러하면 자꾸 각이 생기게 되네요