inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

ExexutorService invokeAny() 메서드 질문

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 invokeAny 메서드 실행시 어떨 때는 인터럽트 예외가 발생하고 어떨 때는 발생하지 않고 모든 task가 완료 되고 있습니다. 스레드가 한번에 모두 실행이 완료돼서 그런걸까요 아니면 제가 코드를 잘못 작성했을까요? 읽어주셔서 감사합니다. 여기에 질문 내용을 남겨주세요.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
선넘준 댓글 2 좋아요 0 조회수 146

ViewResolver 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 강사님과 똑같이 코드를 짯는데 저는 실행이 돼지 않습니다. ViewResolver setup!이라고 문구가 발생하는데 어떤 부분을 확인해야할까요 강사님과 같은 JAVA 및 HTML 파일 작성 실행했으나 500 ERROR 발생 파일의 경로 및 소스코드 확인했으나 이상 없음

  • java
  • spring
  • mvc
  • spring-boot
jeongho lee 댓글 2 좋아요 0 조회수 234

jsx 코드 작성해보기에서 index.js 수정 후 에러 뜹니다.

미해결

처음 만난 리액트(React)

ERROR in ./src/chapter_03/Library.jsx 5:0-24 Module not found: Error: Can't resolve 'Book' in '/../my-react1/src/chapter_03' Did you mean './Book'? Requests that should resolve in the current directory need to start with './'. Requests that start with a name are treated as module requests and resolve within module directories (node_modules, /../my-react1/node_modules). If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too. 어떻게 해야 할까요?

  • HTML/CSS
  • javascript
  • react
noel75 댓글 3 좋아요 1 조회수 416

ssr질문

해결됨

한 입 크기로 잘라먹는 Next.js

🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 2.11 번 강의에서 ssr 듣다가 궁금한점이 있어서요 ssr은 두번 렌더링이 일어난다고 하셧느데 그러면 첫번째 서버에서 렌더링된 뒤에는 undefined이고 두번째 하이드레이션이 일어나고 그 뒤에는 window가 있으니 밑에처럼 했을때에는 콘솔이 나온느게 맞을까요 ?(하이드레이션 적용된 뒤에가 맞을까요 ?) if (typeof window !== "undefined") { console.log("window.location", window.location); }

  • react
  • typescript
  • next.js
aso 댓글 2 좋아요 0 조회수 250

addAttribute 질문

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 현지 저는 사정상 이클립스로 진행을 하고 있는데요 model.addAttribute 부분에서 model.addAttribute (attributeName:"data", attributeValue:"hello!!"); 로 하면 오류가 나고 model.addAttribute ("data","hello!!");로 수정하면 오류가 나지 않습니다 차이가 뭔지 알 수 있을까요

  • java
  • spring
  • mvc
  • spring-boot
jeongho lee 댓글 2 좋아요 0 조회수 362

layout할때 css적용 같은건 그냥 다 따라 쳐야 하나요?

미해결

코드로 배우는 React 19 with 스프링부트 API서버

따로 코드가 있나요? 깃허브에 그 코드는 있는데 완성된 코드라 그런지 제가 보는 부분의 코드는 없는거 같아요(이 동영상 말고 다른 동영상에서) 동영상이라 코드가 안보이는 부분이 있어서 따라 칠수 없을때도 있는데 어떤식으로 해야 하나요?

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
김재원 댓글 1 좋아요 0 조회수 137

4-3 아코디언 컴포넌트 만들기 링크 수정요청

미해결

실무 중심! FE 입문자를 위한 React

4-3 아코디언 실습코드 링크가 4-2 렌더링 과정 실습코드 링크랑 같습니다. pdf 파일 내 4-3 실습 링크변경 요청드리며, 변경된 링크 공유 부탁드립니다.

  • react
  • redux
  • node.js
  • sass
  • swr
dlwhdgus482 댓글 2 좋아요 4 조회수 379

안드로이드 빌드 오류 문제

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

