안녕하세요. 이 강의를 마치고 비동기 spring boot를 공부 하고 있습니다. Reactor이라고 부르던데 mvc와 크게 다른거 같지 않는거 같은데 코딩이 생각 보다 어렵네요.... mvc랑 코딩 자체가 틀림 ... 솔직히 질문드리기가 너무 죄송합니다. 근데 답변 해줄 분이 안계셔서 ..여기에 질문 드리네요 .. . . . . 질문 내용은 @Aspect 이딴걸 왜 하는거냐 입니다. class A 아래 함수에 주석을 원래 하는거지만 주석을 제거 하려면 이걸 Aspect를 해야한다고 하네요.... @GetMapping("/test/mdc") suspend fun testRequestTxid() { // withContext(MDCContext()) { logger.debug { "start MDC TxId" } delay(100) service.mdc() logger.debug { "end MDC TxId" } // } } 이과정이 꽤나 복잡합니다. class B처럼요 class B Mapping을 대신할 어노 테이션을 만드는거 내용이라고 생각 됩니다. classA에 @GetMapping을 하면 아래 class의 hindMdcContext를 사용하게끔 하는거 같아요... 질문 드릴껀 이 과정이 왜 필요한거죠??? 의도가 잘 파악이 안되서요... trance id를 생성하고 class A가 완전히 처리 될때까지 블러킹 하기 위해서 그런거 같은데 이렇게 까지 해야되나 싶네요... 내용은 아직도 파악 중입니다. ^^ 현제 ProceedingJoinPoint가 뭔지 파악 중에 있고요 ... @Aspect class AspectConfig { @Around(""" @annotation(org.springframework.web.bind.annotation.GetMapping) """) fun hindMdcContext(jp: ProceedingJoinPoint): Any? { return if(jp.hasSuspendFunction) { val continuation = jp.args.last() as Continuation<*> val newContext = continuation.context + MDCContext() val newContinuation = Continuation(newContext) { continuation.resumeWith(it)} val newArgs = jp.args.dropLast(1) + newContinuation jp.proceed(newArgs.toTypedArray()) } else { jp.proceed() } } private val ProceedingJoinPoint.hasSuspendFunction: Boolean get() { val method = (this.signature as MethodSignature).method return KotlinDetector.isSuspendingFunction(method) } } 빨리 비동기 강의좀 내주세요 ㅠ.ㅠ 수없는 인강을 들었지만 강사님 만큼 강의 잘하는 강의 못봤어요 ㅠ.ㅠ
리액트 강의를 듣고 스프링부트랑 연동해서 리액트 코드를 짜고 있습니다. 지금 로그인 부분 처리하다가 막혀서 정말 구글링도 해보고 며칠째 하다가 도저히 해결이 안돼서 질문 드립니다. 지금 로그인처리가 되면 sessionStorage에 로그인 회원 정보를 담고 navigate함수를 이용해 Main컴포넌트로 보냈습니다. 근데 다른 컴포넌트들에서도 이 로그인회원 정보를 사용하기 위해 최상위컴포넌트인 App컴포넌트에서 sessionStorage.getItem()해서 state값에 저장하고 그걸 context로 하위 컴포넌트들에게 제공했는데 로그인되고 navigate함수로 Main컴포넌트로 가면 context로 저장한 state값이 null이 되고 새로고침해보면 state값이 잘 들어오더라고요ㅠㅠ 비동기함수인것과 관련있을까요?? 새로고침없이 컴포넌트에서 바로 state값을 이용하고 싶으면 어떻할까요? state값 이용해서 바로 화면에도 렌더링도 해야하는 상황입니다 ㅠㅠ 강의와 관련된 내용은 아니지만 프로젝트를 혼자 만들다보니 잘 안되는 부분이 많아 질문드립니다 !
login 시 let setCookie = response.headers.get('Set-Cookie'); 가져오려고 할 때 response.headers에는 뜨는데 samesite 때문에 cookie를 가져올 수 없습니다. 개발자도구에서 samesite 에러 어떻게 해결할 수 있을까요?? 아래와 같이 수정했는데 같은 오류가 발생합니다. if (setCookie) { const parsed = cookies.parse(setCookie); cookies().set('connect.sid', parsed['connect.sid'], { sameSite: 'None', secure: true }); }
안녕하세요 선생님~ 2.1 강의 5분 30초부터 질문드립니다! 작업 파일에 새로운 폴더를 하나 만들고, 그 폴더를 열어서 선생님과 모든 것을 똑같이 했는데 저는 ` npx create-next-app@14 section02 `라고 치니까 맨 아래 제가 첨부한 것과 같은 에러가 떴어요! gpt 검색해서 `mkdir C:\Users\wlgp1\AppData\Roaming\npm` 경로를 수동으로 하나 만들고 다시 하니까 터미널에서 "뭐 설치해야 하는데 계속할거냐"고 질문해서 y 눌렀더니 그 다음부터 다시 선생님과 동일하게 타입스크립트 사용할 거냐고 질문이 나왔습니다~ (이후 동일) 문제는 해결되었지만, 무엇이 달라서 선생님과 차이가 난 것인지가 궁금합니다! ```PS C:\workspace\onebite-next> npx create-next-app@14 section02 npm error code ENOENT npm error syscall lstat npm error path C:\Users\wlgp1\AppData\Roaming\npm npm error errno -4058 npm error enoent ENOENT: no such file or directory, lstat 'C:\Users\wlgp1\AppData\Roaming\npm' npm error enoent This is related to npm not being able to find a file. npm error enoent npm error A complete log of this run can be found in: C:\Users\wlgp1\AppData\Local\npm-cache_logs\2024-09-30T04_18_06_975Z-debug-0.log```
질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요. 두번째 세번째 출력문이 epuals인데 왜 세번째는 왜 false인지 이해가 안돼요 epuals면 내용만 같은면 true 아닌가요
안녕하세요. 조은님, 강의 잘 듣고 있습니다 :) PPR 적용하기 전에는 서버에 문제가 없었는데, PPR 적용 후 예상치 못한 현상이 발생하여 여러 가지 방법으로 해결해보려고 이것저것 시도하고 있는데 아직 해답이 없네요. PPR 커밋하고 푸쉬한 것을 취소하고 이전 상태로 되돌렸지만, 여전히 에러가 납니다. T_T 지금도 찾아보는 중입니다. 같이 고민해주시면 감사하겠습니다. { "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start" }, "dependencies": { "@types/node": "20.11.17", "@types/react": "18.2.55", "@types/react-dom": "18.2.19", "@vercel/analytics": "^1.1.3", "@vercel/postgres": "^0.10.0", "@vercel/speed-insights": "^1.0.9", "geist": "1.2.2", "next": "^14.2.13", "next-mdx-remote": "^4.4.1", "react": "18.2.0", "react-dom": "18.2.0", "sugar-high": "^0.6.0", "typescript": "5.3.3" }, "devDependencies": { "autoprefixer": "^10.4.20", "postcss": "^8.4.35", "tailwindcss": "3.4.13" } }
선생님~ 안녕하세요 :) 강의 유익하게 잘 듣고 있습니다. 새로 리뉴얼된 섹션 1~12까지 강의 중에, notification 부분이 없어서 질문 드립니다. notification 부분을 들으려면, 이전 강의인 섹션 20으로 대체해야 하는 걸까요? 섹션 13부터는 예전 강의로, Deprecated라고 써져 있는데, notification 사용방법은 그것을 따라하면 되는지 궁금해서 글을 씁니다. 혹시, 달라졌다면 어느 부분을 참고해서 공부하면 좋을지 조언도 조금만 부탁드립니다. ^^
텐트 세우기문제를 풀던 중, 가장 높은 높이를 만날때까지 왼쪽에서 오른쪽으로 진행하고, 이후에는 오른쪽에서 가장 높이를 만날때까지 역순으로 누적합 배열 2개를 만들어서 마지막에 더해서 해결하려고 했는데, 입력 예시랑 백준의 반례들 찾아서 집어넣어봤는데 모두 정상적으로 출력되는데, 제출하니 틀렸다고 나오네요. 하루종일 고민했는데 도저히 모르겠어서 질문 드립니다! #2304 미해결... TC = int(input()) x_list = [] y_list = [] graph = [0]*1001 for _ in range(TC): x, y = map(int, input().split()) graph[x] = y x_list.append(x) y_list.append(y) max_height = max(y_list) prefix = [0] check = 0 for i in range(1, max(x_list)): prefix.append(max(prefix[i-1], graph[i])) if prefix[i] == max_height: check = i break suffix = [0]*(max(x_list)) suffix[-1] = graph[max(x_list)] for i in range(max(x_list)-1, check, -1): if suffix[i] == max_height: break suffix[i-1] = (max(suffix[i], graph[i])) sum = 0 for i in range(len(prefix)): if prefix[i] != 0: sum += prefix[i] for j in range(len(suffix)): if suffix[j] != 0: sum += suffix[j] print(sum)
섹션 3에서 chatgpt api 연결이 안되는거 같아요 python test_ chatgpt.py 를 하면 선생님처럼 되지 않고 이런 오류가 뜹니다. 해결 부탁드립니다... (desktop_venv) C:\desktop>python test_ chatgpt.py Traceback (most recent call last): File "C:\desktop\test_ chatgpt.py ", line 4, in <module> completion = client.chat .completions.create( File "C:\desktop\desktop_venv\lib\site-packages\openai\_utils\_ utils.py ", line 274, in wrapper return func(*args, **kwargs) File "C:\desktop\desktop_venv\lib\site-packages\openai\resources\chat\ completions.py ", line 704, in create return self._post( File "C:\desktop\desktop_venv\lib\site-packages\openai\_base_ client.py ", line 1270, in post return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) File "C:\desktop\desktop_venv\lib\site-packages\openai\_base_ client.py ", line 947, in request return self._request( File "C:\desktop\desktop_venv\lib\site-packages\openai\_base_ client.py ", line 1051, in _request raise self._make_status_error_from_response(err.response) from None openai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided: sk-proj-********************************************************************************************************************************************************ndYA. You can find your API key at https://platform.openai.com/account/api-keys .', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}
① hwp.FindCtrl() 로 표를 선택하려고 할때 단번에 선택되지 않고 표 바로 뒤에 커서를 둬야 선택되는 것 같습니다. ② "날짜 뒤에 요일 붙이기" 파트를 진행하면서 제공해주신 파일과 코드를 그대로 했음에도 표가 선택되지 않아 한글 파일이 열려 있을 때 표 바로 뒤에 커서를 위치시키고 hwp.FindCtrl() 실행하니 표를 선택합니다. 파일을 열었을 때 커서 위치에 상관없이 첫번째 표를 를 정확하게 선택하는 방법이 궁금합니다.
네이버 닭가슴살 크롤링 과제중인데요 html = driver.page_source soup = BeautifulSoup(html, 'html.parser') items = soup.select(".product_item__MDtDF") for item in items: product = soup.select_one(".product_title__Mmw2K > a").text # 상품명 link = soup.select_one(".product_title__Mmw2K > a").attrs['href'] price = soup.select_one(".price_num__S2p_v").text print(product, link, price) 위 코드로 했는데, 가장 첫번째 상품만 출력이 되고있습니다. items = soup.select (".product_item__MDtDF") 이 코드 확인시에는, 전체 상품이 출력된것은 확인했는데 for문에서 문제가 생긴것인가요..? #파이썬