안녕하세요 강의 잘 듣고 있습니다. fetch-book.ts를 만든 후, index.tsx에 불러와서 console.log(allBooks) 를 찍어봐도 빈 배열만 나와서 localhost:12345/book 이 api 주소로 들어가보면 해당 오류가 떠서 혹시 .env 파일이 잘못 됐나 해서 올바르게 수정을 해도 계속 같은 에러가 떠서 진행을 못 하고 있는 상태입니다 ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 현재 맥북 M2 모델로 강의를 따라가고 있는데 인텔리제이에 변경사항을 저장 후 실행 or 테스트를 진행 시 변경 사항이 적용되지 않는 문제점이 계속 발생하고 있습니다. 따라서, 변경 사항이 생기고 저장한 후 인텔리제이를 계속 껐다가 다시 켜는 방식으로 하고 있는데 너무 불편해서 해결 방법이 있는지 여쭙고 싶어서 글 남깁니다..!
int p = &n; 이면 변수 n의 주소를 p의 값에 넣는 것이라서 p는 주소값이 되고 *p는 p가 가리키고 있는 주소의 값 즉 n의 값이 되는데 int array[] = {10,20,30,40,50}; int *ptr = array;인 상황에서 *ptr은 배열의 첫번째 값을 가리키는 것이면 ptr은 무엇을 갖는 건가요? array의 첫번째 값의 주소를 갖게되나요?
예외 발생 후 ExceptionResolver 에서 ModelAndView에 값을 주지 않고 반환시 뷰를 랜더링하지 않고 WAS에 정상 응답으로 돌아가고 WAS에서는 sendError() 이 호출됐었으니 ErrorPage를 찾고 그에 맞는 요청을 하고 BasicErrorController에서 다시 뷰를 랜더링 할텐데요. 만약에 ModelAndView에 값을 준다면.. ModelAndView가 그 값에 맞는 뷰를 랜더링 하고 화면에 보여준 후 WAS에서 진행한 ErrorPage의 뷰도 보여주는건가요..? 그럼 제가 보는 입장에서는 두개의 화면이 렌더링되어 보게되는 걸까요? 더해서 이것이 맞다면, ModelAndView에서 뷰를 랜더링 해서 이미 처리 완료했는데 sendError 때문에 또 다시 ErrorPage를 처리하기 위해 뷰를 랜더링하는 상황이 좀 이상하게 느껴지는데 이게 정상인가요?
실습 - Vision API 활용 방법 이해에서 아래와 같은 코드를 실행하게 되면 url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" response = client.chat.completions.create( model=Model, messages=[ { "role": "user", "content": [ {"type": "text", "text": "이 이미지의 내용을 설명해줘. 한국어로 설명해줘."}, {"type": "image_url", "image_url": {"url": url}}, ] } ], max_tokens=300, ) response.to_dict() 결과가 아래와 같이 나오는데 {'id': 'chatcmpl-BnxBjLVQUG5mlJJA9i9YhADGfCe2u', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '이미지는 푸른 풀밭과 하늘이 넓게 펼쳐진 풍경을 보여주고 있습니다. 중앙에는 나무 판자로 된 산책로가 놓여 있어 풀밭을 따라 걷는 길처럼 보입니다. 하늘은 맑고 파란색으로 구름이 흩어져 있으며, 주변에는 나무와 덤불이 자생하고 있습니다. 전체적으로 자연의 평화롭고 고요한 분위기를 느낄 수 있는 장면입니다.', 'refusal': None, 'role': 'assistant', 'annotations': []}}], 'created': 1751245291, 'model': 'gpt-4o-mini-2024-07-18', 'object': 'chat.completion', 'service_tier': 'default', 'system_fingerprint': 'fp_62a23a81ef', 'usage': {'completion_tokens': 108, 'prompt_tokens': 36857, 'total_tokens': 36965, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}} max_tokens으로 준 인자값은 completion_token 의 상한 limit를 정하는건가요? prompt_tokens 의 값이 강의의 내용과 비교해서 너무 큰거 같아서 질문을 드리는 겁니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 원리부터 차근차근 설명해주신 덕분에 스프링 소스 코드도 살펴볼 수 있을 것 같습니다. 감사합니다. 다름이 아니라 이 섹션과 다음 섹션을 듣고 나서 학습한 내용을 정리하려고 보니 잘 이해했는지 확실하지 않은 부분이 생겨 질문드립니다. 이해한 바는 다음과 같습니다. FrontController 패턴 도입 동기 많은 컨트롤러에서 사용하는 공통 처리 로직을 보일러플레이트 없이, 누락 없이 사용하기 위함. 궁금한 부분은 다음과 같습니다. 이 문제를 언급하신 필터와 인터셉터로도 해결할 수 있을 것 같은데, 왜 FrontController 패턴을 사용하는지 궁금합니다. 뒤에 호출되는 컨트롤러의 구조가 HttpServlet으로 제한되지 않기 때문이라고 현재 생각하고 있습니다. 스프링에서 공통 로직을 도입할 때 실제로 DispatcherServlet(FrontController)을 확장하는 방식으로 처리하는지도 궁금합니다. 감사합니다.
필터부분은 DispatcherType으로 구분하기때문에 이해를 한 것 같은데.. 인터셉터는 잘 이해를 못했습니다. 인터셉터에서 excludePathPatterns("/css/**", "/*.ico", "/error", "/error-page/**") 하여 경로를 제외했는데요. 그렇다면 첫 요청에서 에러 발생 후 인터셉터 호출은 아예 제외되어야하는 것아닌가요..? 그러니까 6:00 경부터 말씀하시는 전체흐름에서 WAS -> 필터 -> 서블릿 -> 인터셉터 -> 컨트롤러 -> View 가 첫 흐름인데 지금 호출된 로그를 보면 afterCompletion 만 호출된 상황입니다. 이것은 요청 완료 이후 서블릿?에서 호출되는 것으로 기억하고 있는데요. 그런데 인터셉터에서 경로를 제외했으니 afterCompletion 역시 호출 자체가 안되어야 하는 것아닌가요? 지금 강의에선 첫 요청에서의 인터셉터는 호출되고 이후 에러 발생후 요청에서의 인터셉터는 제외 경로 설정대로 로그 출력이 되지 않는데요. 에러가 발생하면 addInterceptors() 와 extendHandlerExceptionResolvers() 은 호출이 안되고 afterCompletion 만 호출되는 것으로 기억하는데, excludePathPatterns() 에서 경로를 아예 제외했으니 그냥 자체가 호출 되지 말아야하는것 아닌지 궁금합니다. 왜 첫 요청에서의 인터셉터는 호출되고 에러 발생 했을 떄의 인터셉터에서만 호출 되지 않는건가요? DispatcherType 은 필터에서만 적용되는 거라 인터셉터에 적용되는 경우는 아닌 것 같은데 말이죠.. 지금 머릿속으로 제대로 정리가 되지않아 질문 이해가 잘 되셨을지 모르겠습니다. 감사합니다. Dis