묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 시퀀스
[질문 내용]안녕하세요.H2에 시퀀스가 연속적으로 나오지 않고 ID 값이 1,2,33처럼 나옵니다.그래서 다른분들의 질문을 참고해보았는데INFORMATION_SCHEMA에 들어있는 시퀀스를 바꿔야하는데항상 이와 같은 질문에 첨부해주신 블로그에는 따로 시퀀스가 파일??이 존재하였고 그걸 참고로 다양한게 대입해서 바꾸려고 하는데 안되네요... 어떻게 해야하나요.. 대입했던 내용ALTER SEQUENCE HIBERNATE_SEQUENCE RESTART WITH 1ALTER SEQUENCES SEQUENCES RESTART WITH 1 ALTER SEQUENCES INFORMATION_SCHEMA.SEQUENCES RESTART WITH 1
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
requestParamV2 에서 @ResponseBody 에러
[질문 내용]@RequestBody 어노테이션에 밑줄과 함께 이런 warning이 뜹니다. '@RequestBody' not applicable to method제 IDE에서만 이러는 거 같은데 무엇이 잘못된 걸까요?일단 @Controller 를 @RestController로 수정하여 동작하도록 고치긴 했습다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
동영상 확대 가능할가요?
이동중 수강 및 노트북 수강을 하고 있는데 동영상들이 레터박스 처리가 되어 있는가 같아요.(플레이어에서 확대도 기능도 안되고.... 유튜브 무료강의는 확대기능이 지원되어 좋습니다.)레터박스 없애주시거나 플레이어에서 확대기능 지원이 가능할가요?노트북 화면이 작은데 레터박스까지 있으니 더 작게보여서 학습에 어려움이 있습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cannot resolve symbol persistence
커뮤니티에 올라온 이전 질문들 방법으로 해봐도 계속 안됩니다...!뭐가 문제일까요?!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프로그램 실행 에러메시지
서버실행할때 콘솔에 이런 에러가 남습니다. 왜 남는지 알려주세요ㅜㅜ 코딩화면입니다. Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2023-03-19T20:38:12.772+09:00 ERROR 10500 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failedat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier(AbstractAutowireCapableBeanFactory.java:1236) ~[spring-beans-6.0.6.jar:6.0.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1210) ~[spring-beans-6.0.6.jar:6.0.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1157) ~[spring-beans-6.0.6.jar:6.0.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561) ~[spring-beans-6.0.6.jar:6.0.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521) ~[spring-beans-6.0.6.jar:6.0.6]at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.6.jar:6.0.6]at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.6.jar:6.0.6]at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.6.jar:6.0.6]at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.0.6.jar:6.0.6]at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:199) ~[spring-context-6.0.6.jar:6.0.6]at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:747) ~[spring-context-6.0.6.jar:6.0.6]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:565) ~[spring-context-6.0.6.jar:6.0.6]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) ~[spring-boot-3.0.4.jar:3.0.4]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-3.0.4.jar:3.0.4]at org.springframework.boot.SpringApplication.run(SpringApplication.java:310) ~[spring-boot-3.0.4.jar:3.0.4]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304) ~[spring-boot-3.0.4.jar:3.0.4]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293) ~[spring-boot-3.0.4.jar:3.0.4]at heewon.servlet.ServletApplication.main(ServletApplication.java:12) ~[classes/:na]Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/annotation/WebServletat org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-3.0.4.jar:3.0.4]at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:49) ~[spring-boot-3.0.4.jar:3.0.4]at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-3.0.4.jar:3.0.4]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier(AbstractAutowireCapableBeanFactory.java:1230) ~[spring-beans-6.0.6.jar:6.0.6]... 17 common frames omittedCaused by: java.lang.ClassNotFoundException: jakarta.servlet.annotation.WebServletat java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]... 21 common frames omittedProcess finished with exit code 1
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
조회에서 문의 드립니다.
menu_search에서일부 조회가 되지 않아 문의드립니다.현재 시작 기한을 넣고 end_date의 값을 넣고 kind 정보를 통한 조회를 하면 조회가 되지만, 텍스트 박스를 통한 조회와 기본 전체 조회가 이루어지지 않고, 영상과는 다르게 조회 후 start_date와 end_date의 설정이 풀리는 문제로 문의드립니다. 반환은 return "views/menu/menu" 입니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
실행시 최상단 폴더
인텔리제이가 익숙하지가 않아서 실행시에 궁금한점이 있어서요.강의에서는 왼쪽 실행시 로그에 최상단 폴더 Test Results부터 실행이 되는데, 저는 메인에서도 그렇고 test코드에서도 실행을 시키면 크 클래스가 로그의 최상단폴더가 됩니다. 강의처럼 최상단 폴더부터 보려면 어떻게 해야되는지 궁금합니다.드라이브 링크 공유하겠습니다.https://drive.google.com/file/d/1L8ERakx6jM2ZK_L4P3OaxtrLN5GUj2SZ/view?usp=share_link
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링데이터 JPA 상속 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]https://www.inflearn.com/questions/116505/%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4 위 내용을 읽고 이해한게 맞는지 질문하게 되었습니다.SpringDataJpaMemberRepository 인터페이스가 JpaRepository와 MemberRepository 인터페이스를 상속받는데"MemberRepository에 정의된 추상 메서드들을 SpringDataJpaMemberRepository에서 재정의할필요없이 JpaRepository 인터페이스에 기본적으로 정의되어 있는걸 상속받기 때문에 재정의 없이 바로 사용할 수 있다" 라고 이해했습니다.그러나 만약 JpaRepository에서 정의된 기본 기능 외에 다른 기능이 필요하다면SpringDataJpaMemberRepository 또는 부모인 MemberRepository에서 기능을 추가할 수 있는데,SpringDataJpaMemberRepository에 추가하게 되면 스프링데이터jpa의 의존도가 올라가지만 스프링데이터jpa가 제공하는 편의기능으로 사용이 사용하기 편하게 되고MemberRepository에 기능을 추가하게 되면 SpringDataJpaMemberRepository 에 간단히 내용을 적어 편하게 사용하는것보다는 복잡하지만, 대신에 스프링데이터Jpa의 의존도는 떨어진다.라고 이해했는데 맞는지 확인해주실 수 있으신가요?? :)
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
커넥션 풀과 쓰레드 풀의 차이가 먼가 궁금합니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]커넥션 풀과 쓰레드 풀의 차이점이머에요??
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
menu_ins 질문.
기존 v1 코드가 중복되는 문제로 v2에 관련된 내용을 새로운 프로젝트로 작성 중에 있습니다.그런데 문제는 menu_ins 구조에서 다음과 같은 오류가 발생을 하고 있습니다.There was an unexpected error (type=Internal Server Error, status=500).nested exception is org.apache.ibatis.binding.BindingException: Parameter 'strCoffee' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'strCoffee' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2] 대충봐도 파라미터 인덱스 배열의 순서가 불일치 하고 파라미터 인자값의 문제인것 같아 이부분을 확인하다 결국 기존의 코드를 그대로 복사 붙여넣기를 해도 진전이 없습니다. 어떤상황에 처하면 이러한 오류가 발생하는지를 알고 싶습니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
build tools - gradle 로 변경
예전 답변을 보고 intellij속성을 gradle 속성으로 바꾸니 실행이 됐는데 저 실행하는게 계속돌아가도 상관없는 부분인가요? 아니면 문제가 해결이 안된건가요localhost:8080/hello 까지 실행은 잘 됩니다.정지하면 저렇게 에러메시지가 나와서문제있는거 같아서 질문올립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HTTP 응답 메시지도 콘솔 로그로 확인할 수 있나요 ??
강의중 HTTP 요청 메시지 로그를 확인하려면[application.properties] 파일에 다음의 설정을 추가하면 콘솔에서 HTTP 메시지를 확인할 수 있다고 배웠는데logging.level.org.apache.coyote.http11=debugHTTP 응답 메시지도 볼 수 있는 방법이 있을까요 ??
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
반환값 옆에 붙는 어노테이션도 같은 건가요?
https://www.baeldung.com/spring-mvc-image-media-data 이거보면서 다시 복습하고 있었는데요@RequestMapping(value = "/image-byte-array", method = RequestMethod.GET) public @ResponseBody byte[] getImageAsByteArray() throws IOException { InputStream in = servletContext.getResourceAsStream("/WEB-INF/images/image-example.jpg"); return IOUtils.toByteArray(in); };@RequestMapping(value = "/image-byte-array", method = RequestMethod.GET) @ResponseBody public byte[] getImageAsByteArrayV2() throws IOException { InputStream in = servletContext.getResourceAsStream("/WEB-INF/images/image-example.jpg"); return IOUtils.toByteArray(in); }이렇게 반환타입 옆에 어노테이션이 붙어있더라구요위랑 아래랑 같은 코드가 맞죠 ?그런데 위 처럼 작성하는 이유가 있을까요 ?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Cannot resolve method 'run(Class String[])'가 Cannot resolve symbol 'String' 와 같은 오류인가요?
1. 강의 내용과 관련된 질문인가요? (○예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (○예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (○예/아니오) [질문 내용]안녕하세요.강사님께서 처음에 말씀하신 대로 설치했는데, 아래와 같은 오류가 떴습니다. 두 가지 오류의 원인(?)이 다른 것일 거라는 가정하에 첫 번째 것부터 구글링으로 JDK 버전을 선택하래서 해결했는데,두 번째 오류인 Cannot resolve method 'run(Class String[])'까지 모두 얼떨결에 해결되어 버렸습니다(?) 아! 해결됐다! 그리고 그냥 넘어가도 되는 사안인 건가요.. 아님 원인을 알고 가야 하나요...??두 번째 오류라고 나온 문장은 구글링 해봐도 계속 첫 번째 오류 문구 관련 글만 나오는데같은 오류인 건가요..?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2.bat 실행후, H2 콘솔에서 연결을 누르면 오류가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 강의 잘 듣고 있습니다.window 운영체제라서 h2.bat 실행후 콘솔창이 떠서 연결을 누르면 아래 오류가 뜨는데이런 오류가 뜹니다. 왜그런 걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
화면 웹 기능-홈 화면 추가 강의 관련 문의입니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]localhost:8080을 열면 index.html이 열리고 home.html이 연결되지 않습니다.idex.html파일을 제거하고 실행하면 white label error가 뜨는데 어떻게 해결해야 할까요...?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Could not autowire. No beans of 'MemberRepository' type found.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]@Configuration public class SpringConfig { private final MemberRepository memberRepository; @Autowired public SpringConfig(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Bean public MemberService memberService() { return new MemberService(memberRepository); } // @Bean // public MemberRepository memberRepository() { // //return new JdbcTemplateMemberRepository(dataSource); // return new JPAMemberRepository(em); // } }SpringConfig() 함수의 memberRepository 인자 부분에서 Could not autowire. No beans of 'MemberRepository' type found. 에러가 발생합니다. 그래서 최종적으로 HelloSpringApplication을 실행시켜보면Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2023-03-17T22:02:24.272+09:00 ERROR 20624 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of constructor in hello.hellospring.SpringConfig required a bean of type 'hello.hellospring.repository.MemberRepository' that could not be found. Action: Consider defining a bean of type 'hello.hellospring.repository.MemberRepository' in your configuration. Process finished with exit code 1에러가 발생합니다. @Transactional public class MemberService { private MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /* * 회원 가입 * */ public Long join(Member member) { // 같은 이름이 있는 중복 회원 X validateDuplicateMember(member); memberRepository.save(member); return member.getId(); } private void validateDuplicateMember(Member member) { // 중복 회원 검증 함수 memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } /* * 전체 회원 조회 * */ public List<Member> findMembers() { List<Member> all = memberRepository.findAll(); return memberRepository.findAll(); } /* * 특정 회원 조회 * */ public Optional<Member> findOne(Long memberId) { return memberRepository.findById(memberId); } }MemberService에 있는 애노테이션은 다 제거했는데 왜 오류가 발생하는지 모르겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
application.properties 파일 등록
안녕하세요. 질문이 있습니다.application.properties 파일에서spring.messages.basename=messages,config.i18n.messages 작성하는 것과 spring.messages.basename=messages 작성하는 것이 같다고 생각해도 될까,, 궁금합니다! spring.messages.basename=messages 같은 경우는 생략되어 있다고 해주셨는데, 'config.i18n.messages' 이 과정이 생략 된거라고 봐도 될까요??
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
선생님 68강 관련해서 질문 있어요~! 부탁드리겠습니다~
선생님께서 알려주신대로 하였고(resultMap) 문제없이 잘 작동하였습니다!~ 오류가 생겨서 질문드리는게 아니오라...관련된 개념이 궁금해서 질문드려요~!컨트롤러에서 Member mvo = memberMapper.getMember(m.getMemID());이렇게 가져올 때 상황이에요~▲위 테이블은 mem_stbl 테이블이고,▲그 아래 테이블은 mem_auth 테이블이에요~▲여기서 이렇게 resultType="kr.board.entity.Member"으로가져올 수 없는 이유를 잘 모르겠어요sql 테이블이 매퍼.xml 파일에서select * from mem_stbl mem LEFT OUTER JOIN mem_auth auth on mem.memID=auth.memID where mem.memID= '질문';이렇게 합쳐지고 그 결과 테이블이이것 인데요~<▼두서가 길었는데요! 질문의 핵심입니다!▼>Member 클래스의 멤버 변수에 넣지 못하는 이유가결과 집합의 행이 2개여서 그런 건가요?그래서 reseltMap을 써주는 것인가요??만약 그렇다면 1행으로 만들어준다면(회원 가입 시 체크박스 1개를 선택한다면) resultMap을 사용하지 않고 resultType="kr.board.entity.Member"로 해줘도 괜찮은 건가요?부탁드리겠습니다!아예 잘못 알고 있는 걸까요? ㅠ------------------선생님 강의 최고입니다! 애청자에요 하하하ㅎㅎ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
에러 처리에 대해 질문이 있습니다.
에러 처리를 할 수 있는 방법들이 많아지니 어느 상황에 어느 코드를 작성해야하는지 생각이 많아져서 질문 남깁니다. 일단 제가 알고 있는 방법은 1. try,catch로 에러를 잡기2.체크 에러를 런타임 에러로 변환해서 throw하지 않기3. @ExceptionalHandler로 에러 처리하기이렇게 세 가지를 강의를 통해 알게 됐습니다. 이러한 것들을 실무 때 어느 상황에서 써야 좋을 지 실무에서 오래 있던 김영한 이사님의 생각이 듣고 싶어서 질문 드립니다. 개인적으로는 그냥 interface의 구현체에서 try catch로 모든 에러를 잡으면 interface에서도 throw sqlExcpetion같이 메서드 이름에 적을 필요도 없으니 체크 에러를 런타임 에러로 변환할 필요도 없을 거라고 생각합니다. 그리고 @ExceptionalHandler의 사용 용도도 생각해봤는데 잘 모르겠습니다. @ExceptionalHandler를 사용하게 되면 체크 에러가 생기게 되면 메소드 이름에 throw를 해서 에러를 던져야하는데 그럼 체크 에러에 종속적이게 될 거라고 생각합니다. 그래서 try catch로 모든 걸 해결하면 되지 않을까? 라는 결론에 도달하게 됐습니다. 공부할수록 이 생각에서 확장이 안되는데 실무에서 김영한 이사님은 어느 식으로 하는 지 간단하게라도 알려주시면 감사할 것 같습니다.