inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

섹션3 학습테스트 시간 비교테스트 질문입니다.

미해결

토비의 스프링 6 - 이해와 원리

섹션3의 학습테스트 과정 중 서로 다른 시간에 생성된 두 개의 Clock systemDefaultZone() 값을 isAfter() 로 비교 테스트 하는 중 아래와 같은 오류가 발생됩니다. 검색해보니 같은 문제를 겪고 있는 분들께서 WorkAround로 테스트 안정성을 높이기 위해 ChronoUnit.SECONDS 형태와 같이 초 단위까지만 비교하여 같은지 여부를 확인하거나, Fixed Clock으로 시간을 수동으로 지정하여 검증하는 테스트 방법을 권장하고 있었습니다. 참고 사이트 : https://velog.io/@weightle55/%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EA%B8%B0-%EC%96%B4%EB%A0%A4%EC%9A%B4-%EC%98%81%EC%97%AD%EC%9D%84-%EA%B5%AC%EB%B6%84%ED%95%98%EA%B3%A0-%EB%B6%84%EB%A6%AC%ED%95%98%EA%B8%B0 강사님께서는 테스트를 바로 통과하셨는데, 차이가 무엇인지 궁금합니다.

  • java
  • spring
:) 댓글 1 좋아요 1 조회수 386

StoryBook 관련 궁금 사항입니다.

해결됨

실무에 바로 적용하는 스토리북과 UI 테스트

Next.js를 사용하는 경우 이미지 최적화를 위해 next/image 에서 제공하는 Image 컴포넌트를 사용합니다! 이를 활용해서, 스토리북 컴포넌트를 만들 경우, React에서 이를 활용할 수 있을지 궁금합니다. 현재, React-Native-Cli에서 프로젝트를 진행하고 있습니다. React-Native-Cli(View, Text, Pressable)와, React, Next에서 모두 활용 가능한, 공용 스토리북 컴포넌트를 현실적으로 만들 수 있는지, 실무에서는 각각 따로 분리해서 개발을 진행하는지 여부가 궁금합니다! 타입스크립트로 만든 스토리북 패키지를, 자바스크립트를 활용한 (타입스크립트를 사용하지 않는) 프로젝트에서 활용가능한지도 궁금합니다! 프로젝트를 진행하면, 스토리북과 함께 한개의 레포지토리로 관리하는 것이 좋은지, 아니면, 따로 분리해서 두개의 레포지토리로 관리하는 것이 좋은지 궁금합니다! 개발 시작시, 먼저 스토리북으로 컴포넌트를 제작 후, 개발을 진행하는 것이 좋은지, 아니면, 개발을 진행해가며, 그때 그떄 공용 컴포넌트로 쓰일 만한 것들을 스토리북으로 만들어나가는 것이 좋은지 강사님의 경험상 괜찮은 방법을 알려주시면 감사하겠습니다!!

  • react
  • typescript
  • tailwind-css
  • storybook
  • ui-testing
김용민 댓글 1 좋아요 1 조회수 278

C언어 while문 질문드립니다.

해결됨

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

19:30초 쯤에 나오는 while에서 if( i >= 4) { break; } 일 때 i의 값이 4까지만 나온다고 되어있는데 if( 4 >= 4) { break; } 하면 true라서 i의 값이 5까지 나와야 하는 것 같은데 4까지만 나오게 되어있는 것 같아서 헷갈립니다..ㅠㅠ

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

공부한 내용을 개인 블로그에 정리해서 올려도 될까요?

미해결

토비의 스프링 6 - 이해와 원리

안녕하세요 토비님. 우선 좋은 강의 부탁드립니다. 토비의 스프링 3.1 책으로 처음 토비님 알게되었는데, 강의도 찍으신 줄 모르고있다가 오늘 바로 구매하고 듣기 시작했습니다. 다름이 아니라, 강의 내용을 개인 블로그 등에 정리해서 올려도 될까요? 일부 강의 내용 스크린샷 찍어서 올리는 건 허용되는지 궁금합니다. 좋은 강의 해주셔서 감사합니다! 개인적으로 스프링에 국한되지 않은 강의도 찍어서 올려주시길 희망합니다! 경험하신 서비스들의 시스템 디자인이나, MSA 구조나, 대규모 트래픽을 받을 때 캐시나 DB설계 등등.. 토비님의 짱짱한 경력과 경험에서 오는 내용이라면, 도움이 정말 많이 될 것 같아요. 앞으로도 많은 강의활동 부탁드립니다!

  • java
  • spring
Hyuncheol Park 댓글 1 좋아요 1 조회수 454

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 조회수 268

같지만 다른것들

해결됨

