inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

type=Internal Server Error, status=500

미해결

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

error 500이면 코드가 잘못된 거 같은데 어디가 잘못 됐는지 봐주실 수 있을까요 🥺 HelloController package com.example.hello_spring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloController { @GetMapping("hello") public String hello(Model model){ model.addAttribute("data", "hello!"); return "hello"; } @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name){ return "hello" + name; } jdbcMemberRepository package com.example.hello_spring.repository; import com.example.hello_spring.domain.Member; import org.springframework.jdbc.datasource.DataSourceUtils; import javax.sql.DataSource; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Optional; public class jdbcMemberRepository implements MemberRepository { private final DataSource dataSource; public jdbcMemberRepository(DataSource dataSource) { this.dataSource = dataSource; } @Override public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, member.getName()); pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { member.setId(rs.getLong(1)); } else { throw new SQLException("id 조회 실패"); } return member; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public Optional<Member> findById(Long id) { String sql = "select * from member where id = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setLong(1, id); rs = pstmt.executeQuery(); if(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return Optional.of(member); } else { return Optional.empty(); } } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public List<Member> findAll() { String sql = "select * from member"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); List<Member> members = new ArrayList<>(); while(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); members.add(member); } return members; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public Optional<Member> findByName(String name) { String sql = "select * from member where name = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); rs = pstmt.executeQuery(); if(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return Optional.of(member); } return Optional.empty(); } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } private Connection getConnection() { return DataSourceUtils.getConnection(dataSource); } private void close(Connection conn, PreparedStatement pstmt, ResultSet rs) { try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (pstmt != null) { pstmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { close(conn); } } catch (SQLException e) { e.printStackTrace(); } } private void close(Connection conn) throws SQLException { DataSourceUtils.releaseConnection(conn, dataSource); } } 콘솔창 오류메시지 2024-07-20T10:30:05.545+09:00 ERROR 17396 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection] with root cause

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

기본생성자

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

자식클래스 메서드 실행 시 부모 호출 후 메서드 실행된다고 하셨습니다. 10:32에 super가 없기 때문에 기본인 Car()이 실행되는데, 무조건 위치 상 맨 위에 있는 것이 기본인 것인가요? 예를들어 맨위에 Car(String model) 밑에 Car(String model, int year)가 있으면 Car(Stirng model)이 호출되는 것인가요

  • python
  • java
  • c
  • 정보처리기사
28026 댓글 2 좋아요 0 조회수 270

같지만 다른것들

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

java에서 string " " 에 들어가는 문자열이 같을 경우에 같은 메모리에 들어가기 때문에 str1 = "a", str2 = "a" 의 a 값이 같은 거라고 하셨습니다. 그리고 int의 경우 -128~127까지의 경우도 동일하고요. 그런데 같지만 다른 것들 8:37에서 문제풀이 하실 때 person1 == person.2 : false인 이유를 모르겠습니다. 따옴표안의 stirng인 "John"이고, 25의 int형 변수인데요. true가 나와야 하지 않나요?

  • python
  • java
  • c
  • 정보처리기사
28026 댓글 1 좋아요 0 조회수 233

Checkbox를 누르는데 왜 Editor가 리렌더링되나요?

미해결

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

10.4의 useCallback 강의를 듣는 중에 궁금한 점이 생겼습니다. 하나의 checkbox를 누르면 그에 해당하는 item과 그의 부모 컴포넌트인 List , App 컴포넌트가 리렌더링 되는 것은 이해가 되었습니다.그런데, Editor 컴포넌트는 왜 리렌더링이 되는것인가요?Editor가 props로 받은 onCreate는 App에서 useCallBack으로 선언하였으므로, onCreate의 이전 주소값과 이후 주소값은 동일한 것이라 생각됩니다.

  • javascript
  • react
  • node.js
swghj 댓글 2 좋아요 0 조회수 341

프록시 잘 설정했는데도 404 오류 뜨는 분들

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