IOS는 빌드가 정상적으로 실행되는데, 안드로이드는 아래와 같은 메시지와 함께 실행이 안됩니다. 어떤 문제인지 감을 잡기가 어렵습니다 Mac을 사용중입니다 어떻게 고쳐야 할지 답변 부탁드립니다 You are applying Flutter's app_plugin_loader Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block: https://flutter.dev/go/flutter-gradle-plugin-apply You are applying Flutter's main Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block: https://flutter.dev/go/flutter-gradle-plugin-apply Could not find a command named "bin/build_tool_runner.dill". Usage: dart <command|dart-file> [arguments] Global options: -v, --verbose Show additional command output. --version Print the Dart SDK version. --enable-analytics Enable analytics. --disable-analytics Disable analytics. --suppress-analytics Disallow analytics for this dart * run without changing the analytics configuration. -h, --help Print this usage information. Available commands: analyze Analyze Dart code in a directory. compile Compile Dart to various formats. create Create a new Dart project. devtools Open DevTools (optionally connecting to an existing application). doc Generate API documentation for Dart projects. fix Apply automated fixes to Dart source code. format Idiomatically format Dart source code. info Show diagnostic information about the installed tooling. pub Work with packages. run Run a Dart program. test Run tests for a project. Run "dart help <command>" for more information about a command. See https://dart.dev/tools/dart-tool for detailed documentation. FAILURE: Build failed with an exception. * Where: Script '/Users/jjh/.pub-cache/hosted/pub.dev/irondash_engine_context-0.5.4/cargokit/gradle/plugin.gradle' line: 65 * What went wrong: Execution failed for task ':irondash_engine_context:cargokitCargoBuildIrondash_engine_context_nativeDebug'. > Process 'command '/Users/jjh/.pub-cache/hosted/pub.dev/irondash_engine_context-0.5.4/cargokit/gradle/../run_build_tool.sh'' finished with non-zero exit value 64 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 6s Error: Gradle task assembleDebug failed with exit code 1

  • flutter
  • 클론코딩
이윤주 댓글 2 좋아요 0 조회수 223

Go_router 최신 버전 사용시 에러

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

final routerProvider = Provider<GoRouter>((ref) { final provider = ref.watch(authProvider); return GoRouter( initialLocation: '/splash', routes: provider.routes, redirect: provider.redirectLogic, ); }); flutter refreshListenable 은 v7에서 없던 내용 같은데 어떻게 처리하면 될까요? 그리고 redirect:provider.redirectLogic 에서 에러가 납니다. redirect: (context, state){ return provider.redirectLogic(state); }, 이렇게 수정해주면 될까요? 코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • flutter
  • 하이브리드-앱
nickelback 댓글 2 좋아요 0 조회수 269

gradle build 오류 문의

해결됨

실리콘밸리 엔지니어와 함께하는 Gradle

안녕하세요? gradle init로 그레들 프로젝트 생성했습니다.(그레들 버전 : 8.12) Type : Application 나머진 수업해서 지정한 그대로 입니다. (java, groovy, ..) 아무런 변경 없이 gradle app:test 혹은 gradle app:build를 실행했습니다. 그럼, 다음의 예외가 발생합니다. java.lang.ClassNotFoundException: org.example.AppTest at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606) 실습한 환경은 윈도우즈이고 CLI는 윈도우즈의 cmd입니다. 혹시, 도움 받을 힌트가 있을까요? 참고로 이클립스 프로젝트로 import하고 build 태스크를 실행하면 정상적으로 test가 진행됩니다.

  • java
  • scala
  • gradle
  • scala-3
  • compiler
kkangssil 댓글 2 좋아요 0 조회수 308

실무에서 Primary Key 생성 전략 질문 있습니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

