묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
type=Internal Server Error, status=500
error 500이면 코드가 잘못된 거 같은데 어디가 잘못 됐는지 봐주실 수 있을까요🥺HelloControllerpackage 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; } jdbcMemberRepositorypackage 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
-
미해결스프링 핵심 원리 - 기본편
DiscountPolicy null 문제
java.lang.NullPointerException: Cannot invoke "hello.core.discount.DiscountPolicy.discount(hello.core.member.Member, int)" because "discountPolicy" is null문제가 발생합니다.DIscountPolicy 를 구현한 클래스에 @Component 와 우선순위 등.. 다 했다고 생각하는데 어디서 오류가 나는지 찾을 수 없어 도움을 요청합니다.https://drive.google.com/file/d/18SR0aSD0XoEpUCw3Te4wP0r_23TViNC0/view?usp=sharing
-
미해결포트폴리오 초간단 배포하기
백엔드서버 배포시 포트번호는 어떻게 해야할까요?
백엔드 서버에는 nginx를 설치하지 않았는데, 도메인 등록시 :8080 포트는 어떻게 처리해야 하는지 궁금합니다. 도메인 등록후에 'www.도메인:8080' 으로 접속해야 접속이 되어서 질문드립니다. nginx 설치하고, 거기서 jar 파일을 업로드 하면 해결 될까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
기본생성자
자식클래스 메서드 실행 시 부모 호출 후 메서드 실행된다고 하셨습니다.10:32에 super가 없기 때문에 기본인 Car()이 실행되는데,무조건 위치 상 맨 위에 있는 것이 기본인 것인가요?예를들어 맨위에 Car(String model) 밑에 Car(String model, int year)가 있으면Car(Stirng model)이 호출되는 것인가요
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
같지만 다른것들
java에서string " " 에 들어가는 문자열이 같을 경우에같은 메모리에 들어가기 때문에str1 = "a", str2 = "a" 의 a 값이 같은 거라고 하셨습니다.그리고 int의 경우 -128~127까지의 경우도 동일하고요.그런데 같지만 다른 것들 8:37에서 문제풀이 하실 때person1 == person.2 : false인 이유를 모르겠습니다.따옴표안의 stirng인 "John"이고, 25의 int형 변수인데요.true가 나와야 하지 않나요?
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Checkbox를 누르는데 왜 Editor가 리렌더링되나요?
10.4의 useCallback 강의를 듣는 중에 궁금한 점이 생겼습니다.하나의 checkbox를 누르면 그에 해당하는 item과 그의 부모 컴포넌트인 List , App 컴포넌트가 리렌더링 되는 것은 이해가 되었습니다.그런데, Editor 컴포넌트는 왜 리렌더링이 되는것인가요?Editor가 props로 받은 onCreate는 App에서 useCallBack으로 선언하였으므로, onCreate의 이전 주소값과 이후 주소값은 동일한 것이라 생각됩니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
프록시 잘 설정했는데도 404 오류 뜨는 분들
혹시 다른분들께서 올려주신대로 수정하고 링크도 잘 설정했고 오타도 없는데 콘솔에 계속 "AxiosError: Request failed with status code 404" 에러 나는 분들 계시나요?404 에러는 보통 페이지가 없기 때문에 나오는 에러로 알고 있는데요 링크 매핑을 잘 했고 보낼때 get 으로도 잘 보냈는데 계속 같은 오류가 나서 끙끙 앓던 중에네트워크에 cannot get /hello 로 보이더라구요..그래서 혹시나 index.js에서 /api/hello 를 /hello 로 수정해서 실행해보니 오류 없이 response 해주더라구요...결국 링크 문제였습니다...!혹시나 저같은 분들이 계실까 싶어 해결된 부분 이렇게 남겨봅니다..
-
미해결토비의 스프링 6 - 이해와 원리
스프링 순서 질문드려요,,
안녕하세요 토비님!! 라이브 영상이 너무 좋아서 바로 스프링 6 구매했는데요! 제가 궁금한 게 저는 자바만 열심히 판 상태이고 스프링이 처음이며 내년 상반기에는 토이프로젝트를 시도해야하는 상황입니다. 혹시 스프링 6 듣고 스프링 부트 원리를 들어야 할까요? 아니면 바로 스프링부트로 직접 프로젝트 만들어보면 될까요? 제일 좋은 건 둘 다..이겠지만 혹시라도 필수인지 궁금해서 여쭤봅니다. 그리고 번외로 강의가 진짜 몰입력 있어요!! 감사하게 보겠습니다!! ㅎㅎ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
선언하는 게 헷갈립니다(섹션15_선택된 날짜 상태관리하기)
선생님의 강의 진도를 나가면서 기본기를 계속 복습하고 있지만 제가 머리가 좋지 않아서 질문이 있습니다TopState 클래스 안에서 selctedDate는 왜 _TopState 함수 아래에 바로 선언하는데 now,textTheme 같은 경우엔 왜 빌드 함수 아래에 선언하는지 모르겠습니다
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
UPROPERTY() 사용 시 Category 지시자가 적용되지 않는 문제
안녕하세요 교수님, 교수님의 강의에서 많은 도움을 얻고 있습니다.양질의 강의에 언제나 감사드립니다. 간단한 토이 프로젝트를 만들던 중 제목과 같은 문제를 마주했습니다.AnimInstance 클래스 안에서 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Character)TObjectPtr<class UCharacterMovementComponent> Movement; 위와 같이 프로퍼티를 만든 후에 AnimInstance를 상속받은 블루프린트 클래스를 만들었습니다.하지만, 블루프린트 클래스의 디테일 패널에서 Character 카테고리를 찾아볼 수 없는 문제가 발생했습니다. 언리얼 에디터를 종료하고 빌드를 해봐도 고쳐지지 않고라이브 코딩을 시도해도 달라지지 않았습니다.어떻게 해결해야 하는지 알고 싶습니다.또 현재 프로젝트에 스켈레탈 메쉬를 적용하려 하는데, 구버전인 언리얼 4 버전과 언리얼 5 버전의 스켈레탈 메쉬가 있습니다.호환성이나 성능, 안정성 측면에서 무엇을 사용하는 것이 더 나은 방법인지 궁금합니다.
-
미해결스프링 부트 - 핵심 원리와 활용
강의를 따라했는데 매핑 정보가 등록되지 않은 것 같습니다.
public interface AppInit { void onStartup(ServletContext servletContext); } /** * 서블릿 컨테이너 모방 * 프로그래밍 방식을 서블릿 컨테이너에 등록 */ public class AppInitV1Servlet implements AppInit { @Override public void onStartup(ServletContext servletContext) { System.out.println("AppInitV1Servlet.onStartup"); // 순수 서블릿 코드 등록 ServletRegistration.Dynamic helloServlet = servletContext.addServlet("helloServlet", new HelloServlet()); helloServlet.addMapping("/hello-servlet"); } }/** * 서블릿 그 자체 * 애플리케이션 초기화 */ public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet.service"); resp.getWriter().println("hello servlet!"); } }hello.container.MyContainerInitV1 hello.container.MyContainerInitV2 이런식으로 강의를 따라 서블릿에 매핑 정보를 등록했는데, http://localhost:8080/hello-servlet을 하게 되면 404 에러가 발생합니다. 어디서 문제가 생긴걸까요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
cursor 기반 페이지네이션 page 기반 페이지네이션
cursor 기반 페이지네이션과page 기반 페이지네이션에서어떤 상황에서 cursor 를 사용하고 어떤 상황에서는 page 기반 사용해도 될까요 ??insert , delete 에 대한 요청이 잦은 서비스 라면 cursor 를 사용하고주로 get 에 대한 요청밖에 거의 없을것 같은 서비스라면 page 기반 페이지네이션을 사용하면 될까요 ?
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
버전관리
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이 업데이트를 어떻게 기록관리할 수 잇을까요?단순히 명령으로 진행하다보면 실수 내기도 쉽고 어느 게 어느 버전인지도 확인하기 어려울것 같아요
-
미해결김영한의 실전 자바 - 기본편
질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.객체지향에서 이렇게 2개 클래스로 나눠서 풀었는데,출력할때 처음 0,0, false 가 왜 출력이 되는지, 저는 for문을 돌린적이 없는데 왜 2번 출력되는지 잘 모르겠습니다..각자의 함수에서 계산하기 전이라 0,0,false를 출력하고 그 후에 함수 내부를 실행하고 리턴값을 다시 출력해주는건가요? 제가 리턴값 후에 sout를 다시 한적이 없어서..
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
Normal Mapping / Assertion failed! 오류
Normal Mapping 강의에서 veiga.jpg를 제가 다운받아온 Stone.jpg로 바꾸고 디버깅해보니 이렇게 뜨네요크래시 난곳은 여기입니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
내림차순 next 토큰 로직 작성하기 질문
안녕하세요 ㅎ강의 잘듣고 있습니다.내림차순 정렬 부분을 듣고있다가createQueryBuild 을 사용해서 하는것은 어떻게 생각하시나요 ??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
ConstructorHelpers::FObjectFinder 사용하실때 static오 변수 선언해서 넣는 이유가 있나요?
ConstructorHelpers::FObjectFinder 사용하실때 static오 변수 선언해서 넣는 이유가 있나요?static 안쓰고 하면 어떤 문제가 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
aop 실행에 대한 이해가 안됩니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.MemberService에서 try/finally및 변수만 설정 해줬을 뿐인데왜 실행은 test->MemberServiceIntegration이 아니라HelloSpringApplication으로 실행을 해야 결과가 나타나게 되나요? 굳이 차이를 못느끼겠는데 왜 그런지 이해가 안가네요
-
미해결김영한의 실전 자바 - 중급 1편
선생님 String클래스 관련하여 질문드립니다.
선생님 String 변환 메서드들 관련해서 출력시 의문점이 생겨 질문 드립니다.System.out.println("문자열 결합: " + str.concat("!!!!"));String은 불변 객체로 반환값을 담아야 한다고 말씀하셨던거 같은데 print출력할때는 그게 상관이없나요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
javascript에서 에러가 있어도 렌더링 시키는 방법
현재 9.2) 투두리스트 업그레이드 3:30 쯤 useState를 useReducer로 변경을 하며 생긴 문제입니다.onCreate함수는 액션 객체로 변경을 하고 화면에서 렌더링되는 것을 보고 있는데, 강의에서는 onUpdate 함수에 setTodos 상태함수가 정의되어 있지 않다는 에러가 있더라도 잘 렌더링이 되고 있습니다.하지만 제 코드에서는 렌더링이 되지 않고 에러만 발생하게 됩니다.확장프로그램을 설치했던 걸로 기억하는데 안 되는 이유를 알 수 있을까요?추가로, 이 때 생기는 에러는 List 컴포넌트에서 map이 정의되지 않았다고 합니다.