묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
맥북에서 ./gradelw build 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]오류 내용은 아래와 같습니다. FAILURE: Build failed with an exception. * What went wrong:A problem occurred configuring root project 'hello-spring'.> Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.2. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.2 > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.2.2 was found. The consumer was configured to find a library for use during runtime, compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.5' but: 제 생각에는 프로젝트에의 자바와 맥북에서 기본으로 잡혀있는? 자바 버젼이 맞지 않아서 발생하는 문제 같습니다. inteliJ에서 설정되어 있는 자바openjdk-21 Oracle Open JDK 21맥북 터미널에서 확인한 자바 (java -version)openjdk version "11.0.19" 2023-04-18 LTSOpenJDK Runtime Environment Corretto-11.0.19.7.1 (build 11.0.19+7-LTS)OpenJDK 64-Bit Server VM Corretto-11.0.19.7.1 (build 11.0.19+7-LTS, mixed mode) 인터넷 검색으로 어찌 어찌 환경변수? 를 아래와 같이 수정을 하고 적용을 해봤지만 같은 오류가 발생합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 테스트 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://drive.google.com/file/d/1GmEDrs703xOvPzwZo3G7XQ8PomDtwyqn/view?usp=drive_link jpa로 회원가입 테스트를 하려고하는데 실패합니다..properties의 ddl-auto를 create로 수정하는것으로 해결할수있지만 설정을 변경하는것은 아닌것같아서 질문드립니다.@Transactional이 원인인가 의심스럽습니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
뷰라는 용어의 범위에 대하여 + 강의 자료 @PathVariable 오타
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 내용들을 보다 보면 '뷰'라는 용어가 View 클래스를 상속받은, 예를 들어 ThymeleafView 클래스의 객체 등을 뜻하는 것 같기도 하고, 가끔은 templates 디렉터리의 하위에 있는 hello.html 같은 뷰 템플릿들을 뷰라고 말씀하시는 것 같기도 했는데 맞나요? 제가 헷갈렸던 건지 모르겠네요.. 뷰라는 용어의 범위를 넓게 생각해도 될까요? 아래는 오타인 것 같아서 제보합니다.6. 스프링 MVC - 기본 기능(v20231202).pdf 24페이지에 있는 @PathVariable 관련 내용인데 @RequestParam 코드가 있습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 테스트 오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://drive.google.com/file/d/1p8Pzk72m4puS8geRyfhQr4N1LEmijVeI/view?usp=drive_link멤버서비스인티그레이션테스트에서 오류가 발생합니다.오류메시지는org.springframework.transaction.TransactionSystemException: JDBC rollback failedCaused by: java.sql.SQLException: Connection is closedjava.lang.IllegalStateException: java.sql.SQLException: Connection is closed와 같이 발생합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
7강 웹페이지 만들기 질문(item-service)
본 강의 마지막 편인 웹 페이지 만들기에서 잘 되다가 addForm(상품등록)부터 white page에러가 뜨면서 안들어가집니다. 강의를 보고 다시 확인도 해봤는데 같은 부분에서 오류가 나서 접속이 안됩니다. 에러로 보아 addForm에 문제가 있는 것 같은데 도무지 오류를 찾을 수가 없어 질문 남깁니다. 구글 드라이브에 파일 압축해서 올려놓았습니다. https://drive.google.com/file/d/1Sq8rgY-2ZwPEoD8KaAeIfdXAPPJ-9NsT/view?usp=drive_link
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:field 질문
th:field를 사용했을 때 id, name, value로 변하는 것은 input태그에서만 가능한건가요?span태그로 하니 변하지 않아서요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서블릿, 서블릿 컨테이너, 서블릿/애플리케이션 컨텍스트
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의를 듣다가 용어에 혼동이 와서 용어 정리 좀 하고 싶은데요.서블릿이라고 말하는 것은 SpringMVC에서 디스패처 서블릿을 의미하는 것이 맞나요?서블릿 컨테이너가 나와서 헷갈렸는데 강의 내용으로 대략 유추해볼 때 WAS(톰캣)을 말하는 게 맞나요?서블릿 컨텍스트, 애플리케이션 컨텍스트 이렇게 두 가지를 따로 말하던데 어떤 개념인가요?혹시 위 내용들을 강의에서 다룬 곳을 아시거나 참고할 만한 문서가 있으면 알려주시면 감사하겠습니다.
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
깃허브 주소를 못 찾겠어요
스프 2탄 깃허브 주소좀 부탁드립니다 ~
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
웹 mvc패턴을 활용해 view에서 성공적으로 반환된 데이터를 다시 가지고와서 다른view에 뿌려줄 수 있나요??
자바 스프링부트를 사용하여 // API 호출 $.ajax({ url: /dataclick?inpuDate=${targetDate}, method: 'GET', headers: { 'Accept': 'application/json', 'Authorization': Bearer ${token}, 'Content-Type': 'application/json', }, success: function (data) { console.log('받은 데이터:', JSON.stringify(data)); // editPage로 이동 window.location.href = '/editPage'; }, error: function (error) { console.error('데이터 불러오기 실패:', error); } });제가 달력에서 선택한 날짜의 데이터를 성공적으로 받아와서 그성공적으로 받은 데이터를 editPage에 뿌리고싶어요 근데 mvc패턴을 사용해야하니 받아온데이터를 dto에 또 담아서 쓰고싶은건데 어떤식으로 작성해야할까요?스프링 부트 고수님들 도와주세요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 gradlew build 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.다음과 같이 오류가 발생하는데 어떻게 해야하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
프로젝트 오픈 초기 오류..;;;;
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 프로젝트 다운설정인텔리J 프로젝트 설정오류 내용 : 아래 내용보다 길지만 첫줄과 마지막 줄만 첨부 합니다.1. 초기2. 마지막 제가 어떤 부분을 고쳐야 할까요? 자바 기본 배우고 바로 넘어왔는데 처음 부터 막히니 막막하네요..;;;
-
해결됨스프링 웹 MVC
PATCH의 Idempotent에 대한 질문
안녕하세요 백기선님 설명해주신 HTTP Method 중, PATCH의 Idempotent에 대한 궁금증이 생겨 질문을 드립니다. 영상과 노트에서는 PATCH method가 멱등성을 가진다고 설명해주셨는데, 다른 레퍼런스에서는 PATCH가 멱등성을 가지지 않는다는 설명이 있어서 어떤게 올바른지 알고 싶습니다. 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
mvc 패턴에서 등록된 회원을 조회할때 에러가 발생합니다.
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]"mvc 를 패턴 - 적용" 강의에서 회원 목록을 조회할 때 계속해서 에러가 발생해서 질문드립니다.MvcMemberListServlet.class@WebServlet(name = "mvcMemberListServlet", urlPatterns = "/servlet-mvc/members") public class MvcMemberListServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Member> members = memberRepository.findAll(); System.out.println("메모리에 저장된 데이터: "); for (Member member : members) { System.out.println("member.username = " + member.getUsername()); System.out.println("member.age = " + member.getAge()); } request.setAttribute("members", members); String viewPath = "/WEB-INF/views/members.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response); } } - 회원을 등록하고 "http://localhost:8080/servlet-mvc/members" 경로로 들어간후에, 위 코드의 실행 결과를 확인하면 MemberRepository 에 정상적으로 데이터가 들어 간 것을 확인할 수 있었습니다. 그런데 아래의 에러와 함께 whitelabel page가 보이네요.. org.apache.jasper.JasperException: The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be resolved in either web.xml or the jar files deployed with this applicationorg.apache.jasper.JasperException: The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be resolved in either web.xml or the jar files deployed with this application 위의 에러들에 관해서 구글링을 해보니까 jsp 파일에서 코드를 잘못 작성했을 확률이 높다고 합니다. 그런데 jsp 파일에는 큰 문제가 없어 보입니다 ㅠ <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <meta charset="UTF-8"> </head> <body> 성공 <ul> <li>id=${member.id}</li> <li>username=${member.username}</li> <li>age=${member.age}</li> </ul> <a href="/index.html">메인</a> </body> </html>그리고 아래는 설정 파일입니다.plugins { id 'java' id 'war' id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' // providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' //JSP 추가 시작 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' //JSP 추가 끝 } tasks.named('test') { useJUnitPlatform() } 다른 질문을 보니 implementation 'javax.servlet:jstl' 이 부분을 주석 처리하고 다시 해보라는 답변이 있길래 해봤더니 여전히 에러가 발생합니다. 참고로 메인 클래스에 어노테이션은 저렇게 구성되어 있습니다. 도움 주시면 감사하겠습니다... @ServletComponentScan @SpringBootApplication public class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); } }
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
32강 spring legacy project
안녕하세요. 전자정부프레임워크 3.10.0 으로 수강 중 입니다. spring legacy project 에 들어가면 다음과 같이 spring MVC Project 템플릿이 보이지않아 문의드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
복사가 이상하게 됩니다. 어떻게 고쳐야할까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]package hello.hellospring.repository; import hello.hellospring.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); } }이런식으로 복사됩니다. 매번 이래서 크롬으로 변경해서 복사해도 똑같네요..
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
실무 사용 질문
A폼에서는 required만 사용하고, B폼에서는 더 구체적인 레벨의 required.item을 사용한다는 가정하에,errors.properties에 required.item 메시지를 정의해두면 A, B폼 모두 구체적인 레벨의 메시지가 적용될 것이라고 생각합니다.즉, 여러 단계 레벨의 메시지를 작성해놓더라도, 항상 가장 구체적인 레벨의 메시지만 사용되지 않을까하는 의문입니다. 그럼 결국, 폼에 따라 메시지를 다르게 사용하는 게 아니라 모두 구체적인 메시지를 사용하게 되는 것인데, 어떻게 실무에서는 이걸 다르게 적용되도록 구현하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
타입을 MemberRepository로 할때와 MemoryMemberRepository로 할때의 차이점이 뭔가요?
MemoryMemberRepository repository = new MemoryMemberRepository(); MemberRepository repository = new MemoryMemberRepository();두 타입으로 설정했을때의 차이가 알고싶어요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
true, false 질문
단순 값에 의한 처리는 값이 일단 넘어오긴 하니까, bindingFailure 값을 false로 둔 것이고, 타입에 대한 처리는 내부에서 bindingFailure 값이 true로 전달된다고 이해하면 될까요? 이 타입에 대한 처리 코드는 따로 작성할 필요는 없는 건가요? (bindingFailure가 true인)
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 듣고 있는데 오류가 있어 남깁니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.현재 실행이 안되고 있는 상태입니다. 무슨 문제인지 알고 싶습니다 ㅜㅜ구글 드라이브 링크입니다.https://drive.google.com/drive/folders/15MQr82y4Qdcm4Cs7dZItZMa7rG_fJevw?usp=sharing
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
simplejdbcinsert
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]simplejdbcinsert를 여러 테이블에 적용해야 한다면 적용할 테이블 개수에 맞춰서 객체를 생성해줘야 할까요?