inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

gradle 빌드 오류

미해결

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

Execution failed for task ':test'. 라고만 계속뜨네요 인텔리제이도 다시 설치해봤는데...혹시 이메일을 알려주신다면 제가 project 파일을 보내드려도될까요?

  • java
  • spring
  • mvc
  • spring-boot
전우영 댓글 2 좋아요 0 조회수 245

@Transactional을 붙여도 Rollback이 되지 않는 문제는 해결했으나 이유륾 모름

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 해결했습니다. 복붙하는 과정에서 private Connection getConnection() { return DataSourceUtils.getConnection(dataSource); } 이 부분이 있는 걸 몰랐네요 저는 conn = dataSource.getConnection() 으로 진행해서 문제가 생긴거였습니다 그런데 추가적인 질문으로 이렇게 했을 때는 롤백이 되지 않는 이유가 무엇인가요? 강의 코드와 똑같이 수정했음에도 롤백되지 않고 계속 DB에 반영이 됩니다. 참고로 다른 질문글의 conn 관련된 수정도 이미 했음에도 롤백되지 않습니다. JdbcMemberRepository package hello.hello_spring.Repository; import hello.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 { // DB와 연동하려면 Datasource가 필요함 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 = dataSource.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 = dataSource.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 = dataSource.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 = dataSource.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 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); } } SpringConfig package hello.hello_spring; import hello.hello_spring.Repository.JdbcMemberRepository; import hello.hello_spring.Repository.MemberRepository; import hello.hello_spring.Repository.MemoryMemberRepository; import hello.hello_spring.Service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class SpringConfig { private DataSource dataSource; @Autowired public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; } @Bean public MemberService memberService() { return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository() { return new JdbcMemberRepository(dataSource); } } MemberServiceIntegrationTest package hello.hello_spring.Service; import hello.hello_spring.Domain.Member; import hello.hello_spring.Repository.MemberRepository; import hello.hello_spring.Repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; // 테스트는 반복해서 시도할 수 있어야 하기 때문에 DB에 데이터를 인서트 쿼리하고 '롤백' 해주는 것 (정확히는 DB에 반영을 안하는 것) // 이를 위해서 @Transactional 사용 @SpringBootTest @Transactional class MemberServiceIntegrationTest { // 테스트는 특수한 용도이기 때문에 일회성(?)으로 필드 주입을 해도 무관 @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test void 회원가입() { // given Member member = new Member(); member.setName("spring"); // when Long saveId = memberService.join(member); // then Member one = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(one.getName()); } @Test public void 중복_회원_예외() { // given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); // when memberService.join(member1); IllegalArgumentException e = assertThrows(IllegalArgumentException.class, () -> memberService.join(member2)); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); // try { // memberService.join(member2); // } catch (IllegalArgumentException e) { // assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); // } // then } }

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

강의 연장 관련 문의

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

올해 4학년 올라가는 대학생입니다. 제가 작년에 강의 결제하고 학교 다니느라 바빠 시험 공부를 미루다가 올해 시험을 준비하려 하는데 강의 수강 기간이 한달밖에 남지 않아 공부할 시간이 부족할 것 같은데 혹시 연장가능할까요 강사님 ㅠㅠ 메일 주소는 stnow7@gmail.com 입니다!

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
gongdae 댓글 2 좋아요 0 조회수 102

Transactional 질문 있씁니다.

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 현재 재직중인 직장 소스를 보면 트랜잭션을 걸어야하는 서비스단 메서드에 @Transactional의 격리 수준이 READ UNCOMMITTED 로 모두 되어있습니다. 하나도 빠짐없이.. 상사분의 말로는 테이블 락 발생을 방지하기 위해 이렇게 한다는데... 영한님의 의견이 궁금합니다. 제가 생각했을때 이는 적합하지 않은 방법같거든요. 정합성이 깨질뿐더러 테이블 락은 다른 방법으로 해결해야지 이건 아닌것 같더라구요.. 답변 기다리겠습니다!

  • spring
  • mvc
  • spring-jdbc
backendman 댓글 1 좋아요 0 조회수 151

try-with-resources 구문 사용 관련 질문드립니다.

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 해당 강의에서는 save(Member member)를 작성하면서 try-catch구문을 썼는데 아래처럼 try-with-resources구문을 사용하면 생길 수 있는 문제가 있어서 try-catch구문을 쓰는건가요? try (Connection con = getConnection(); PreparedStatement pstmt = con.prepareStatement(sql)) { pstmt.setString(1, member.getMemberId()); pstmt.setInt(2, member.getMoney()); pstmt.executeUpdate(); return member; } catch (SQLException e) { log.error("db error", e); throw e; } 제가 혼자 생각해봤었을 때의 이때의 생길 수 있는 문제점은 try(...)안의 자원들의 close()가 호출될 때가 아닌 생성될 때의 오류가 생기면 그걸 catch로 잡거나 그러지 못할수도 있다는 것이었습니다. 실제로 h2데이터베이스를 끄고 실행해봤었을 때, Connection con = getConnection(); 부분에서 예외가 발생했고, catch로 잡지 못하는 모습이었습니다. 이처럼 자원 생성에서부터 예외가 발생할 때 try-with-resources를 사용하는 것은 적절치 않다고 생각하면 되는걸까요?

  • spring
  • mvc
  • spring-jdbc
문예찬 댓글 2 좋아요 0 조회수 190

리턴값 질문드립니다.

해결됨

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

몇번째 강의에서 들었는지 기억이 안나는데 갑자기 궁금해서 문의드립니다. void 는 리턴값이 없다 라고 알고 있고 return0은 괄호안 실행문이 종료되는 기능으로 알고 있는데 가끔 return1 도 보이더라구요 요건 어떻게 처리가 되는지 설명 부탁드려요...ㅠㅠ 호출한 곳으로 1이란 값을 돌려주는 건가요?

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

머신러닝 적용을 위한 Feature Engineering 작업1

미해결

[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]

(05:51) Sex 숫자 변환 부분에서 코드를 똑같이 실행했지만 df['Sex']를 출력하면 강의내용과 다르게 NaN값으로 다 변환됩니다.

  • python
  • 머신러닝
  • pandas
  • kaggle
댓글 2 좋아요 0 조회수 203

실습에러 TImelimit

미해결

강화학습 입문에서 Deep Q-learning/Policy Gradient까지

안녕하세요. Frozen lake 실습에서 해당 코드 실행하면 에러가 나옵니다.ㅜㅜ 코드 잘못짠건 아니고 올려주신 파일 그대로 실행했을때 에러납니다. 에러코드 transitions = env.P 여기서 문제가 생기는것 같습니다. 감사합니다.

  • python
  • 딥러닝
  • 강화학습
  • pytorch
댓글 2 좋아요 0 조회수 170

missingno 대체

미해결

[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]

import matplotlib.pyplot as plt plt.figure(figsize=(15, 8)) plt.imshow(df.isnull(), aspect="auto", cmap="viridis", interpolation="nearest") plt.colorbar(label="Missing (1) / Present (0)") plt.title("Missing Values Matrix", fontsize=16) plt.xlabel("Columns", fontsize=12) plt.ylabel("Index", fontsize=12) plt.xticks(ticks=range(df.shape[1]), labels=df.columns, rotation=90, fontsize=10) plt.show()

  • python
  • 머신러닝
  • pandas
  • kaggle
while_ true_effort 댓글 1 좋아요 0 조회수 188

코드 질문입니다

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

주피터 노트북 마지막 행은 그냥 숫자로 346 치면 답이 346뜨던데 box = 10 만 쳣을 경우 답이 안뜨던데 있는 그대로 box = 10이 안나오는 이유는 무엇인가요

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
추상엽 댓글 2 좋아요 0 조회수 132

코드 질문입니다

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

type(true) type(false) 요렇게 적었는데 답이 bool 왜 하나만 뜨나요 bool bool 두개 떠야 하는거 아닌가요

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
추상엽 댓글 2 좋아요 0 조회수 129

pyinstaller 로 exe 파일을 만들면 환경구축이 안되어있는 PC 에서 실행 불가

해결됨

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

안녕하십니까 티스토리에서 도움 많이 얻어갔었던 수강생입니다. 다름이 아니라 메일머지 기능을 자동화하기 위한 프로그램을 작성 중인데 대략적인 샘플코드는 나와서 pyinstaller 를 통해 한글이 설치되어있는 환경에서 동일하게 동작하는지 확인하였으나, 제대로 동작되지 않고 exception 이 발생해서 해당 문제에 대해 도움을 받아볼 수 있을까 하여 질문드립니다. 혹시 관련된 코드와 exception 내용, pyinstaller 실행문을 공유드리면 확인해주실 수 있으신지 문의드립니다.

  • python
  • 한컴오피스
sam 댓글 2 좋아요 1 조회수 450

assertj 에 해당하는 Assertions 이 import가 상단에 되지 않는이

미해결

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

[질문 내용] ctrl + enter 를 해도 import가 상단에 안되는데 어떻게 해결을 해야할까요? junit 의 Assertions 만 import가 잘됩니다.

  • java
  • spring
  • mvc
  • spring-boot
kabsung lee 댓글 3 좋아요 0 조회수 347

코드 질문입니다

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

데이터 분석을 위한 파이썬 기초 1 부분에서 아래와 같이 print 단어 생략하고 바로 문자 덧샘했을때 작은 따옴표가 원래 생성이 되는 건가요? 없어야 하는거 아닌지 문의드립니다! print("파이썬은 멋지다") -> 파이썬은 멋지다 "he" + "llo" -> 'hello'

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
추상엽 댓글 3 좋아요 0 조회수 122

todo / react 붙이는 깃주소를 받고 싶습니다.

미해결

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

안녕하세요. 수강생입니다. 이부분을 5번은 넘게 들은거 같은데 어려워요. 깃주소주신것도 가서 봤는데 구조도 잘 이해가 안되고 todo 와 react만 연동되는 코드를 따로 깃에 주시면 안될까요? todo따로 react따로 폴더를 만들어주신거 같은데 myreact01-cra 온전히 todo를 리엑트에 붙이는 깃주소를 따로 만들어주셨으면해서요. 전부 한군데에 있어서 분석해보면서 하고는 있는데 저위의 3개의 카테고리중에 2개만이라도 되고 싶은데 다 합해서 20분수업도 안되는데 전 2분도 못쫓아가고 있어요. 리엑트도 어느정도안다고 생각하고 장고도 어느정도 안다고 생각하는데도 어렵습니다. 흑.... 소스코드를 받고 싶습니다. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • react
  • python
  • django
  • web-api
  • htmx
유순복 댓글 6 좋아요 0 조회수 218

9회 기출 언제 나올까요?

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요. 9회 실기를 합격하긴 했지만, 어려웠던 문제들이 있어서 다시 공부해 보고 싶은데, 9회 기출을 언제 쯤 업데이트 하실 예정인지 궁금해서 질의합니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
juliejoo1207 댓글 2 좋아요 0 조회수 117

빌드 부분에서 오류가 납니다.

미해결

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

빌드 부분에서 오류가 납니다. JAVA버젼도 21버젼으로 다시설치했고 경로에 한글도 없는데 왜일까요? 답변 부탁드립니다.

  • java
  • spring
  • mvc
  • spring-boot
전우영 댓글 2 좋아요 0 조회수 197

오류페이지 404 화면 안나옴

미해결

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

package hello.exception.servlet; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import java.io.IOException; @Slf4j @Controller public class ServletExController { @GetMapping("/error-ex") public void errorEx() { throw new RuntimeException("예외발생"); } @GetMapping("/error-404") public void send404Error(HttpServletResponse response) throws IOException { response.setStatus(404); // 상태 코드 설정 response.getWriter().write("404 오류 발생"); } @GetMapping("/error-500") public void send500Error(HttpServletResponse response) throws IOException { response.setStatus(500); // 상태 코드 설정 response.getWriter().write("500 오류 발생"); } } 이렇게 400오류일 때 페이지를 설정해도 error-404로 들어가면 오류가 발생하고 error-400에 들어가면 404 화면이 나옵니다. application.properties는 이렇게 구성되어있고, html파일은 수업 자료 코드 그대로 가져왔습니다. 확인 한번 해주시면 감사하겠습니다.

  • spring
  • mvc
장주윤 댓글 2 좋아요 0 조회수 277

jupyter note launch 무반응

미해결

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

강의와 동일하게 업그레디으 버전 6.5.2 버전으로 설치 후 launch버튼을 눌렀으나 강의처럼 새로운 창이 뜨지 않고 아무런 반응이 없어요. 새로고침도 해보고, 업그레이드도 해보고 다 해봤는데 전혀 무반응이네요. 어떻게 해야하나요

  • python
  • 웹-크롤링
fosqkqk 댓글 1 좋아요 0 조회수 266

'int' object is not callable

미해결

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

사용자 입력을 int 형 변환으로 받기 위해서 썼는데 저런 에러가 뜹니다. 찾아보니 예약어를 변수로 썼을 때 일어나는 에러라는데 전 int 를 변수로 쓰지 않았습니다. 왜 이런 걸까요?

  • python
  • 웹-크롤링
major Park 댓글 1 좋아요 0 조회수 236

인기 태그

인프런 TOP Writers

주간 인기글