수정페이지의 작성완료 누를떄 에러가 납니다
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Edit 페이지 구현하기 챕터의 작성완료 누를때 에러가 나는데 이유를 모르겠어요 https://github.com/dajungleee/section12 확인 한번 부탁드려요ㅠㅠ
- javascript
- react
- node.js
173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Edit 페이지 구현하기 챕터의 작성완료 누를때 에러가 나는데 이유를 모르겠어요 https://github.com/dajungleee/section12 확인 한번 부탁드려요ㅠㅠ
미해결
[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
섹션2 [데이터베이스와 RDBMS] 수강을 하면서 다운받은 강의 자료를 보려고 열면 다음과 같이 삽입된 이미지가 보이지 않습니다. 어떻게 해결할 수 있을까요?
해결됨
코딩테스트 [ ALL IN ONE ]
안녕하세요! 코딩테스트 첫 입문을 강사님 강의로 기초부터 잘 준비해보려고 열심히 강의 듣고 있는 코린이입니다 :) List부터 차근히 듣고 있는 중인데.. 아직 생소해서 최대한 코딩을 많이 작성해보면서 익숙해지고 문제풀이하고싶은데 강의에서 문제풀이하면서 코딩을 작성하라고 하셨는데 구체적으로 어떤 툴로 사용해야하고(VS Code? 리트코드?) 어떤 식으로 문제풀이(코딩)를 하고 공부 해야 할지 방향을 모르겠어서 여쭤보고 싶어요ㅠㅠ
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 환경은 윈도우 환경입니다. C:\Users\user\Desktop\study\hello-spring>gradlew.bat 이후 build successful in 8s 까지 확인하고 cd build로 이동하여 dir /ad를 하면 C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: E456-7A80 C:\Users\user\Desktop\study\hello-spring\build 디렉터리 2024-09-02 오전 08:56 <DIR> . 2024-09-02 오전 07:56 <DIR> .. 2024-09-02 오전 07:56 <DIR> classes 2024-09-02 오전 07:56 <DIR> generated 2024-09-02 오전 08:56 <DIR> libs 2024-09-02 오전 08:56 <DIR> reports 2024-09-02 오전 07:56 <DIR> resources 2024-09-02 오전 08:56 <DIR> test-results 2024-09-02 오전 08:56 <DIR> tmp 0개 파일 0 바이트 9개 디렉터리 265,771,782,144 바이트 남음 이렇게 뜹니다. 이러한 이유로 뒤 진행이 되지 않고 있습니다. 제가 놓친 부분이나 추가로 확인해야 하는 상황이 있을까요
미해결
ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
SQL Server 2022 설치 시 오류가 발생합니다 -------------------------------------------------- 처음 설치했을 때 오류가 발생해서... 레지스트리도 지워보고... 구글링을 통해 삭제 후 재설치를 진행하려고 했으나 위와 같은 문제가 발생하고 있습니다..... 어떻게 해야합니까....ㅠㅠㅠㅠ 강사님 도와주십시오 . 애러 메세지는 너무 길어서 ... 어떻게 보내드려야 할지 모르겠습니다
미해결
파이썬 보안 자동화 업무 개발과 OpenAI API 업무 적용
라이브러리 다운 받고 강의에 나온 코드 똑같이 작성하여 실행했는데 계속 이 오류 뜨네요 ㅠㅠ pi
해결됨
Azure Native로 나만의 GPT 만들기
안녕하세요. 좋은 강의 잘 듣고 있습니다. 프런트와 Pub/Sub연결하기 강의를 듣고 있는데 아래와 같은 문제가 발생하였습니다. 시간 되실 때 확인해 주시면 감사하겠습니다. 빠른 시작 WebSocket API로 서비스에 연결하고 Pub/Sub 시작 -> 2개 새탭 열고 각 url 입력 후 메세지 상호작용 확인. front 소스 코드 적용 후 아래 이미지와 같이 정상적 연결 성공 뜸. front페이지 새로 고침 이 후 url 입력 한 창에서 메세지 입력하여도 front페이지개발자 도구의 console에서는 변화가 없음. data가 있는 json 메세지를 받아야 하는데 변화가 없네요. 유료강의로 상용화 가능한 azure기반 chatbot강의도 해주시면 감사하겠습니다.
해결됨
한 입 크기로 잘라먹는 Next.js
안녕하세요, 선생님! 강의를 듣다가 startTransition에 대해 더 찾아봤는데, startTransition()은 우선순위가 낮은 상태 업데이트나 비동기 작업을 처리할 때, 고우선순위 비동기 작업보다 나중에 실행되도록 하는 함수라고 이해했습니다. 그런데, startTransition()이 비동기 작업을 동기적으로 처리하도록 사용된다는 이야기는 찾지 못했습니다. startTransition()을 비동기 작업을 동기적으로 처리하기 위해 사용해도 괜찮은 건가요?
미해결
Slack 클론 코딩[실시간 채팅 with React]
안녕하세요. 강의에서 배운 내용 응용해서 사이드 프로젝트 만드는 중인데 Module not found: Error: Can't resolve './App' in '/Users/taetae/Documents/github/PicKIvy/frontend/src' 오류가 고쳐지지 않아 질문드립니다. (시도해본 해결방법들) [ Tsconfig.json ] “jsx": "react-jsx" 으로 설정됐는지 확인 -> 그래도 안됌 “paths" 확인 > "baseUrl": "src", (원래 “.”이었음) "paths": { "@pages/*": ["pages/*"], "@components/*": ["components/*"], "@layouts/*": ["layouts/*"], "@hooks/*": ["hooks/*"], "@utils/*": ["utils/*"], "@typings/*": ["typings/*"] }, 패스에 전부 src/붙여서 "@pages/*": [“src/pages/*"], 해봤는데 안됨 “moduleResolution": "node", 확인 -> 그래도 안됌 [ Web pack.config] Extensions: [ “.tsx”] 으로 설정됐는지 확인 -> 그래도 안됌 package-lock.json지우고 다시 Npm install 안됌 ( rm -rf node_modules package-lock.json -> npm cache clean --force -> npm install ) [ index.tsx ] import App from './App'; 을 import App from './App.tsx; ‘ 로 해봤는데 안됌 [ 폴더구조, tsconfig ] [ 웹팩 ] import path from 'path'; import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin'; import webpack, { Configuration as WebpackConfiguration } from 'webpack'; import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; // import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; import { Configuration as WebpackDevServerConfiguration } from 'webpack-dev-server'; interface Configuration extends WebpackConfiguration { devServer?: WebpackDevServerConfiguration; } const isDevelopment = process.env.NODE_ENV !== 'production'; const config: Configuration = { name: 'PicKivy', mode: isDevelopment ? 'development' : 'production', devtool: isDevelopment ? 'inline-source-map' : 'hidden-source-map', resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'], alias: { '@hooks': path.resolve(__dirname, 'src/hooks'), '@components': path.resolve(__dirname, 'src/components'), '@layouts': path.resolve(__dirname, 'src/layouts'), '@pages': path.resolve(__dirname, 'src/pages'), '@utils': path.resolve(__dirname, 'src/utils'), '@typings': path.resolve(__dirname, 'src/typings'), }, }, entry: { app: './src/index.tsx', }, target: ['web', 'es6'], module: { rules: [ { test: /\.tsx?$/, loader: 'babel-loader', exclude: /node_modules/, options: { presets: [ [ '@babel/preset-env', { targets: { browsers: ['> 0.25%', 'not dead'] }, // 최신 브라우저 타겟팅 debug: isDevelopment, }, ], '@babel/preset-react', '@babel/preset-typescript', ], plugins: [ '@babel/plugin-transform-runtime', isDevelopment && 'react-refresh/babel', '@emotion/babel-plugin', ].filter(Boolean), }, }, { test: /\.css$/, use: ['style-loader', 'css-loader'], }, { test: /\.(png|jpg|gif|svg)$/, type: 'asset/resource', }, ], }, plugins: [ new ForkTsCheckerWebpackPlugin({ async: false, }), new webpack.EnvironmentPlugin({ NODE_ENV: isDevelopment ? 'development' : 'production' }), ], output: { path: path.join(__dirname, 'dist'), filename: '[name].[contenthash].js', publicPath: '/dist/', }, devServer: { historyApiFallback: true, port: 3000, devMiddleware: { publicPath: '/dist/' }, static: { directory: path.resolve(__dirname, 'public') }, proxy: { '/api/': { target: 'http://localhost:3000', changeOrigin: true, ws: true, }, }, }, }; if (isDevelopment && config.plugins) { config.plugins.push(new webpack.HotModuleReplacementPlugin()); config.plugins.push( new ReactRefreshWebpackPlugin({ overlay: { useURLPolyfill: true, }, }), ); // config.plugins.push(new BundleAnalyzerPlugin({ analyzerMode: 'server', openAnalyzer: false })); } if (!isDevelopment && config.plugins) { config.plugins.push(new webpack.LoaderOptionsPlugin({ minimize: true })); // config.plugins.push(new BundleAnalyzerPlugin({ analyzerMode: 'static' })); } export default config; 코드 복붙하니까 코드가 이상하게 나와서 캡쳐본도 올립니다. (test: /\.tsx? 아래부분부터) [ App, index ] @page 하니까 에러떠서 ./로 했습니다. 이것때문에 계속 못하고 있는데 저에게 답을 알려주시면 감사하겠습니다...ㅠ.ㅜ
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
git도 다운받았고 터미널도 git bash가 작동이 됩니다. 근데 husky 다운이 안되네요. .git can't be found 따라하는데 계속 이 문장만 자꾸 뜹니다. 그래서 인강에 나온 방법처럼 하지 않고 학습자료에 나와있는거 처럼 따라했는데 괜찮나요? 학습자료 방법으로 해도 괜찮나요 추가 질문) git 을 계속 재설치해서 husky를 깔아도 .git can't be found만 뜨는데요. 왜그런걸까요
미해결
Airflow 마스터 클래스
강의 내용대로 진행하여 dag파일 수행 시 아래와 같은 오류가 뜹니다.ㅠ 해결방법 알려주세요!! credential 에러인 듯한데, IMAP설정, 앱 비밀번호 설정, yaml파일 수정은 모두 완료했었습니다.! 6645fe320334 *** Found local files: *** /opt/airflow/logs/dag_id=dags_email_operator/run_id=manual__2024-09-01T09:02:54.442821+00:00/task_id=send_email_task/attempt=1.log [2024-09-01, 09:02:58 UTC] {local_task_job_ runner.py:123 } ▶ Pre task execution logs [2024-09-01, 09:02:59 UTC] {warnings.py:112} WARNING - /home/ **/.local/lib/python3.12/site-packages/***/utils/email.py:155: RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) [2024-09-01, 09:02:59 UTC] {email.py:272} INFO - Email alerting: attempt 1 [2024-09-01, 09:03:00 UTC] {taskinstance.py:3301} ERROR - Task failed with exception Traceback (most recent call last): File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 767, in execute task result = execute callable(context=context, **execute_callable_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 733, in execute callable return ExecutionCallableRunner( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper return func(self, args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/email.py", line 79, in execute send_email( File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 80, in send_email return backend( ^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 155, in send_email_smtp send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 282, in send_mime_email smtp_conn.login(smtp_user, smtp_password) File "/usr/local/lib/python3.12/smtplib.py", line 739, in login (code, resp) = self.auth( ^^^^^^^^^^ File "/usr/local/lib/python3.12/smtplib.py", line 641, in auth response = encode_base64(initial_response.encode('ascii'), eol='') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 26: ordinal not in range(128) [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task instance in failure state [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task start:2024-09-01 09:02:59.026829+00:00 end:2024-09-01 09:03:00.894255+00:00 duration:1.867426 [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task:<Task(EmailOperator): send_email_task> dag:<DAG: dags_email_operator> dagrun:<DagRun dags_email_operator @ 2024-09-01 09:02:54.442821+00:00: manual__2024-09-01T09:02:54.442821+00:00, state:running, queued_at: 2024-09-01 09:02:54.472998+00:00. externally triggered: True> [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Failure caused by 'ascii' codec can't encode character '\xa0' in position 26: ordinal not in range(128) [2024-09-01, 09:03:00 UTC] {taskinstance.py:1225} INFO - Marking task as FAILED. dag_id=dags_email_operator, task_id=send_email_task, run_id=manual__2024-09-01T09:02:54.442821+00:00, execution_date=20240901T090254, start_date=20240901T090259, end_date=20240901T090300 [2024-09-01, 09:03:00 UTC] { taskinstance.py:340 } ▶ Post task execution logs
미해결
Python Streamlit을 활용한 대시보드 만들기 (feat. 빅데이터 분석기사 실기 준비)
안녕하세요 선생님 생각했던것보다 훨씬 다양한 컨텐츠를 배우다보니 정말 좋은것 같습니다. 다만 세팅 부분에서... 강의에서 진행된 부분대로 동일하게 따라해보았는데 일부 활성화가 안되는 듯하여 문의 드립니다. [강의명 : Github Actions, Python Script 예제] gcp ssh와 깃헙 레포지토리 연동 관련해서... main.py 파일 변경 실습 진행중인데 캡쳐 상태의 에러와 같이 에러가 뜨고 main.py 파일을 읽었을때도 아무런 내용이 읽히지 않아서 혹시 실습중 잘못한 부분이 있나 문의드립니다. "error: The following untracked working tree files would be overwritten by merge: main.py Please move or remove them before you merge." [강의명 : Miniconda 시스템 환경설정, Windows11 ] miniconda 설치후 Powershell에서 "Get-ExecutionPolicy" Unrestricted 로 변경 후 conda activate / conda activate base 명령후 (base)로 변하지 않아서 그 다음 강의 실습인 VSCODE 내 Powershell에서 conda 가 활성화 되지 않는데 혹시 놓친 부분이 없나 궁금합니다.
미해결
[개정판] 파이썬 머신러닝 완벽 가이드
안녕하세요. 교수님 너무 좋은 강의 잘 듣고 있습니다. 바쁘실텐데 바로바로 답변해주셔서 너무 감사드려요^^ Bike Sharing Demend 예제소스 에러 질문이 있어서요.. 최근에 설치했는데.. 에러가 많이나서 사이킷런 1.0.2 파이썬 3.9.18으로 다운그레이했습니다. 넘파이는 몇버전으로 해야 할까요? 아래는 에러내용입니다. [ 로그 변환, 피처 인코딩, 모델 학습/예측/평가 ] from sklearn.model_selection import train_test_split , GridSearchCV from sklearn.linear_model import LinearRegression , Ridge , Lasso y_target = bike_df['count'] X_features = bike_df.drop(['count'],axis=1,inplace=False) X_train, X_test, y_train, y_test = train_test_split(X_features, y_target, test_size=0.3, random_state=0) lr_reg = LinearRegression() lr_reg.fit(X_train, y_train) pred = lr_reg.predict(X_test) evaluate_regr(y_test ,pred) 에러 --------------------------------------------------------------------------- DTypePromotionError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_19124\3974685920.py in <module> 11 lr_reg = LinearRegression() 12 ---> 13 lr_reg.fit(X_train, y_train) 14 pred = lr_reg.predict(X_test) 15 D:\dev03\anaconda\lib\site-packages\sklearn\linear_model\_base.py in fit(self, X, y, sample_weight) 660 accept_sparse = False if self.positive else ["csr", "csc", "coo"] 661 --> 662 X, y = self._validate_data( 663 X, y, accept_sparse=accept_sparse, y_numeric=True, multi_output=True 664 ) D:\dev03\anaconda\lib\site-packages\sklearn\base.py in _validate_data(self, X, y, reset, validate_separately, **check_params) 579 y = check_array(y, **check_y_params) 580 else: --> 581 X, y = check_X_y(X, y, **check_params) 582 out = X, y 583 D:\dev03\anaconda\lib\site-packages\sklearn\utils\validation.py in check_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, estimator) 962 raise ValueError("y cannot be None") 963 --> 964 X = check_array( 965 X, 966 accept_sparse=accept_sparse, D:\dev03\anaconda\lib\site-packages\sklearn\utils\validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator) 663 664 if all(isinstance(dtype, np.dtype) for dtype in dtypes_orig): --> 665 dtype_orig = np.result_type(*dtypes_orig) 666 667 if dtype_numeric: DTypePromotionError: The DType <class 'numpy.dtypes.
해결됨
실무에 바로 적용하는 스토리북과 UI 테스트
스토리북 자체에 Action 탭 오른쪽에 Visual Test라는 탭이 있는걸 확인했습니다. <Chromatic을 활용한 Visual 테스트> 강의와 같은 내용을 기능인가 해서 여쭤봅니다! 같은 기능인데 좀 더 확인하기 쉽게 탭으로 스토리북에서 제공하고있는건가 해서요..ㅎㅎㅎ
미해결
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네! 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네! 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네! [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요! mvc2 9chapter (API 예외 처리) API 예외 처리 - API 예외 처리 - HandlerExceptionResolver 시작 에서의 의문점 입니다. 해당 부분에서는 IllegalArgumentException이 컨트롤러단에서 발생할 경우 Resolver를 이용해 정상흐름으로 만든 뒤 sendError를 호출하고 있는데요 @Slf4j public class MyHandlerExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try { if (ex instanceof IllegalArgumentException) { log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST); return new ModelAndView(); } } catch (IOException e) { log.error("resolver ex", e); } return null; } } 그에 따른 api 호출 결과는 다음과 같습니다. { "timestamp": "2024-08-31T18:06:36.410+00:00", "status": 400, "error": "Bad Request", "exception": "java.lang.IllegalArgumentException", "message": "잘못된 입력 값", "path": "/api/members/bad" } resolver는 컨트롤러 단에서 예외가 발생했을 때 그 예외를 해결하고 새로운 결과를 만드는 것 이라고 학습하였습니다. 'IllegralArgumentException 예외를 해결' 하고 'sendError(400)'으로 새로운 결과를 만들어 내었다고 생각하였는데 json 결과에서 status가 400으로 바뀌긴 하였지만, IllegralArumentException에 대한 exception과 message가 나와있는 것을 확인해 볼 수 있었습니다. resolver에서 '예외를 해결' 하였으니 exception 필드과 message 필드는 없어야 한다고 생각하는데 어떤 메커니즘에 의해 저 json 결과가 나왔는지가 궁금합니다. 좋은 강의 만들어 주셔서 항상 감사드립니다.
해결됨
한 입 크기로 잘라먹는 Next.js
안녕하세요. 4.1) 앱 라우터의 데이터 페칭 강의를 수강하고 build를 진행했는데 Generating static pages (0/6) [ ] ⨯ useSearchParams() should be wrapped in a suspense boundary at page "/". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout 이런식으로 오류메시지가 출력돼서 메시지에 있는 공식문서를 참고하여 아래와 같이 searchbar.tsx를 수정하였는데요. // searchbar.tsx "use client"; import { Suspense, useEffect, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import style from "./serachbar.module.css"; function Search() { const router = useRouter(); const searchParams = useSearchParams(); const [search, setSearch] = useState(""); const q = searchParams.get("q"); useEffect(() => { setSearch(q || ""); }, [q]); const onChangeSearch = (e: React.ChangeEvent<HTMLInputElement>) => { setSearch(e.target.value); }; const onSubmit = () => { if (!search || q === search) return; router.push(`/search?q=${search}`); }; const onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => { if (e.key === "Enter") { onSubmit(); } }; return ( <div className={style.container}> <input value={search} onChange={onChangeSearch} onKeyDown={onKeyDown} /> <button onClick={onSubmit}>검색</button> </div> ); } export default function Searchbar() { return ( <Suspense> <Search /> </Suspense> ); } 이런식으로 Suspense로 감싸줬는데도 동일한 오류메시지가 출력돼서 해결방법을 검색해보다가 // loading.tsx import React from "react"; export default function Loading() { return <div>Loading...</div>; } app 폴더 아래에 loading.tsx 파일을 생성하니 정상적으로 build가 되었습니다. 공식문서를 참고하여 Suspense를 감싸줬는데도 해결이 되지 않은 이유가 궁금합니다! 강사님께서 따로 Suspense 관련 언급을 안하신 건 next버젼과 관련이 있을까도 싶어 package.json 파일도 함께 첨부합니다. // package.json { "name": "section04", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint" }, "dependencies": { "react": "19.0.0-rc-f994737d14-20240522", "react-dom": "19.0.0-rc-f994737d14-20240522", "next": "15.0.0-rc.0" }, "devDependencies": { "typescript": "^5", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", "eslint-config-next": "15.0.0-rc.0" } } 답변해주시면 감사하겠습니다!! 그리고 혹시 다른 강의도 찍으실 계획이 있는지 궁금합니다! ㅎㅎ 강의 너무 잘 듣고 있습니다 좋은 강의 감사합니다!!^^
미해결
스프링 DB 2편 - 데이터 접근 활용 기술
[질문 내용] 안녕하세요. 강의와 조금 다른 주제일 수 있으나 도움을 얻을 수 있지 않을까 하여 질문 남깁니다!! 토이 프로젝트 진행중 사용자의 최근 접속시간을 주기적으로 업데이트 시킬 필요가 있어 Spring Security 인가 필터에서 현재 로그인한 유저의 최근 접속시간을 업데이트하는 쿼리를 날리도록 작성했습니다. 이 때 Deadlock이 발생하였습니다. 현재까지 제가 찾아본 바로는 DispatcherServelt 전에는 톰캣 스레드가 락을 점유하고 이후에는 IO 스레드가 락을 점유하여 그렇다는 정보를 찾을 수 있었는데요. 정확히 이해가 안가 여기에 여쭤봅니다 ㅠㅠ. 데드락이 발생하는 원인에 어떤것이 있을까요? 참고로 인가 필터에서는 jpa 리포지토리를 의존성 주입받아 사용해서 쿼리를 날렸습니다. (현재는 이 방법 자체가 데르락을 떠나 비효율적이라 판단하여 AOP로 해결한 상태입니다. 사실 이것도 효율적인 방법인지는 잘 모르겠습니다...)
미해결
코드로 배우는 React 19 with 스프링부트 API서버
엔티티 클래스 만들기 챕터에서 테이블 왜 두개 만들어진 건가요? 엔티티 클래스 만들기 챕터 8분 36초에서 테이블이 왜 두개 만들어 졌나요?
해결됨
실무에 바로 적용하는 스토리북과 UI 테스트
NavigationBar 강의를 시청했습니다. 배경색을 작성하지 않으시던데 그렇게 하신 이유가 있으신가요?
해결됨
실무에 바로 적용하는 스토리북과 UI 테스트
IconButton의 경우 alt에만 defaultValue를 작성하시던데 iconPath는 작성하지 않으시는 특별한 이유가 있으신가요? 어떤 기준으로 defaultValue 작성 여부를 판단하시는지도 궁금합니다!