Primary Key 생성 전략에서 많은 것들을 알기 쉽게 설명해주셔서 감사합니다 🙂 제가 개인적으로 생각하는 가장 베스트 방법 2가지만 설명 드리도록 하겠습니다. Primary Key 값을 Snowflake 알고리즘으로 해결 장점 인덱스 탐색에 있어서 정렬된 순서로 차례대로 저장 하다보니 범위 검색에 있어서 장점이 될 수 있다. 단점 Secondary Index 생성시 각각 Leaf Node 에 PK 값 (포인터) 를 가지고 있다보니 아무래도 생성된 Snowflake 알고리즘 값은 길이가 길어서 인덱스 저장용량이 증가 될 수 있다. PK 생성 전략을 Auto_Increment 로 하고 샤딩키(article_id) 값을 Snowflake 알고리즘으로 설정 해서 저장 한다. (단 client 에게는 PK 값 대신 article_id 으로 노출 한다.) 장점 Secondary Index 생성시 각각 Leaf Node 에 PK 값 (포인터) 값이 용량이 작아 인덱스 저장 용량 부담이 없다. 인덱스 탐색에 있어서 정렬된 순서로 차례대로 저장 하다보니 범위 검색에 있어서 장점이 될 수 있다. 단점 client 으로 부터 요청시 샤딩키(article_id) 값으로 데이터 조회를 해야 하기 떄문에 Secondary Index -> Clustered_Index 까지 두번 인덱스 트리를 탐색 해야 하는 단점이 있다. 일단 이렇게 각각의 장단점을 설명 드렸습니다. 여기서 제가 궁금한것은 실무에서 데이터베이스 테이블 설계시 이 두가지 방법 중 하나를 선택 하는데 있어서 각각 어떤 경우에 적합한지 판단 내리기가 힘든 부분이 있습니다. 각각 케이스 마다 장단점을 알고 있지만 아무래도 자세하게 수치화 된 지표 가 없어 선택하는데 있어서 어려움이 있는데요. 선생님 경우는 실무에서 이 두가지 중 선택시 어떤 경우에 적절하게 판단 하시는지 노하우를 알려주시면 정말 감사 하겠습니다 🙂

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
리나 댓글 2 좋아요 0 조회수 369

하이라이트 변경이 없는데요?

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

메모를 적용 하기 전의 화면(대략 1분55초 정도) 에서의 하이라이트와 적용한 후(대략 4분45초 정도)의 하이라이트에 무슨 차이가 있나요? 저만 그런가요? 테스트 작성한 로컬에서도 하이라이트 변화는 없는데요?

  • javascript
  • react
  • node.js
민경언 댓글 2 좋아요 0 조회수 402