혹시 다른분들께서 올려주신대로 수정하고 링크도 잘 설정했고 오타도 없는데 콘솔에 계속 "AxiosError: Request failed with status code 404" 에러 나는 분들 계시나요? 404 에러는 보통 페이지가 없기 때문에 나오는 에러로 알고 있는데요 링크 매핑을 잘 했고 보낼때 get 으로도 잘 보냈는데 계속 같은 오류가 나서 끙끙 앓던 중에 네트워크에 cannot get /hello 로 보이더라구요.. 그래서 혹시나 index.js에서 /api/hello 를 /hello 로 수정해서 실행해보니 오류 없이 response 해주더라구요... 결국 링크 문제였습니다...! 혹시나 저같은 분들이 계실까 싶어 해결된 부분 이렇게 남겨봅니다..

  • react
  • node.js
종이상자 댓글 6 좋아요 5 조회수 946

aop 실행에 대한 이해가 안됩니다

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. MemberService에서 try/finally및 변수만 설정 해줬을 뿐인데 왜 실행은 test->MemberServiceIntegration이 아니라 HelloSpringApplication으로 실행을 해야 결과가 나타나게 되나요? 굳이 차이를 못느끼겠는데 왜 그런지 이해가 안가네요

  • java
  • spring
  • mvc
  • spring-boot
  • aop
형종 댓글 1 좋아요 0 조회수 241

javascript에서 에러가 있어도 렌더링 시키는 방법

해결됨

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

현재 9.2) 투두리스트 업그레이드 3:30 쯤 useState를 useReducer로 변경을 하며 생긴 문제입니다. onCreate함수는 액션 객체로 변경을 하고 화면에서 렌더링되는 것을 보고 있는데, 강의에서는 onUpdate 함수에 setTodos 상태함수가 정의되어 있지 않다는 에러가 있더라도 잘 렌더링이 되고 있습니다. 하지만 제 코드에서는 렌더링이 되지 않고 에러만 발생하게 됩니다. 확장프로그램을 설치했던 걸로 기억하는데 안 되는 이유를 알 수 있을까요? 추가로, 이 때 생기는 에러는 List 컴포넌트에서 map이 정의되지 않았다고 합니다.

  • javascript
  • react
  • node.js
swghj 댓글 1 좋아요 0 조회수 257

데이터 참/거짓 강의 질문

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

문자열 배열에서 \0(null) 을 붙임으로써 문자열이 끝났음을 알 수 있다고 하셨는데 그럼 첫번째 문자열배열 str1의 경우엔 왜 널값이 안붙나요? 배열에 각각 문자가 하나씩 들어가는것과 문자열이 한번에 한칸에 다 들어가는 차이 때문인가요? 명확한 해설 부탁드려요.

  • python
  • java
  • c
  • 정보처리기사
김다훈 댓글 3 좋아요 0 조회수 267

7번 빈칸채우기 문제요

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

최대공약수라는 배경지식이 없을 때 푸는 방법은 없나요? gcd에서 빈칸 내용(a%b)을 모르는 상태에서 어떻게 12를 유추하나요? 빈칸의 수식을 모를 때 풀어나가는 과정을 알려주셨으면 합니다.

  • python
  • java
  • c
  • 정보처리기사
pmg4289 댓글 1 좋아요 0 조회수 233

첫 강의에서 만든 hello-spring 파일과 IntelliJ관련 질문

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 IntelliJ에서 프로젝트 파일들을 다루는 부분이 아직 미숙하여 질문드립니다. 1강을 들으면서 실행했을 때는 강의에서 생성한 hello-spring 프로젝트를 상위 폴더인 spring에 담고 spring 폴더로 IntelliJ를 열어서 실행했습니다. 이때는 정상적으로 실행이 되었는데, 다시 실행하려고 보니 실행이 안 됩니다. 다시 다운로드 받고 검색을 해봤지만, 설정에서 idk와 grade관련된 설정만 나왔습니다. 그런데 상위 폴더인 spring이 아닌 spring 프로젝트로 생성한 hello-spring으로 IntelliJ를 실행시키니 정상적으로 폴더들(패키지들)을 인식하고 실행이 됩니다. 원래 이렇게 작동하는 것이 맞는건지 제가 설정 부분을 잘못 건드려서 발생한 문제인지 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 1 조회수 299

원본이 제대로 작동하려면 현재 컴퓨터의 두 글자 지리적 지역을 백 엔드 서비스로 보내야 합니다(예: "미국"). 의 뜻을 알고 싶습니다.

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