(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 조회수 232

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 조회수 936

스프링 순서 질문드려요,,

미해결

토비의 스프링 6 - 이해와 원리

안녕하세요 토비님!! 라이브 영상이 너무 좋아서 바로 스프링 6 구매했는데요! 제가 궁금한 게 저는 자바만 열심히 판 상태이고 스프링이 처음이며 내년 상반기에는 토이프로젝트를 시도해야하는 상황입니다. 혹시 스프링 6 듣고 스프링 부트 원리를 들어야 할까요? 아니면 바로 스프링부트로 직접 프로젝트 만들어보면 될까요? 제일 좋은 건 둘 다..이겠지만 혹시라도 필수인지 궁금해서 여쭤봅니다. 그리고 번외로 강의가 진짜 몰입력 있어요!! 감사하게 보겠습니다!! ㅎㅎ

  • java
  • spring
한상수 댓글 1 좋아요 0 조회수 355

질문있습니다

미해결

김영한의 실전 자바 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 객체지향에서 이렇게 2개 클래스로 나눠서 풀었는데, 출력할때 처음 0,0, false 가 왜 출력이 되는지, 저는 for문을 돌린적이 없는데 왜 2번 출력되는지 잘 모르겠습니다.. 각자의 함수에서 계산하기 전이라 0,0,false를 출력하고 그 후에 함수 내부를 실행하고 리턴값을 다시 출력해주는건가요? 제가 리턴값 후에 sout를 다시 한적이 없어서..

  • java
  • 객체지향
Tang Kim 댓글 1 좋아요 0 조회수 212

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

미해결

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

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

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

선생님 String클래스 관련하여 질문드립니다.

미해결

김영한의 실전 자바 - 중급 1편

선생님 String 변환 메서드들 관련해서 출력시 의문점이 생겨 질문 드립니다. System.out.println("문자열 결합: " + str.concat("!!!!")); String은 불변 객체로 반환값을 담아야 한다고 말씀하셨던거 같은데 print출력할때는 그게 상관이없나요?

  • java
  • 객체지향
  • string
uphoon 댓글 1 좋아요 0 조회수 229

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

해결됨

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

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

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

2중 for문 한번으로 하려고 고민했습니다.

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

public class 격자판_최대합 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] panel = new int[n][n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) panel[i][j] = sc.nextInt(); DiagonalCalculator diagonal = new DiagonalCalculator(); RowColumnCalculator row = new RowColumnCalculator(); RowColumnCalculator column = new RowColumnCalculator(); for (int rowIndex = 0; rowIndex < n; rowIndex++) { for (int colIndex = 0; colIndex < n; colIndex++) { int rowNum = panel[rowIndex][colIndex]; int colNum = panel[colIndex][rowIndex]; diagonal.calc(rowIndex, colIndex, rowNum, n); row.tempSum(rowNum); column.tempSum(colNum); } row.calcMaxSum(); column.calcMaxSum(); } int diagonalSum = diagonal.getMaxSum(); int rowSum = row.getMaxSum(); int colSum = column.getMaxSum(); int maxValue = Math.max(diagonalSum, Math.max(rowSum, colSum)); System.out.println(maxValue); } private static class DiagonalCalculator { private int leftSum = 0; private int rightSum = 0; public void calc(int rowIndex, int colIndex, int num, int length) { boolean sameLoc = rowIndex == colIndex; if (sameLoc) leftSum += num; if ((rowIndex + colIndex) == length) rightSum += num; } public int getMaxSum() { return Math.max(leftSum, rightSum); } } private static class RowColumnCalculator { private int totalSum = 0; private int tempSum = 0; public void tempSum(int num) { tempSum += num; } public void calcMaxSum() { if (totalSum < tempSum) { totalSum = tempSum; } tempSum = 0; } public int getMaxSum() { return totalSum; } } } 클래스를 분리해서 계산하도록 하니 메인 로직에서는 필요한 값을 넘겨주기만 해도 되고, 나중에 결과를 받아올 때에도 메서드만 호출하면 되서 편했는데 전체적으로 코드가 좀 복잡해지지는 않는지, 이런 부분이 궁금합니다!

  • java
  • 코딩-테스트
jay 댓글 1 좋아요 0 조회수 340

데이터 참/거짓 강의 질문

해결됨

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

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

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

7번 빈칸채우기 문제요

해결됨

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

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

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

첫 강의에서 만든 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 조회수 296

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

미해결

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

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

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

트랜잭션 테스트에서 제가 이해한 것이 맞을까요?

미해결

토비의 스프링 6 - 이해와 원리

트랜잭션 테스트가 어려운 이유는 JPA나 JDBC에서 알아서 처리해주기 때문에 트랜잭션의 실패 지점이 어디인지를 알 수 없기 때문이고, 이를 해결하려면 트랜잭션 템플릿을 활용하는 방법이 있는 건가요?

  • java
  • spring
anfdmlrltk11 댓글 1 좋아요 0 조회수 235

인기 태그

인프런 TOP Writers

주간 인기글