묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Controller + RestController 함께 사용
안녕하세요! 스프링 로드맵을 수강하고 Spring Boot + Thymeleaf 로 간단한 프로젝트를 진행하던 중 궁금한 점이 있어 질문 남김니다. 좋아요 기능이나 모달창에서 일어나는 동작들은 매번 결과를 view를 넘겨주기 번거롭거나 처리하기 복잡한 것 같아서, 이러한 부분들만 일반 Controller 말고 Rest Controller를 호출하고 처리하도록 구현하고 싶은데 혹시 이런 방식으로 혼용해서 사용해도 괜찮을까요? 아니면 프로젝트의 일관성을 위해 일반 Controller만 사용하는 것이 좋을까요? 감사합니다.
-
해결됨스프링부트 시큐리티 & JWT 강의
강의 실습하다가 막히는 분들 참고(2024년8월 기준)
2024년 8월 현재 강의들으며 실습하다 막히는 분들 참고용으로 제 소스 공유합니다.막혔던 부분 커뮤니티에 해결방법 공유해주신 분들 덕분에 실습 잘 하고 있습니다.모두 감사합니다^^ +++ OAuth2.0 실습 소스 +++https://github.com/hhmkorea/studySpringBoot/tree/main/security1+++ JWT 실습 소스 +++https://github.com/hhmkorea/studySpringBoot/tree/main/jwt##### 막힌 부분 뚫어준 커뮤니티 글 출처 #####1. BycryptPasswordEncoder 주입시 순환참조 문제 해결!! (9강) : https://www.inflearn.com/questions/476829 페이스북 로그인 버튼 만든 뒤 error 발생하던 문제 해결!! (10강) : https://www.inflearn.com/community/questions/10495293. SecurityConfig 최신 버전에 맞게 수정!! (20강~22강) : https://www.inflearn.com/questions/1335544authenticationManager() 문제 해결!! (24강) : https://www.inflearn.com/community/questions/1145565 authenticationManager 값이 null로 나오는 문제 해결!!(25강) : https://www.inflearn.com/questions/1266285>>> 24강 강의 실습 전 준비할 것 : 회원가입 구현 <<< 아래 소스에 회원가입 구현 부분 추가 한다.소스명 : JwtApplication. java...@BeanBCryptPasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}... 소스명 : RestApiController. java...@PostMapping("join")public String join(@RequestBody User user) {user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));user.setRoles("USER"); // 권한은 기본으로 USER로 설정합니다. ---> security 최신 버전에서는 권한 적용시 ROLE_ 쓰지 않음.userRepository.save(user);return "회원가입완료";}... application.yml 파일 수정해서 테이블을 새로 만든다.ddl-auto: create 로 수정하고 서버 재시작 postman으로 회원가입 테스트하기.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 부트의 역할은 쉽게 이해하려면 뭐리고 셍각하면 좋을까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]자바 초보가 이해하기 쉽게 스프링 부트의 역할을 알고 싶어요.\그리고 예전에는 이클립스로 개발을 많이들 하던데, 지금은 어떤 IDE로 개발하는 지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
QueryDsl관하여 질문 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]안녕하세요. 근래에 쿼리 DSL을 배우면서 적용을 해보고 있습니다! 쿼리dsl을 사용하면 @OneToMany 등등 연관관계 매핑이 필요 없는지 궁금합니다. 필요하다면 왜 필요한지도 궁금합니다!!
-
미해결스프링부트 시큐리티 & JWT 강의
구글 소셜 로그인 302
소셜 로그인 버튼을 누르면 302가 뜨면서 구글 로그인 페이지로 이동하지않는데 왜 그런 건가요? 브라우저 캐시 문제인가싶어서 지우고도 해봤지만 결과는 똑같아요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
delivery 인식 불가 ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)에3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요.위 강의를 듣고잇는데, delivery가 제 개발환경에서는 인식이 안됩니다...선언부 미인식 문제 자주 하는 질문을 참고해서 IDE 초기화도 해보고 했는데, 안되서 질문드립니다. 뭔가 설정을 잘못한거 같아서 JDK와 Gradle 설정 부분도 제대로 되어 있는 것 확인했습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
application.properties 한글 깨짐 질문입니다!
처음에 주석처리한 부분이 이렇게 깨지는 현상이 발생해서 file Encodings 설정도 UTF-8로 바꿔보고 VM 옵션 설정에 -Dfile.encoding=UTF-8 도 입력해봤는데 인식이 잘 안되네요... 혹시 영한님이나 답변해주시는 개발자분들께서는 설정을 어떻게 하고 사용중이신지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
ManyToOne 에서 fetch join 에 대해 질문 있습니다.
강의 1분쯤에 아래와 같은 내용이 있습니다."ManyToOne이나 OneToOne 같은건 fetch join을 하거나 DB 입장에서는 left out join해서 한번에 데이터를 다 끌고와도 성능에 무리가 없는데 컬렉션 조회 같은 경우에는 조회를 하는 순간 DB 입장에서는 데이터가 뻥튀기 된다."궁금한 부분은 ManyToOne 관계에서 fetch join에서도 DB 입장에서 데이터가 뻥튀기 되지 않나 라는 생각입니다.예를들어 member1, member2, member3이 teamA에 속해 있다고 했을때 이 상황에서 fetch join을 해도 어차피 내부적으로는 join으로 바뀌게 되므로 결과적으로는 아래와 같이 출력이 되므로 DB 입장에서 결국 이 상황도 데이터 뻥튀기 이지 않나 라는 생각이 듭니다.member1 : teamAmember2 : teamAmember3 : teamA
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
WebDataBinder는 비효율적인거 아닌가요?
코드 면에서는 깔끔하지만 WebDataBinder가 요청마다 새로 만들어진다면 그만큼 객체를 생성하는데 오버헤드가 발생하는 것 아닌가요? 싱글톤으로 관리할 수 있는 addItemV5에 비해서 성능적으로 좋지 않다고 느껴지는데 맞나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
properties의 유용성에 대해 질문드립니다
FieldError 생성자의 @Nullable String[] codes의 인자 작성시properties를 통해 메세지를 한눈에 관리한다는 점은 좋지만인텔리제이 ultimate를 씀에도 자동완성도 지원이 안되고, 잘못된 메세지 코드를 입력했을 때 컴파일 과정에서 오류가 발생하지 않는데 이게 꼭 좋은 방법인가요?특정 메세지를 담고있는 클래스를 생성하고 해당 클래스 내에 메세지 필드를 적어놓는다면 이런 문제는 해결할 수 있을거 같은데왜 properties를 통해 메세지를 관리하는지 궁금합니다
-
미해결스프링 핵심 원리 - 기본편
Prototype스코프
section5 싱글톤 부분에서 설명하신 스프링을 적용하지 않은 DI컨테이너는 1개의 인스턴스가 아니라 요청이 올 때마다 여러 개의 인스턴스를 생성한다고 하셨는데 section9 빈 스코프 부분에서 말씀하신 프로토타입같은 경우와 동일하다고 보면되나요? 다만 프로토타입은 생성과 DI후 컨테이너에서 관리하지 않아 위의 경우와 다르게 메모리 낭비를 줄일 수 있다고 이해해도될까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Servlet 호출 안되는 문제 발생
안녕하세요, 강의를 수강하는 학생입니다. <문제 상황>이때까지 강의를 잘 따라오다가 갑자기 뷰 리졸버를 위해 OldController 클래스를 작성하고 properties도 수정했는데 뷰가 제대로 나오지 않았습니다. 그래서 문제를 찾다가 애초에 servlet도 호출이 잘 안되는거 같아서 다시 스프링 프로젝트 파일을 생성하여 이전에 배운 프레임워크를 간단하게 다시 구현하고 실행을 했습니다만, 여전히 문제가 발생합니다. 어떻게 해결해야 할지 모르겠습니다. *수정 : 확인을 다시해보니, 서블릿은 정상적으로 호출이 되며, viewPath도 잘 만들어지고 view 객체 클래스의 render 메서드까지 잘 도달했지만, foward 메서드 실행 후에 계속 같은 문제가 발생하고 있습니다. 꼭 좀 도와주세요!! (강의를 듣고 싶습니다 ㅠㅠ) <문제 코드>깃허브에 코드를 올려놓았습니다.주소 : https://github.com/bread-Cat13/mvc1/tree/main/mvc/src/main/java/com/example/mvc<문제 사진> 혼자서 해결해보고자 했지만 잘 안되어 질문드립니다. 많은 정보를 작성해놓지 않아 죄송합니다.질문글 읽어주셔서 감사합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
REQUIRES_NEW와 내부 호출
[질문 템플릿]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); } } }
-
미해결Java 마이크로서비스(MSA) 프로젝트 실습
Item-service에 접속이 안됩니다.
024-08-22T15:34:50.384+09:00 WARN [mstudy,,] 21188 --- [mstudy] [ restartedMain] [ ] z.r.AsyncReporter$BoundedAsyncReporter : Timed out waiting for in-flight spans to send2024-08-22T15:34:50.386+09:00 INFO [mstudy,,] 21188 --- [mstudy] [ restartedMain] [ ] o.apache.catalina.core.StandardService : Stopping service [Tomcat]2024-08-22T15:34:50.412+09:00 INFO [mstudy,,] 21188 --- [mstudy] [ restartedMain] [ ] .s.b.a.l.ConditionEvaluationReportLogger :Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-08-22T15:34:50.427+09:00 ERROR [mstudy,,] 21188 --- [mstudy] [ restartedMain] [ ] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'activeMQConfig': Injection of autowired dependencies failedat org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:514) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1421) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) ~[spring-context-6.1.10.jar:6.1.10]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.10.jar:6.1.10]at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.2.7.jar:3.2.7]at com.study.mstudy.MstudyApplication.main(MstudyApplication.java:12) ~[classes/:na]at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na]at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.2.7.jar:3.2.7]Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.activemq.broker.url' in value "${spring.activemq.broker.url}"at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180) ~[spring-core-6.1.10.jar:6.1.10]at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-6.1.10.jar:6.1.10]at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) ~[spring-core-6.1.10.jar:6.1.10]at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-6.1.10.jar:6.1.10]at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:200) ~[spring-context-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:964) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1374) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:784) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:767) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:508) ~[spring-beans-6.1.10.jar:6.1.10]... 20 common frames omittedProcess finished with exit code 0에러 나옵니다.이강의 요약하면..먼저config-server에서 active-mq.yml파일 생성합니다.activemq:broker:url: tcp://localhost:61616topic: mstudy그다음 history-server와 item-server에 import를 해줍니다.hisotry-server에 config환경설정하고item-server?에? config파일했습니다만.item-server만 저러는데..왜 연결이 안될까요?history-server는 잘 됩니다.저는 프로젝트 명칭만 변경한 상태입니다.로그를 보시고 무엇이 잘못되엇는지 한번 확인해주시고.지도 부탁드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
복사붙여넣기 어디에 하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]7분28초에 어마어마한 코드를 복사붙여넣기를 한다고 했는데 어디에다가 붙여놓는걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
코드 복사 붙여넣기가 너무 많아서 어디꺼를 가지고 와야하는데 좀더 설명해주세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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(); } }
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
SQLexception 질문
체크예외인 SqlException의 문제점을 리포지토리 레벨에서 런타임 예외로 바꾸어 유지보수성을 향상시킨다고 생각했습니다.여기서 드는 생각은, 애초에 자바 진영(?) JDBC측에서 sqlException 자체를 언체크로 다시 설계해서 내뿜도록 하면 되지 않나요? 결국 예외가 발생하는 가장 처음 부분에서 잡는 것이지만 Jpa exception이 올라온다면 이를 또 바꾸어줘야 하는데 애초에 체크였던 sql,jpa exception을 언체크로 뿌려지게끔 하지 않는 이유를 모르겠습니다.체크는 꼭 인지해서 처리해야할 예외를 체크로 만든다고 했는데 사실상 처리하기 어려운 예외로 굳어져서 코드들만 유지보수성을 떨어뜨리는 체크예외를 라이브러리를 만든 측에서 언체크로 바꾸어주면 안되나 싶었습니다.제가 어떤 이해가 부족할까요... 아마도 언체크 예외로 바꾼다면 발생할 문제들이 존재할 것 같은데. (이전에 배운 exceptionHandler가 언체크를 못잡는 것도 아닌데 말이죠)
-
미해결스프링 시큐리티 OAuth2
access token 의 용도
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. keycloak,kakao 같은 authorization server 에서 발급하는 access token 은 userinfo 를 가져오기 위한 token 이라고 생각했는데, resource server 같은 자원도 이 토큰으로 접근 하는게 맞는지 궁금합니다. 수업을 위한 예제인지 실제로 이렇게 사용을 많이 하는지요. 카카오같은 인증서버에서 받은 access token 은 카카오에서 유저 정보를 가져오기 위함이고, resource server 의 다른 api 접근 목적은 아니라고 생각했었는데요. 제가 잘못 알고 있었는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
run 실행버튼이 아예 뜨지않습니다. ㅠㅠ
HelloSpringApplication 실행에서 초록색 > 버튼으로 run (실행)하는 창이 뜨지 않습니다.. ㅠㅠ 강의대로 따라했는데, 여기서 진도를 못나가고있어요 ㅠ 마우스를 갖다대도 뜨지않습니다. 김영한강사님 자바 입문편 볼때는 > run 버튼이 잘떳는데 왜 spring에선 강의영상처럼 안뜰까요 ㅠㅠ?=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
FieldError의 bindingFailure 질문
FieldError의 bindingFailure에 바인딩이 실패했는지 여부를 적어주고 영한님은 false를 입력해주셨는데요 충분히 사용자가 가격에 1111 대신 qqq를 작성할 수 있는데, 왜 false가 들어오는것인가요? 즉, 사용자가 타입에 맞는 폼을 작성하는지 안하는지 개발자 입장에서 알 수 없는 노릇인데, false/true중 하나를 입력한다는 것이 이해가지 않습니다.