말씀주신 명령프롬프트에서 올려주신 winget install 명령어들을 쳐서 진행하는중 처음부터 문제가 생겼습니다. 원본이 제대로 작동하려면 현재 컴퓨터의 두 글자 지리적 지역을 백 엔드 서비스로 보내야 합니다(예: "미국"). 라는 문구가 뜨며 Y or N 으로 결정 해야하는데 Y를 눌렀다가 어떤식으로 될지 몰라서 질문 올립니다.

  • react
  • python
  • django
  • web-api
  • htmx
메모장 댓글 1 좋아요 0 조회수 670

member 1, 2 중복 회원 예외 test

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] member 1, 2가 spring으로 동일한데 해당 코드를 실행하면 초록색 표시로 test가 통과하는데 이렇게되면 중복 문제 확인은 어떻게 하나요? 강의를 잘못 이해한 걸까요,,,

  • java
  • spring
  • mvc
  • spring-boot
y11e 댓글 2 좋아요 0 조회수 457

@{/css/bootstrap.min.css}

미해결

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

templates에 item.html을 타임리프를 적용하는데 <link href="../css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"> 강의에 나온 코드 에서 왜 th:href="@{../css/bootstrap.min.css}"으로 상위 경로로 가지 않아도 작동하는 이유가 뭔가요? 그리고 이상하게 th:href="@{../css/bootstrap.min.css}"으로 하면 적용이 안되는 이유와 관련이 있나요?

  • spring
  • mvc
권정익 댓글 1 좋아요 0 조회수 187

로컬에서는 카카오 로그인이 되는데 vercel 배포했더니 안되네요 혹시 알려주실 수 있을까요..?

미해결

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

/src/middleware.ts import { auth } from './auth'; import { NextResponse, NextRequest } from 'next/server'; export async function middleware(request: NextRequest) { const session = await auth(); if (request.nextUrl.pathname.startsWith('/login')) { if (session) { return NextResponse.redirect(new URL('/', request.url)); } } if (request.nextUrl.pathname.startsWith('/mypage')) { if (!session) { return NextResponse.redirect(new URL('/login', request.url)); } } if (request.nextUrl.pathname.startsWith('/admin')) { if (session?.user?.name !== 'admin') { return NextResponse.redirect(new URL('/', request.url)); } } } export const config = { matcher: ['/mypage/:path*', '/admin/:path*', '/login'], }; /src/auth.ts import NextAuth from 'next-auth'; import KakaoProvider from 'next-auth/providers/kakao'; export const { handlers: { GET, POST }, auth, } = NextAuth({ pages: { signIn: '/login', }, providers: [ KakaoProvider({ clientId: process.env.KAKAO_CLIENT_ID!, clientSecret: process.env.KAKAO_CLIENT_SECRET!, }), ], secret: process.env.NEXTAUTH_SECRET, }); /src/app/api/auth/[...nextauth]/route.ts export { GET, POST } from '@/auth'; 로컬에서는 되는데 vercel 로 배포 하니까 안되네요.. api/auth/error 로 가지고 Failed to load resource: the server responded with a status of 500 () /api/auth/session 이렇게 오류가 나네요 "next-auth": "^5.0.0-beta.19", 입니다

  • react
  • next.js
  • react-query
  • next-auth
  • msw
kukhyun4 댓글 2 좋아요 0 조회수 832

Next App Route Framer 도입 문의 !

해결됨

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

안녕하세요! 클론하다가 React에서 Framer로 레이아웃을 이전 이후로 나누어서 페이지 전환을 스무스하게 animation을 줬던 기억이 있어서 반영해봤는데요. 위의 페이지 전환 효과를 next 프로젝트에도 반영해보려고 하는데 App Router의 특성? 때문인지 {children} 으로 라우팅을 전달 받기 때문에 이전, 이후가 아닌 공통적인 레이아웃으로 취급되고 명확한 구분(id)가 없기 때문에 부드러운 전환이 잘 안되는 걸까요.. 유추한 내용이 맞을까요..? 타 라이브러리 질문 안받으신다면 죄송함다 ㅠ const Framer = ({ children }: { children: ReactNode }) => { const pathName = usePathname(); return ( <> <AnimatePresence mode="wait" initial={false}> <motion.div key={pathName} initial={{ opacity: 0, x: 20 }} animate={{ opacity: 1, x: 0 }} exit={{ opacity: 0, x: -20 }} transition={{ duration: 0.5 }} > {children} </motion.div>{" "} </AnimatePresence> </> ); };

  • react
  • next.js
  • react-query
  • next-auth
  • msw
