========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요, 해당 static 폴더에 index.html파일에 코드를 입력한후 서버 실행결과 whilelabel 에러가 뜹니다. 해결에 도움을 주시면 감사하겠습니다.. 콘솔 내용 :: Spring Boot :: (v3.3.3) 2024-08-26T17:27:55.146+09:00 INFO 4895 --- [ main] h.hello_spring.HelloSpringApplication : Starting HelloSpringApplication using Java 17.0.12 with PID 4895 (/Users/kipyo/Documents/스프링/hello-spring/out/production/classes started by kipyo in /Users/kipyo/Documents/스프링/hello-spring) 2024-08-26T17:27:55.148+09:00 INFO 4895 --- [ main] h.hello_spring.HelloSpringApplication : No active profile set, falling back to 1 default profile: "default" 2024-08-26T17:27:55.573+09:00 INFO 4895 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) 2024-08-26T17:27:55.580+09:00 INFO 4895 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-08-26T17:27:55.580+09:00 INFO 4895 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.28] 2024-08-26T17:27:55.606+09:00 INFO 4895 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-08-26T17:27:55.607+09:00 INFO 4895 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 433 ms 2024-08-26T17:27:55.743+09:00 WARN 4895 --- [ main] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) 2024-08-26T17:27:55.768+09:00 INFO 4895 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' 2024-08-26T17:27:55.772+09:00 INFO 4895 --- [ main] h.hello_spring.HelloSpringApplication : Started HelloSpringApplication in 0.793 seconds (process running for 0.952)
강의에서 설명하신 복구 불가능한 예외에 대해서 질문드립니다. 말씀하신 복구 불가능한 예외라는게 구체적으로 어떤것을 의미하는것인지 이해를 잘 못하겠습니다. 앞서 배운것처럼 해당 예외가 발생하면 애플리케이션 로직에서 try~catch를 통해 예외를 잡아서 처리하면 되는것 아닌가요??
[질문 내용] 안녕하세요 열심히 강의를 듣던 중 MyBatis 적용1-기본 강의 11:37초 쯤에 and item_name...라는 sql구문을 쓰셨는데 이렇게 앞에 and가 들어가면 select * from item where and item_name... 이런 식으로 sql문이 쓰여지는거 아닌가요?? 앞에 and가 꼭 필요한건지 알아서 떼지는건지 궁금합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 상황: build tool는 Gradle를 사용하고 있습니다. Gradle -> Tasks -> build -> clean Gradle -> Tasks -> other -> compileJava 위에 작업을 실행해도 generated폴더에 Q클래스가 생성되지 않습니다. 참고로 generated도 생성되지 않습니다. 다른 분들처럼 오류가 발생하지는 않습니다!!
SpringMemberFormControllerV1에서 @Controller를 붙이고 실행하면 폼이 정상적으로 뜨는데 이렇게 @Controller를 주석처리하고 @Component @RequestMapping 를 붙이고 실행하면 404가 에러가 뜹니다. 게다가 이렇게 testcontroller를 해서 실행해도 마찬가지로 404가 에러가 뜹니다 어떻게 해야 되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 처음 스프링 들어보려고 하는데요, 혹시 프로젝트부터 언어, 스프링부트까지 어떤 걸 선택해야 하는 지 알려주실 수 있을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 자바 초보가 이해하기 쉽게 스프링 부트의 역할을 알고 싶어요.\ 그리고 예전에는 이클립스로 개발을 많이들 하던데, 지금은 어떤 IDE로 개발하는 지 궁금합니다.
처음에 주석처리한 부분이 이렇게 깨지는 현상이 발생해서 file Encodings 설정도 UTF-8로 바꿔보고 VM 옵션 설정에 -Dfile.encoding=UTF-8 도 입력해봤는데 인식이 잘 안되네요... 혹시 영한님이나 답변해주시는 개발자분들께서는 설정을 어떻게 하고 사용중이신지 궁금합니다!
FieldError 생성자의 @Nullable String[] codes의 인자 작성시 properties를 통해 메세지를 한눈에 관리한다는 점은 좋지만 인텔리제이 ultimate를 씀에도 자동완성도 지원이 안되고, 잘못된 메세지 코드를 입력했을 때 컴파일 과정에서 오류가 발생하지 않는데 이게 꼭 좋은 방법인가요? 특정 메세지를 담고있는 클래스를 생성하고 해당 클래스 내에 메세지 필드를 적어놓는다면 이런 문제는 해결할 수 있을거 같은데 왜 properties를 통해 메세지를 관리하는지 궁금합니다
안녕하세요, 강의를 수강하는 학생입니다. <문제 상황> 이때까지 강의를 잘 따라오다가 갑자기 뷰 리졸버를 위해 OldController 클래스를 작성하고 properties도 수정했는데 뷰가 제대로 나오지 않았습니다. 그래서 문제를 찾다가 애초에 servlet도 호출이 잘 안되는거 같아서 다시 스프링 프로젝트 파일을 생성하여 이전에 배운 프레임워크를 간단하게 다시 구현하고 실행을 했습니다만, 여전히 문제가 발생합니다. 어떻게 해결해야 할지 모르겠습니다. *수정 : 확인을 다시해보니, 서블릿은 정상적으로 호출이 되며, viewPath도 잘 만들어지고 view 객체 클래스의 render 메서드까지 잘 도달했지만, foward 메서드 실행 후에 계속 같은 문제가 발생하고 있습니다. 꼭 좀 도와주세요!! (강의를 듣고 싶습니다 ㅠㅠ) <문제 코드> 깃허브에 코드를 올려놓았습니다. 주소 : https://github.com/bread-Cat13/mvc1/tree/main/mvc/src/main/java/com/example/mvc <문제 사진> 혼자서 해결해보고자 했지만 잘 안되어 질문드립니다. 많은 정보를 작성해놓지 않아 죄송합니다. 질문글 읽어주셔서 감사합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 내부 호출 문제점은 REQUIRES_NEW 어노테이션이 적용된 경우에도 동일하게 발생하는 것 같은데 맞을까요?? 아래 코드를 실행했을 때 커밋이 한 번도 발생하지 않는 것을 로그로 확인했습니다. 혹시나 해서 여쭤봅니다!! @Slf4j @SpringBootTest public class InternalCallV1Test { @Autowired CallService callService; @Test void externalCall() { callService.external(); } @TestConfiguration static class InternalCallV1TestConfig { @Bean CallService callService() { return new CallService(); } } @Slf4j static class CallService { @Transactional(propagation = Propagation.REQUIRES_NEW) public void internal() { log.info("call internal"); printTxInfo(); } @Transactional public void external() { log.info("call external"); printTxInfo(); this.internal(); throw new RuntimeException("종료"); } private void printTxInfo() { boolean txActive = TransactionSynchronizationManager.isActualTransactionActive(); log.info("tx active={}", txActive); } } }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 7분28초에 어마어마한 코드를 복사붙여넣기를 한다고 했는데 어디에다가 붙여놓는걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 순수 JDBC 를 공부 중인데 너무 복사붙여넣기가 많고 화면을 멈춰도 빨라요...어디꺼를 가지고 와야 붙여넣기를 해도 오류가 안생길까요?ㅜㅜ package com.example.springpractice.repository; import com.example.springpractice.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; import static java.sql.DriverManager.getConnection; import static org.apache.tomcat.util.descriptor.InputSourceUtil.close; 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; } @Override public Optional<Member> findByName(String name) { return Optional.empty(); } @Override public List<Member> findAll() { return List.of(); } }
체크예외인 SqlException의 문제점을 리포지토리 레벨에서 런타임 예외로 바꾸어 유지보수성을 향상시킨다고 생각했습니다. 여기서 드는 생각은, 애초에 자바 진영(?) JDBC측에서 sqlException 자체를 언체크로 다시 설계해서 내뿜도록 하면 되지 않나요? 결국 예외가 발생하는 가장 처음 부분에서 잡는 것이지만 Jpa exception이 올라온다면 이를 또 바꾸어줘야 하는데 애초에 체크였던 sql,jpa exception을 언체크로 뿌려지게끔 하지 않는 이유를 모르겠습니다. 체크는 꼭 인지해서 처리해야할 예외를 체크로 만든다고 했는데 사실상 처리하기 어려운 예외로 굳어져서 코드들만 유지보수성을 떨어뜨리는 체크예외를 라이브러리를 만든 측에서 언체크로 바꾸어주면 안되나 싶었습니다. 제가 어떤 이해가 부족할까요... 아마도 언체크 예외로 바꾼다면 발생할 문제들이 존재할 것 같은데. (이전에 배운 exceptionHandler가 언체크를 못잡는 것도 아닌데 말이죠)
HelloSpringApplication 실행에서 초록색 > 버튼으로 run (실행)하는 창이 뜨지 않습니다.. ㅠㅠ 강의대로 따라했는데, 여기서 진도를 못나가고있어요 ㅠ 마우스를 갖다대도 뜨지않습니다. 김영한강사님 자바 입문편 볼때는 > run 버튼이 잘떳는데 왜 spring에선 강의영상처럼 안뜰까요 ㅠㅠ? ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요.