쓰기지연저장소에 쿼리저장시점 관련 질문드립니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 트랜잭션 커밋전에 쿼리를 생성해서 쓰기지연저장소에 저장하는것인지, 아니면 트랜잭션 커밋 이후 내부적으로 flush()호출 시 쿼리를 생성해서 쓰기지연 저장소에 저장하는것인지에 대해서 강의와 다른질문들, 구글링을 종합해보면 insert, update, delete 를 할때에 쓰기지연저장소에 SQL쿼리를 생성해서 저장하는 시점 이 약간 다른거같아서 아래와 같이 정리해 보았는데, 전체적으로 제가 이해한바가 맞는지 확인하고 싶어서 질문드립니다. 감사합니다. <update> 0. em.find()나, em.persist()로 인해 이미 1차캐시에 있는 엔티티의 필드값 변경 1. 트랜잭션 커밋. JPA는 트랜잭션을 커밋할때 변경된 엔티티 유무와 상관없이 항상 내부적으로 엔티티매니저의 flush()가 호출된다. 2. 영속성컨텍스트의 엔티티와 스냅샷을 비교한다. 3. UPDATE SQL을 생성해서 쓰기지연SQL저장소에 SQL쿼리를 저장한다. 4. 쓰기지연SQL저장소에있는 쿼리를 데이터베이스에 전송(=flush)한다. 5. 쓰기지연SQL저장소에있는 쿼리를 데이터베이스에 전송하고나서, 엔티티트랜잭션에 의해 트랜잭션이 커밋된다. <insert> 1. em.persist()를 하면, 해당 엔티티가 1차캐시에 추가되고, INSERT SQL을 생성해서 쓰기지연SQL저장소에 SQL쿼리를 저장한다. 2. 트랜잭션 커밋. JPA는 트랜잭션을 커밋할때 변경된 엔티티 유무와 상관없이 항상 내부적으로 엔티티매니저의 flush()가 호출된다. 3. 쓰기지연SQL저장소에있는 쿼리를 데이터베이스에 전송(=flush)한다. 4. 쓰기지연SQL저장소에있는 쿼리를 데이터베이스에 전송하고나서, 엔티티트랜잭션에 의해 트랜잭션이 커밋된다. <delete> 1. em.remove()를 하면, 해당 엔티티가 1차캐시에서 제거되고, DELETE SQL을 생성해서 쓰기지연SQL저장소에 SQL쿼리를 저장한다. 2. 트랜잭션 커밋. JPA는 트랜잭션을 커밋할때 변경된 엔티티 유무와 상관없이 항상 내부적으로 엔티티매니저의 flush()가 호출된다. 3. 쓰기지연SQL저장소에있는 쿼리를 데이터베이스에 전송(=flush)한다. 4. 쓰기지연SQL저장소에있는 쿼리를 데이터베이스에 전송하고나서, 엔티티트랜잭션에 의해 트랜잭션이 커밋된다.

  • java
  • jpa
오리쉐리 댓글 3 좋아요 1 조회수 178

SessionProvider을 사용해도 하위 컴포넌트가 서버 컴포넌트로 유지되는 것 같은데 이유가 궁금합니다.

미해결

Next + React Query로 SNS 서비스 만들기

SessoinProvider을 사용할 경우 SessionProvider로 감싼 하위 컴포넌트는 모두 클라이언트 컴포넌트가 되는 걸로 알고 있고 클라이너트 컴포넌트의 자식으로써는 서버 컴포넌트가 올 수 없다고 본 것 같은데 코드를 보니까 SessionProvider의 하위 컴포넌트도 서버 컴포넌트로 잘 작동 되는 컴포넌트가 있는 것 같아요. 혹시 제가 잘못알고 있는지 궁금합니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
쾌할한 전복 댓글 2 좋아요 0 조회수 109

쓰기지연저장소 쿼리 저장 시점 관련 질문드립니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

강의 내용에서, 트랜잭션 커밋전에 em.persist나 em.remove를 하면, 영속성컨텍스트의 1차캐시에 값이 저장 또는 삭제되고, 쿼리를 생성해서 쓰기지연저장소에 저장한다고 하셨는데요. 트랜잭션 커밋전에 쿼리를 생성해서 쓰기지연저장소에 저장하는것인가요? 아니면 트랜잭션 커밋 이후 내부적으로 flush()호출 시 쿼리를 생성해서 쓰기지연 저장소에 저장하는것인가요??

  • java
  • jpa
오리쉐리 댓글 1 좋아요 0 조회수 97

코틀린,자바,그레들,jdk,jvm등등 한번 설명해줄수있나요.

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

코틀린,자바,그레들,jdk,jvm,sdk등등 한번 설명해줄수있나요. 에러가 나면 뭐가 뭔지 모르겠어요. 설치하다가 진이 빠지내요.. android\build.gradle는 무슨역활하는지. settings.gradle gradle-wrapper.properties android\app\build.gradle google-services.json firbasea_options.dart 이런 파일이 무슨역활을 하지는 알아야 에러를 잡겠는데 그냥 ai에게 묻다보니 치쳐서요

  • flutter
  • 클론코딩
vadain2000 댓글 2 좋아요 0 조회수 167