squirrel PARK 댓글 1 좋아요 1 조회수 256

윈도우 빌드

미해결

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

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

  • java
  • spring
  • mvc
  • spring-boot
ej9374 댓글 2 좋아요 0 조회수 364

로컬 스토리지 로딩 관련질문

해결됨

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

안녕하세요 선생님 오류는 아니고 쫌 엉뚱한질문인데 다이어리 로컬스토리지 로딩 기능 구현중에 function App () { const [IsLoading, setIsLoading] = useState(true); 이 state가 true 이면 if (IsLoading) { return <div>로딩 중</div>; } 화면에 로딩중으로 렌더링 하게 코딩을 했는데 아무리 새로고침 해봐도 화면에 로딩 중 찍히는 걸 볼 수 가 없는데 이유는 너무 빨리 지나가서 제가 볼 수가 없는건가요? 그렇다면 유즈이팩트 사용 여부에따라 마운트 할 때 화면을 두번 그리게 되는건가요?

  • javascript
  • react
  • node.js
댓글 2 좋아요 0 조회수 348

pyhwpx에서 한글 창을 최대로 키우는 코드가 무엇인가요

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

질문 남겨주셔서 감사합니다. 막히면 언제든 무엇이든 자주 질문 던져주세요. 수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요. 저도 최대한 빠르게 회신 드리겠습니다. 당부드릴 두 가지가 있습니다. ① 가급적 구체적으로 설명해주세요. ② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ ====================================pyhwpx 라이브러리 사용 중 문의드립니다.win32라이브러리로 창을 키워뒀다가 pyhwpx로 텍스트를 삽입하기 위해 객체를 선언하면다시 창이 작아지는 문제가 있습니다.pyhwpx에서 한글 창을 최대로 키우는 코드가 무엇일까요?pyhwpx는 관련 정보를 찾을 수가 없어 문의드립니다.늘 감사합니다.

  • python
  • 한컴오피스
박윤정 댓글 1 좋아요 1 조회수 277

23:09분 sim_pow 구할 때요

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

선생님 제가 산수 지식이 부족합니다. 1.1의 3승이면 1.331 아닌가요? 저는 2928.2가 나오거든요

  • python
  • java
  • c
  • 정보처리기사
이성미 댓글 1 좋아요 0 조회수 329

함수와 재귀함수_포인터를 입력값으로 받는 함수 22:40

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요 섹션2 C언어 파트에서 함수와 재귀함수 강의 중 질문 있습니다. 포인터를 입력값으로 받는 함수 예시 중에서, 입력값으로 char *str으로 되어있고 이거는 주소값을 저장하는 포인터 변수인데 printf 로 출력할 때 str이 주소값이 아니라 문자열인가요?? %s\n 이라서 그런가요? myString[] 이 가지고 있는 가장 첫번째 값의 주소가 전달되었다고 하는데 "입력된 문자열 :" 뒷부분에 주소값이 아닌 문자열이 출력되는 이유를 모르겠습니다....ㅠ 주소값이 저장되는 변수인 포인터 변수가 들어오는 거면 저장된 값이 주소값인 거로 이해되는데 출력은 문자열이라서 이 포인트가 이해 안 돼요.. 그리고 보다보니 의문이 생겨서 질문 하나 더 있습니다! main() 실행함수 안에서 char myString[] = "this is String"; 하고 printString메서드 호출할 때 printString(myString[]) 이 아닌 printString(myString) 배열 []를 빼주고 이름만 써주는 걸까요?! 같이 설명해 주시면 감사하겠습니다!

  • python
  • java
  • c
  • 정보처리기사
eunssol01 댓글 1 좋아요 0 조회수 316

인기 태그

인프런 TOP Writers

주간 인기글