묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
sql 연결 오류
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]이러한 오류가 뜨는데 어떻게 해결해야 할지 잘 모르겠습니다 ㅠㅠ application.yml 코드는 다음과 같습니다 spring: datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "" driver-class-name: com.mysql.cj.jdbc.Driver
-
해결됨죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
processorNonTransactional 멱등성 질문
강의 잘 보고 있다. 잘 정리된 자료 덕분에 배치 작업을 이해하고 있는 중이다. 다만 설명 중 이해 안되는 부분이 존재한다. 바로 이 부분 멱등하지 않은 ItemProcessor를 내결함성(FaultTolerance) 기능과 함께 사용해야 하는 상황이라면, 반드시 processorNonTransactional를 설정하도록 하자. 오히려 멱등하지 않은 ItemProecessor의 경우에는 이 설정을 비활성화 해야 하는 거 아닌가? 나의 부족한 영어실력과 GPT를 통해 스프링 배치는 ItemProcessor가 트랜잭션이나 멱등성을 가져야 한다고 되어 있는 것으로 이해하였다. It must be either transactional or idempotent.출처: https://docs.spring.io/spring-batch/reference/transaction-appendix.html 떠라서 멱등하지 않은 ItemProcessor는 processorNonTransactional()을 지양해야 하는 것으로 나는 이해된다... 답변 부탁한다. (존대로 질문하면 rm -rf 하신다길래 이렇게 남겨요 ㅎㅎ..)
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품 등록 처리, 포스트 맵핑,addItem 메서드에서 리턴값(view 질문)
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 세션8 웹페이지 만들기를 영한님 강의를 보면서 혼자서 output까지 할수 있는상황을 만들려고 코드를 보고,따라 치고 그러는 와중 이었습니다.그러는 와중 상품 등록 처리에서 완료하고, 상품 상세 폼으로 가지 말고, 그냥 전체 상품을 보여주자 라는 생각이 들어서 코드의 리턴값(뷰값을) 을 "basic/item" 에서 "basic/items"로 변환을 하였습니다. (사진 참조)그리고 인터넷으로 상품 등록을 시키고 결과 화면이.이렇게 나오는것이었습니다.그래서 결과가 잘나오는지 확인하기 위해서 localhost8080:/basic/items을 인터넷으로 쳐보니 등록된 상품이 나오는 것을 확인할 수 있었습니다.그래서 어떻게 해야 결과가 나올까 생각하다가 리다이엑트가 생각나서 리다이엑트를 적용하고 등록하니 위에 화면처럼 다시 갈수 있는것을 확인할 수 있었습니다. 그래서 질문이 왜 리다이렉트를 쓰면 결과가 정상적으로 나오고 그냥 리턴값을 basic/items으로 하면 화면은 정상적으로 아이템즈 화면인데, url값은 basic/items/add 가 추가된것인지 궁금합니다. 답변부탁드립니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
db 연결 url 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]h2데이터베이스를 사용해보고 난 후 직접 mysql을 연결하여 해보고 싶어져 연동을 시도하였습니다.<오류화면><application.properties>그런데 이때 사진과 같은 오류가 발생합니다. application.properties에 mysql에 대한 정보를 정확히 적었으나 해당 오류가 발생합니다. application.properties의 위치는 src/main/resources에 위치하고 있습니다.사진과 같이 build.gradle에 의존성도 추가해 두었습니다.이 때, 영상에서 말씀해주신대로 빌드를 intelliJ로 설정해두면 해당 오류가 발생하나 gradle로 변경하면 정상적으로 db와 연결되어 작동합니다,,intelliJ가 속도가 빠르다고 하셔서 사용하고 있었으나 intelliJ로 빌드하면 오류가 발생하는지 모르겠습니다...ㅜ코드가 정확히 작성되어도 해당 오류가 발생할 수 있는 것일까요? 이대로 gradle로 빌드하면서 나아가도 나중에 문제가 없을지 궁금합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
FK 제약조건 관련해서 자동 키생성 문제
해당 강의를 수강하고 하루죙일 찾아봤지만 실질적으로는 문제를 해결하지 못했습니다. ㅜㅜ 문제가 왜 발생했는지 추적한 결과실제로 xml를 불러들일때, fk 관련 속성을 잘 갖고 오지만,@JoinColumn 을 생성할 때 fk 속성을 삽입하는 코드가 실질적으로 존재하지 않고,fk제약 조건 생성을 위해 alter 시에@JoinColumns로 지정됩니다. 실제 어노테이션 기법으로 작성 할 경우 @JoinColumn으로 수집이 되지만,-참고-@JoinColumns 으로 수집 시xml 스펙에서 join-column 태그는 Unbounded로 스펙이 정해져 그렇게 처리 된 거 같아요. 하이버네이트 6.6 버전에서는 jpa 매핑 관련해서 xml 3.1 버전으로 관리되고, 7.0 버전부터는 xml 7버전으로 매핑이 관리될 것 같습니다. 하이버네이트 6.6 버전에선 실질적으로 버그라고 생각되고, 7.0 버전에는 JPAXMLOverridenAnnotationReader 클래스가 사라진 상황이라 7 버전으로 올려서 확인해봐야 할 것 같지만, 스프링 부트 3.x.x버전은 아무래도 하이버네이트 6.6 버전 기준으로 버저닝이 될 거 같아 해당 문제의 해결 방법은 실질적으로 찾진 못했습니다. ㅜ
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
조회 시 엔티티를 조회하는 것이 아닌QueryDSL을 많이 사용 시 Dto는 어떻게 하나요?
일반적인 JpaRepository를 사용할 경우Entity -> Domain model 객체로 변환하는데보통 상세 조회, 목록 조회 시에는 QueryDSL를 사용하고, 또한 조회 시 Projections을 이용하여 Dto로 반환하는데요. 이 때, 조회된 Dto는 User와 마찬가지로 UserDetail, UserList(목록 Dto 명칭이 마땅히 생각나질 않네요.) 와 같은 도메인 모델을 추가로 만들어서 사용하는 건가요? 위와 같은 질문을 드리는 이유는 만약 User가 Team라는 도메인과 연관 관계가 있을 때 Team 정보를 포함하여 응답할 경우 User 따로 조회, Team 따로 조회 하여 응답 dto로 변환해야 할 것같은데 그럼 성능적인 이슈가 생기지 않을까 해서 질문드립니다. (위 예시는 간단해서 성능적 이슈는 크게 없지만 복잡한 도메인에서는 여러 도메인의 정보를 조회해와야 하기 때문에 충분히 성능적 이슈가 있을걸로 판단됩니다.)
-
해결됨스프링 부트 - 핵심 원리와 활용
최대 Tomcat 스레드 수를 확인하는 지표
[질문 내용]여기에 질문 내용을 남겨주세요."최대 Tomcat 스레드 수를 확인하는 지표는 Spring Boot 3.x부터는 웹 서버의 종류(Tomcat, Jetty 등)에 상관없이 동일한 이름으로 모니터링할 수 있도록 메트릭 이름이 표준화되었습니다." 라고 하는데 맞나요?아무리 검색 후 설정을 바꿔봐도 prometheus 지표에 tomcat thread 관련 지표가 보이지 않습니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
핸들러, 어댑터 사용하는 이유
지금까지 만든 컨트롤러들MemberFormController, Save,List 전부 궁극적인 기능은 똑같은데 로직이 달랐던 거고, 각 버전마다 프론트 컨트롤러 만들어서 점점 좋게 리팩토링 시켜갔는데 .. 결국 궁극적인 목표가 같은 컨트롤러들을 (로직은 다르지만) 여러 개 만들고 어댑터를 사용하면서 바꿔가야 하는 상황이 어떤 상황인지 이해가 안가요..(최종으로 리팩토링된 컨트롤러 쓰면 되는거 아닌가요? ) 그리고 v5 프론트 컨트롤러에서, v3 버전이든 v4 버전이든 들어오는 경로에 따라서 v3,v4로 컨트롤러가 결정되는데개발자가 각 컨트롤러에 맞게 구현한다 라는 표현도 이해가 안가요.. (이미 요청하는 경로로 정해지는데 뭘 구현한다는건지..?)들어오는 요청이 같은데 컨트롤러를 골라서 한다던가.. 그런것도 아닌거같고 그리고 v4도 깔끔하게 코딩해서 ModelView를 직접 생성하지 않게 해서 만든건데 왜 굳이 어댑터를 사용해서 modelview를 만들고 v3나 v4나 같게하는건지...? ai 답변말고 지식인분들의 답변을 기다립니다
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
인텔리제이 커뮤니티 버전 사용시 데이터베이스 사용방법에 대하여
10강에서 데이터 베이스 다룰때 인텔리제이 커뮤니티 버전에서는 어떻게 해야할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew.bat이 되지 않습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요?아니오[질문 내용]libs파일이 없어서 gradlew.bat을 해봤는데 결과창이 나오질 않고 아무런 반응이 없습니다..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 오류
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? 아니오[질문 내용]경로까진 들어왔는데 gradlew.bat, gradlew, ./gradlew을 해도 아무것도 되지 않고 내부 또는 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아니라고 뜹니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
@EnableWebSecurity
@EnableWebSecurity 꼭 붙여야 된다고 하셨는데 안붙여도 움직이는데 붙이고 안붙이고의 차이가 있나요?의존성에 spring-security 들어가 있으면 AutoConfiguration 에 의해 자동구성된다면 붙일 이유가 없을것 같은데 뭔가 다른게 더 초기화작업에 추가되거나 하는건가요?
-
미해결스프링 핵심 원리 - 기본편
ComponentFilterAppConfig 질문
@Configuration @ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = MyIncludeComponent.class), excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = MyExcludeComponent.class)) static class ComponentFilterAppConfig { }이 ComponentFilterAppConfig에 @Configuration이 붙은 이유가 무엇인가요?그냥 설정 클래스라서 붙인건가요?
-
미해결견고한 결제 시스템 구축
결제 이후 404 Error 발생
토스페이 결제 후 아래 사진과 같은 404에러가 발생합니다.PaymentController의 @RequestMapping("/v1/toss")를 주석 처리 후 실행하면 결제가 정상적으로 이루어집니다. 강의를 잘 따라갔다고 생각했는데 어디서 문제가 발생했을지 알 수 있을까요?Html파일 경로는 "src\main\resources\templates" 입니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Result 클래스 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 영한님 강의 듣다가 Result 클래스를 써야한다고 언급해주셨는데요, 해당 클래스 관련 질문 답변을 봤는데 https://www.inflearn.com/community/questions/442871/result-%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B4%80%EB%A0%A8-%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4?focusComment=168228@GetMapping("/{boardId}")public ResponseEntity<BoardResponse> getBoard(@PathVariable("boardId") Long boardId) {return ResponseEntity.ok(boardService.getBoard(boardId));}이런식으로 ResponseEntity 감싸서 DTO를 반환하는것과 Result 클래스가 같은 맥락으로 응답을 추상화한다고 생각하면 될까요? 감사합니다 :)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
UserException과 첫 ExceptionResolver의 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 처음 만든 ExceptionResolver에서 sendError를 하고 두번째에서는 sendError없이 response를 만들어서 빈 modelAndView를 리턴해줬는데 둘의 차이를 복잡하게 sendError 하는 과정없이 그냥 modelAndView에 주고싶은 응답값을 줘서 바로 처리하게끔 하자 정도로 이해하면 맞을까요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
MockMvcTester 에도 MockMvc의 doPrint()같은 메소드가 있나요
찾아보다가 잘 못찾겠어서 문의 드립니다 ㅜㅜ
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
강의 연장 문의
안녕하세요!!회사 일정 때문에 강의를 다 못들었는데 기간이 곧 만료되어서요 ㅠㅠ혹시 강의 수강 기간 연장 진행해주실 수 있으실까요? 감사합니다!!
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
그럼에도 결코 수긍하지 않는 사람들이 있으니 말이죠
토비님의 의견에 동의합니다.화면에서 필드 하나 필요하다는 수정사항을 처리하기 위해 Presentation 레이어 이외의 클래스들을 수정하고 싶진 않아요. 그럼에도 불구하고 현업에선 정말 수많은 이유를 들어서 DTO로 반환하는 걸 유지하려고 합니다. 별도의 관심사를 끌어안게 되면서 애플리케이션 레이어의 테스트 코드 작성이 까다로워지고, 그로 인해 안정성이 하나씩 무너지고 균열이 생기기 시작하는 지점이 이곳이지 않을까 싶어요. 어찌보면 강의를 들을까 고민하던 때에 가장 매력있게 보였던 챕터였고, 무언가 해답을 얻을 수 있을까 했지만 여전히 뭔가 용기가 생기진 않는 것 같습니다.물론 그것이 토비님 탓은 아니죠. 훌륭한 가르침이지만, 단지 이것을 제 현장에 전파할 때 발생할 어려움에 벌써 머리가 아파지는 것.. 그 뿐입니다. 질문은 아니고 그저 넋두리였습니다.나머지 강의 마저 잘 들어보겠습니다. 감사합니다
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@PostConstruct 프록시 관련 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요, 영한님!JPA 활용2 강의 감사한 마음으로 잘 보고 있습니다.@PostConstruct는 빈이 생성되고 의존성 주입이 모두 끝난 직후에 자동으로 실행되는 메서드로 프록시 생성 이전에 실행되기 때문에 @Transactional과 함께 사용할 수 없어, init() 메서드에서 두 애노테이션(@PostConstruct, @Transactional)을 함께 작성할 수 없는 걸까요?GPT 답변을 참고한 후 질문 드립니다!