자바 코드로 직접 스프링 빈 등록하기 강의 관련 질문입니다~

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의에서 의존성 주입의 3가지 방법에 대한 내용이 나왔는데요. 그 중에서 "setter 주입" 방법의 경우, 만약 MemberController를 예를 들면, 스프링 서버가 뜰 때, MemberController 객체가 생성될 때 생성자가 호출되는 건 이해를 하는데, setter 주입 방식은 객체 생성 시 생성자 뿐만 아니라 setter도 같이 스프링에서 호출하는 걸까요? 그리고 위와같이 setter 주입 시 private으로 변경해도 스프링 서버 run하는데는 문제가 없던데 이유가 있을까요? 강의에서는 public으로 setter를 노출시키는게 setter 주입 방식의 단점이라고 하셔서요.

  • java
  • spring
  • mvc
  • spring-boot
ajdsasld 댓글 1 좋아요 0 조회수 212

Chapter_05 터미널, 리액트 에러

미해결

처음 만난 리액트(React)

안녕하세요, 챕터 05 강의를 듣고 실습 중에 있었는데요. local 3000에서는 이런 에러 메시지가 뜨고, 터미널에서는 이런 메시지가 뜹니다. CommentList.jsx index.js 헷갈리는 부분이 많은데 설명 부탁드립니다!

  • HTML/CSS
  • javascript
  • react
dlwlgur37 댓글 2 좋아요 0 조회수 222

final로 클래스 선언 시 extends 의 사용 가능여부

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 41:59의 화면에서, 3번째 줄에는 final로 클래스를 선언하면 extends, implement, mixin으로 사용이 불가능하다고 설명해주셨는데, 7번째 줄에는 final로 선언된 클래스도 extends가 가능한 것처럼 설명하신 것 같아서요. 아니면 extend와 extends가 다르게 쓰이는 건가요? 헷갈려서 질문합니다

  • flutter
  • 클론코딩
lsh20011026 댓글 2 좋아요 0 조회수 71

Runtime Error

미해결

Next.js App router 기반 Chat GPT 만들기

// db/index.ts 코드 내용 import { neon } from '@neondatabase/serverless'; import { drizzle } from 'drizzle-orm/neon-http'; import * as schema from './schema'; const sql = neon(process.env.DATABASE_URL!); const db = drizzle(sql, {schema}); export default db; // action/signup.ts 내용 "use client"; import bcrypt from "bcryptjs"; import { getUserByEmail } from "@/data/user"; import { SignUpSchema } from "@/schemas/auth"; import { user } from "@/db/schema"; import db from "@/db"; import { redirect } from "next/navigation"; export const signUp = async(_:any, formData:FormData) => { //1. 필드 중요성 const validatedFields = SignUpSchema.safeParse({ name: formData.get("name"), email: formData.get("email"), password: formData.get("password") }) if(!validatedFields.success){ return { errorMessages: "잘못된 입력값이 있습니다.", }; } //2. 존재하는 사용자인지 체크 const {email, name, password} = validatedFields.data; //4. 성공 여부 반환 try { const existingUser = await getUserByEmail(email); if(existingUser){ return { errorMessages: "이미 가입된 사용자입니다.", }; } const hasehdPassword = await bcrypt.hash(password, 10); //3. db에 insert await db.insert(user).values({name, email, password: hasehdPassword}); } catch(error) { console.error(error) return {errorMessage: "알 수 없는 오류가 발생했습니다."}; } redirect("/login"); }; 회원가입 마무리 코드를 다 입력하고 저장한 뒤에 사이트를 확인했는데, 이런 오류가 납니다. DATABASE URL이 잘못됐나 싶어서 다시 확인해봤지만 이상이 없었습니다. 이전 강의인 회원가입 유효성 검사 기능 제작까지 문제가 없었는데, 문제 해결이 되지 않아 질문 남겨봅니다....

  • react
  • typescript
  • next.js
  • tailwindcss
  • zustand
  • chatgpt
이다민 댓글 2 좋아요 0 조회수 214

인기 태그

인프런 TOP Writers

주간 인기글