inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

로그인 버튼 클릭시 500에러 발생

미해결

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

아이디, 비밀번호를 입력하고 로그인 버튼을 누르면 500에러가 발생합니다. 9090 서버 포트는 잘 켜져있다고 뜨고, 코드 올리겠습니다. <auth.ts> import NextAuth from "next-auth"; import CredentialsProvider from "next-auth/providers/credentials"; import KakaoProvider from "next-auth/providers/kakao"; export const { handlers: { GET, POST }, auth, signIn, } = NextAuth({ pages: { signIn: "/i/flow/login", newUser: "i/flow/signup", }, providers: [ CredentialsProvider({ async authorize(credentials) { // credentials 안에 id창에서 입력하는 정보다 담겨있음 const authResponse = await fetch(`${process.env.AUTH_URL}/api/login`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ id: credentials.username, password: credentials.password, //next-auth의 credentials에는 username, password로 고정되어 있어서 이를 바꿔줌 }), }); //로그인 실패시 if (!authResponse.ok) { return null; } const user = await authResponse.json(); return user; }, }), //kakao로그인을 사용할때 // KakaoProvider(), ], }); <LoginModal.tsx> "use client"; import style from "@/app/(beforeLogin)/_component/login.module.css"; import { signIn } from "next-auth/react"; import { useRouter } from "next/navigation"; import { ChangeEventHandler, FormEventHandler, useState } from "react"; export default function LoginModal() { const [id, setId] = useState(""); const [password, setPassword] = useState(""); const [message, setMessage] = useState(""); const router = useRouter(); const onSubmit: FormEventHandler<HTMLFormElement> = async (e) => { e.preventDefault(); setMessage(""); try { await signIn("credentials", { username: id, password, redirect: false, }); //kakao, naver로 바꿀 수 있음 //client 일때는 next-auth/react의 signIn을 사용 //server 일때는 @/auth의 signIn을 사용 router.replace("/home"); } catch (error) { console.log(error); setMessage("아이디와 비밀번호가 일치하지 않습니다."); } }; const onClickClose = () => { router.back(); }; const onChangeId: ChangeEventHandler<HTMLInputElement> = (e) => { setId(e.target.value); }; const onChangePassword: ChangeEventHandler<HTMLInputElement> = (e) => { setPassword(e.target.value); }; return ( <div className={style.modalBackground}> <div className={style.modal}> <div className={style.modalHeader}> <button className={style.closeButton} onClick={onClickClose}> <svg width={24} viewBox="0 0 24 24" aria-hidden="true" className="r-18jsvk2 r-4qtqp9 r-yyyyoo r-z80fyv r-dnmrzs r-bnwqim r-1plcrui r-lrvibr r-19wmn03" > <g> <path d="M10.59 12L4.54 5.96l1.42-1.42L12 10.59l6.04-6.05 1.42 1.42L13.41 12l6.05 6.04-1.42 1.42L12 13.41l-6.04 6.05-1.42-1.42L10.59 12z"></path> </g> </svg> </button> <div>로그인하세요.</div> </div> <form onSubmit={onSubmit}> <div className={style.modalBody}> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="id"> 아이디 </label> <input id="id" className={style.input} value={id} onChange={onChangeId} type="text" placeholder="" /> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="password"> 비밀번호 </label> <input id="password" className={style.input} value={password} onChange={onChangePassword} type="password" placeholder="" /> </div> </div> <div className={style.message}>{message}</div> <div className={style.modalFooter}> <button className={style.actionButton} disabled={!id && !password}> 로그인하기 </button> </div> </form> </div> </div> ); } <middleware.ts> export { auth as middleware } from "./auth"; export const config = { matcher: ["/compose/tweet", "/home", "/explore", "/messages", "/search"], }; <route.ts> export { GET, POST } from "@/auth"; 에러 내용 : TypeError: next_dist_server_web_exports_next_request__WEBPACK_IMPORTED_MODULE_0__ is not a constructor at reqWithEnvURL (webpack-internal:///(rsc)/./node_modules/next-auth/lib/env.js:15:12) at httpHandler (webpack-internal:///(rsc)/./node_modules/next-auth/index.js:139:139) at /Users/imhwarang/projects/zerocho/z-com/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:63815 at /Users/imhwarang/projects/zerocho/z-com/node_modules/next/dist/server/lib/trace/tracer.js:133:36 at NoopContextManager.with (/Users/imhwarang/projects/zerocho/z-com/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:7062) 너무 길어서 다 올릴수는 없네요 에러내용을

  • react
  • next.js
  • react-query
  • next-auth
  • msw
화랑 댓글 3 좋아요 0 조회수 1236

paramMap과 model

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 둘 다 request 파라미터에 관한 변수들 아닌가요?? 근데 왜 두 변수로 나눠서 사용하는 건가요??

  • spring
  • mvc
새싹 댓글 1 좋아요 0 조회수 495

localhost8080이 실행이안됩니다...

미해결

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

실행 버튼도 누르고 21버전으로 모두 맞췄는데도 자꾸 안되네요

  • java
  • spring
  • mvc
  • spring-boot
지성 댓글 2 좋아요 0 조회수 408

Spring EL 표현식 ${} 관련

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 일반적으로 ${}를 쓸 때는 중괄호 내에 지정된 필드에 "실제 값"을 호출하는 것으로 알고 있습니다 예를 들어 <span th:text="${item.itemName}"></span> 의 경우 Item객체에 프로퍼티 접근을 통하여 itemName 필드에 들어있는 "실제 값"에 접근을 합니다 즉 itemName의 실제 값인 "itemA"를 반환하게 되는 것이지요 하지만 <form th:object="${item}"> <label for="itemName"></label> <input type="text" th:field ="${item.itemName}"> </form> 와 같이 th:object=${item}으로 폼에서 item 객체를 지정해서 th:field=*{itemName} 하게 되면 이때는 "실제 값"을 꺼내는 게 아닌 itemName이라는 "변수 이름"을 꺼내서 id , name , value값으로 지정하게 됩니다 [핵심 질문] 이에 따라 일반적인 상황에선 Spring EL 문법인 ${}의 용도가 "실제 값"을 꺼내는 거지만 th:field같은 예외적인 상황에서만 "변수 이름"에 접근하는 것이라고 이해해도 될까요?

  • spring
  • mvc
경민 댓글 2 좋아요 0 조회수 224

H2 데이터베이스 설치

미해결

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

H2 데이터베이스 설치 후 sql파일을 만드는 과정에서 아래 사진 처럼 sql파일은 Intellij IDEA ultimate 에서만 지원가능하다고 하는데 Intellij IDEA ultimate을 새로 또 설치해야 되는건가요? 그 다음 강의에서 application properties에 코드를 입력 할때도 Intellij IDEA ultimate에서만 지원가능하다고 합니다..

  • java
  • spring
  • mvc
  • spring-boot
954qew 댓글 1 좋아요 0 조회수 239

Spring Oracle 연동 질문입니다.

미해결

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

현재 사내에 연결된 다른 db 서버들은 모두 connection이 잘되는데, oracle db 서버만 연결이 이상한 상황입니다. 위와같이 연결테스트도 성공을 하는데.. 위와같은 오류가 발생하며 위와같이 다른 db와 달리 선택된 스키마가 없는상황입니다.. Toad에서 위 oracle db연결했을 때 완전히 같은 정보를 입력했을 때, 정상적으로 작동합니다.. 도대체 뭐가 문제일까요 ㅠㅠ 서버 ip, port도 정상적인 상황입니다.

  • java
  • spring
  • mvc
  • spring-boot
한봉학 댓글 2 좋아요 0 조회수 491

afterlogin beforelogin 로그인 분기처리 질문

미해결

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

안녕하세요. 디렉토리 구조를 afterlogin과 beforelogin구조로 나누어서 로그인을 분기치고 있고 auth.ts에서 서버로 부터 전달받은 토근값을 넣고 미들웨어에서 세션을 유무를 확인하여 login페이지로 리다이렉트 시키고 있습니다. afterlogin과 beforelogin으로 디렉토리가 어떤방식으로 나뉘는지 로직이 궁금합니다. 관련된 훅이 있는것인지?? 2. 실제 상용화된 서비스라고하면 로그인이 풀리는것을 방지하기 위해 BE로 토근값을 요청할텐데, 관련 로직은 어떤방식으로 구현하는게 좋은방법인지 요청드립니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
댓글 1 좋아요 0 조회수 424

어떻게 MemberForm 클래스가 선택이 되는지 과정이 궁금합니다.

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 강의 잘 듣고 있습니다. 재밌게 강의를 듣던 중 궁금증이 생겨 이렇게 질문 드리게 되었습니다. 7분40초~7분50초 쯤 설명에 의하면 "우리가 웹에서 입력한 name값이 MemberForm의 name 필드로 전달이 된다"라는 식으로 말씀을 하셨는데, 어떻게 Member 클래스가 아닌 MemberForm 클래스의 name을 찾아가게 되는 건가요?? 제가 워낙에 초보라서 그런지, 코드 상에서 "Member의 name이 아닌 MemberForm의 name을 찾아가도록 하는" 코드도 발견을 못하겠습니다.. 또한 다른 분들의 말씀에 의해서 질문을 드리고 싶은데, MemberForm 클래스에서 setName() 메서드가 사용이 안되는 것 같은데, 7분55초~ 8분 쯤의 설명으로는 setName() 메서드를 사용하시는 것처럼 말씀하시더라구요. 이 역시도 제가 잘 몰라서 그러는데 실제로 setName() 메서드가 사용되는 건가요?? 자세한 설명 부탁드리겠습니다. 감사합니다:-)

  • java
  • spring
  • mvc
  • spring-boot
김수환 댓글 1 좋아요 1 조회수 398

button과 checkbox 조건문과 함수

해결됨

5분빨리 퇴근하자! 파이썬 데이터 분석, 시각화, 웹 대시보드 제작하기

버튼과 체크박스 모두 조건문을 사용할 때는 바로 아래에 텍스트가 출력되는데, 함수를 사용하면 대시보드 맨 위에 텍스트가 호출되는 것은 왜 그런건가요?(맨 위에 텍스트가 호출되어 출력된 부분이 전부 다 한 칸 씩 밀리게 됨)

  • python
  • pandas
  • seaborn
  • plotly
  • matplotlib
  • data-visualization
  • streamlit
TEW_교육관리자 댓글 1 좋아요 0 조회수 329

강의자료 관련

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 강의 잘 듣고 있습니다. pdf 강의자료 6.스프링과 문제 해결 pg.11의 MemberServiceV4Test 코드에서 @AfterEach의 after 메소드에 붙은 throws SQLException를 제거해도 될 것 같아서 글을 남깁니다. 좋은 하루 되세요.

  • spring
  • mvc
  • spring-jdbc
알알이 댓글 1 좋아요 0 조회수 265

Controller의 BoardMapper 쪽에서 문제가 있습니다.

미해결

스프링 프레임워크는 내 손에 [스프1탄]

Controller에서 @Autowired로 private BoardMapper boardMapper를 해주었는데 필드 주입이 되지 않습니다.root-context에서 <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <constructor-arg ref="mysqlHikariConfig" /> </bean> <mybatis-spring:scan base-package="com.spring.board.mapper" /> <bean class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> </bean>mybatis-spring:scan 으로 패키지에 제대로 설정해주었는데 "/ boardList.do "로 이동하면 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.spring.board.mapper.BoardMapper.getLists 이러한 에러가 콘솔창에 나타납니다.

  • jsp
  • spring
  • mvc
  • spring-security
건영 댓글 1 좋아요 0 조회수 406

@Data 를 사용했을때 차이점

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

https://www.inflearn.com/questions/1087841/spring-3-2-0-%EC%82%AC%EC%9A%A9%ED%95%98%EC%8B%9C%EB%8A%94-%EB%B6%84%EB%93%A4-%EC%A4%91-converteredit%EC%97%90%EC%84%9C-%EC%BB%A8%EB%B2%84%ED%8C%85-%EC%95%88%EB%90%98%EC%8B%9C%EB%8A%94-%EB%B6%84 위 링크에 있는 질문처럼 @Data를 사용하면 오류가 뜨고 따로 @Setter @Getter @RequiredArgsConstructor를 사용했을때 정상작동되는 이유가 궁금합니다.

  • spring
  • mvc
박준현 댓글 2 좋아요 1 조회수 392

섹션1 <빌드하고 실행하기>

미해결

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

강의자님께서 mac은 ./gradlew build이고 window의 경우에는 ./gradlew.bat을 build 하면 된다고 하셨는데 ./gradlew.bat 명령어만 치면되는 건가요? (window 사용, bash 터미널 사용 중입니다.!)

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

회원 웹 기능 조회

해결됨

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

회원 웹 기능 조회에서 잘 따라가다가 아래 처럼 model에서 오류가 뜹니다.. 뭐가 잘못되었을 까요?

  • java
  • spring
  • mvc
  • spring-boot
954qew 댓글 3 좋아요 0 조회수 272

localhost8080 연결 거부

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] view 환경설정에 코드 resources/static/index.html 코드 복사해서 치고 실행돌린 후 localhost:8080 돌렸는데도 자꾸 연결 거부만 뜹니다..그리고 왜 코드도 저렇게 흰색으로 뜨는 지 잘 모르겟어요..뭐가 문제인가요 ㅠㅠ

  • java
  • spring
  • mvc
  • spring-boot
노베이스 비전공자 개린이 댓글 1 좋아요 0 조회수 297

섹션1 <View 환경설정> 강의 질문

미해결

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

templates 폴더의 hello.html 파일에서 <p>태그로 묶여있는 "안녕하세요. 손님"은 화면에서 확인할 수가 없는 이유가 궁금합니다. Thymeleaf templates 엔진 처리를 통해 웹 브라우저에 무언가를 띄우려면 항상 th:text="'안녕하세요. ' + ${data}" 이런 식의 문법을 사용해야 하나요?

  • java
  • spring
  • mvc
  • spring-boot
bsm77125 댓글 2 좋아요 1 조회수 186

index.html에는 th:replace 적용이 안되나요?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 템플릿 레이아웃 1의 내용을 보면 templates경로로 들어가서 th:replace를 하는데 제가 index.html에서 ../templates/경로로 하니 인식을 못합니다. 이게 static/index.html은 사용 불가인지 궁금합니다.

  • spring
  • mvc
scnu9090 댓글 1 좋아요 0 조회수 219

RequestMethod.GET인데도 HEAD로 요청했을 때 오류가 안 나는 이유

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping(value = "/hello-basic", method = RequestMethod.GET) public String helloBasic() { log.info("helloBasic"); return "ok"; } } 이렇게 RequestMethod.GET인 상태에서 Postman으로 /hello-basic를 GET으로 요청하면 ok가 반환되고 다른 HTTP 메서드, 예를 들어 POST로 요청하면 HTTP 405 상태 코드를 포함한 에러 메시지가 반환된다고 이해했습니다. 그런데 똑같이 RequestMethod.GET인 상태에서 Postman으로 HEAD로 요청하면 HEAD 특성상 원래도 ok를 반환하진 않지만, 응답에 에러 메시지도 안 뜹니다. 인텔리제이의 콘솔 창에서도 GET으로 요청했을 때와 마찬가지로 log.info("helloBasic");가 정상적으로 호출됩니다. GET과 HEAD가 body에 내용물이 있고 없고의 차이 말곤 비슷하다고 알고 있긴 했지만, 스프링의 RequestMethod나 RequestMapping 내부 코드를 봐선 RequestMethod.GET임에도 불구하고 HEAD로 요청했을 때 오류가 나지 않는 이유를 못 찾겠습니다. 이유가 무엇인가요?

  • spring
  • mvc
11 1 댓글 1 좋아요 0 조회수 330

이 메서드를 호출하려면 URL 주소를 어떻게 써야 하나요?

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] @GetMapping(value = "/mapping-param", params = {"mode=debug","mode=good"}) public String mappingParam() { log.info("mappingParam"); return "ok"; } http://localhost:8080/mapping-param?mode=debug http://localhost:8080/mapping-param?mode=good http://localhost:8080/mapping-param?mode=debug&mode=good 이 URL들로는 Whitelabel Error Page가 뜨는데 어떻게 호출할 수 있나요?

  • spring
  • mvc
11 1 댓글 2 좋아요 0 조회수 347

인기 태그

인프런 TOP Writers

주간 인기글