묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
update에대한 질문입니다!
지금은 Book 상품등록, 상품수정의 기능만 한다고 하셨는데 영화와 음반까지 추가하려면 단순히 controller와 service에 메서드들을 추가해서 로직을 짜면 되는건가요? 아니면 메서드를 추가안하고 다른 방법이 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
sequence 변수에 대하여 너무 궁금한 점이있습니다.
안녕하세요. 김영한 강사님. 이번 강의를 듣던 도중 실무 이야기를 몇번 하셨는데요. sequence 변수에 대해 궁금하 점이 생겼습니다. Member를 save할때마다 id 값을 1씩 증가시켜주는데요. 이건 DB기반이 아니라 메모리 기반이기 때문에 id값을 이렇게 임의로 정해주는 것인가요? 실무에서 DB는 id 값을 auto increment를 주지 않고 이런 식으로 sequence를 올려가며 회원 저장마다 id값을 지정해주는 건가요? 제가 이해한것이 맞다면 서버가 재가동 될때마다 모든 회원 DB를 다 읽어와야 하는 시스템인것 같은데 제가 이해한바가 맞는지요.. 너무 궁금해서 그냥 넘어갈수가 없었습니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
조회 v3.1에서 to One 관계는 모두 페치 조인하고 나머지 컬렉션은 지연로딩을 유지했을때 다음과 같은 에러가 발생합니다.
좋은 강의 감사합니다. 조회 v3.1에서 to One 관계는 모두 페치 조인하고 나머지 컬렉션은 지연로딩을 유지했을때 다음과 같은 에러가 발생합니다. query specified join fetching, but the owner of the fetched association was not present in the select list 고심하던 중 @Query부분을 value 와 countQuery로 나눠어서 처리 한 결과 정상적으로 조회 됬습니다.(Spring Data Jpa사용) 예) @Query(value = "select u from User u join fetch u.store s", countQuery = "select count(u) from User u") Page<User> findAllUser(Pageable pageable); 꼭 countQuery를 사용해야 하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
옛날 사람 아닙니다!! ㅠㅠ
공공기관 취직해서 1년 근무했는데 옛날사람들이 쓰는 기술이라고 하는 기술들만 쓰고 있습니다. ㅠㅠ 잘 공부해서 최신사람으로 거듭나겠습니다! 응원해주세요... 따로 메시지 보내고 싶었는데 찾을수가 없어서 여기 남깁니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
thymeleaf 의 경로를 못찾는다고 나오네요
indx.html을 /src/main/resourcee/static/index.html을 넣어도 못찾네요 hello예제에서는 "template might not exist or might not be accessible by any of the configured Template Resolvers" 로 나오네요 경로가 차이가 있는건지 모르겠습니다. 아래는 grandle 설정입니다 어떤 문제가 있는건지 모르겠습니다. plugins { id 'org.springframework.boot' version '2.1.16.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java'}group = 'jpabook'version = '0.0.1-SNAPSHOT'sourceCompatibility = '1.8'configurations { compileOnly { extendsFrom annotationProcessor }}repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test'}
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
post vs put
안녕하세요. 보통 리소스를 수정하는데 put 메서드를 사용한다고 알고 있는데, post를 사용한 이유 같은게 있나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Category 계층 구조를 보고 질문드립니다.
안녕하세요. 영한님 강의 잘 듣고 있습니다. 감사합니다. Category Entity에서 parent와 child 만드는 것을 보고 게시판에서 댓글과 대댓글 관계를 생각해보았는데 댓글 Entity에서 대댓글을 List로 담고 똑같은 계층구조로 구현하는게 객체지향적인 설계가 맞을까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요. Unique Index 데이터 저장에 대해서 질문드립니다.
안녕하세요. 강의 잘 듣고 많은걸 배우고 있습니다. 현재 강의와는 안 맞을 수 있는내용이지만.. 많은 고민이 되어 질문드립니다ㅜ 예를들어 Team이라는 테이블이 있고, name이라는 Column이 Unique Index로 설정되어 있는 상태입니다. CrudRepository의 save 함수를 이용해 저장하고 있고 Custom Exception을 핸들링해서 "이미 저장되어 있습니다."라는 응답값을 반환하는것이 목표입니다. 현재 고민하고 있는 방법은 1. Insert 쿼리를 사용하기전에 이미 저장된 name이 있는지 Select 쿼리로 조회해 있다면 Custom Exception을 발생. -> 팀을 생성할때마다 Select 쿼리를 발생 2.try ... catch로 DataIntegrityViolationException을 잡아 Custom Exception 발생 -> DataIntegrityViolationException이 넓은 범위의 제약조건을 포함하고 있는 것으로 알고있어서 DuplicateKey ErrorCode로 잡아서 Custom Exception을 발생시켜야하나 싶습니다.. 혹시 실무에서는 위의 방법 중 하나 혹은 다른 방법을 사용해 어떤식으로 해결하는지 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
안녕하세요 5강 관련하여 질문이 있습니다
안녕하세요 강사님. 5강 내용 대로 직접 코드를 작성하다 기본적인 부분에 문제가 생겨 질문 드립니다. 브라우저에 localhost:포트번호/hello 를 요청하면 404에러가 뜹니다....! Controller에서 @GetMapping("hello") 요청, addAttribude , return 값 에 오타가 없는지 확실히 살펴보았고 console에선 Application이 정상적으로 스타트 되었다는 출력만 나올 뿐 별 다른 에러가 나타나지도 않습니다. 제가 어느 부분을 더 살펴야 하는지 조언 부탁드리겠습니다. 코드나 추가 자료가 필요하시다면 답변 달아주시면 추가하여 수정하겠습니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
셀프로 양방향 연관관계 관련 질문입니다.
안녕하세요, 먼저 강의를 잘 듣고 있는 학생 1인 입니다. ㅎㅎ 엔티티 클래스 개발2 강의 중 셀프로 양방향 연관관계 관련 질문입니다. Category 엔티티에서 // 자식입장에서 바라보는 부모 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_id") private Category parent; 위의 JoinColumn시 "category_id"가 아니라, "parent_id"로 작성해야 되는 이유를 알 수 있을까요? 셀프를 제외한 일반적인 양방향 연관관계에서 "연관관계 주인" 쪽에서 연관관계 거울 쪽을 Join할 때 연관관계 거울의 KEY를 명시해 주는데, 이와 마찬가지로 parent_id가 아닌 category_id가 아닌지... 궁금합니다. 실제로 바꿔서 했을 때, 오류가 발생했습니다...
-
해결됨스프링 시큐리티
SecurityContextHolder , SecurityContext 질문 드립니다.
안녕하세요.. 좋은 내용의 강의를 잘 듣고 있습니다. 현재 1. 스프링 시큐리티 주요 아키텍처 이해 4) 인증저장소( SecurityContextHolder , SecurityContext) 관련해서 2가지 질문이 있는데요. [질문1] 예제 설명에서 Main Thread 에서 자식 Tread 를 새로 생성해서, 테스트 하는 예제가 있는데요. 실제 업무에서, MVC 모델에서 자식 Thread 를 선언해서, 사용하는 예제를 그동안 못 봐서요. @Controller 에서 @Service 를 호출하고, 대부분 처리하는 방식인데요. 자식 쓰레드를 만드는 패턴은 실제적으로 어느때 사용하나요? [질문2] 기본 설정이 strategyName = MODE_THREADLOCAL 인데요. 자식 쓰레드가 Authentication authentication = SecurityContextHolder.getContext().getAuthentication() 로 접근할때는 안 되지만, 세션으로 get 으로, 호출하면, 같은 WAS 세션에 존재함으로, authentication 정보를 가져올 수 있는 건 아닌지요? 개인적으로 2가지 문의사항이 있어서, 질문드립니다. 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
굳이 컨트롤러에 MemberForm
굳이 컨트롤러에 MemberForm을 만들 이유가 있나요? 그냥 MemberController에서 아래처럼 멤버를 바로 받아올 수는 없는건가요? 만약에 멤버폼을 반드시 이용해야하는 것이라면 MemberForm이라는 클래스는 어떠한 어노테이션도 없이 순수 자바코드인데 어떻게 폼에서 name값을 받아와 setName을 해주는지 궁금합니다. public String create(Member newMember){ memberService.join(newMember); return "redirect:/";}
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Whitelabel error
안녕하세요 강사님, 강의 내용대로 진행을 했을 때 ide에선 정상적으로 화면이 출력되나! 빌드를 해서 실행하면 templates path를 못찾는다는 에러가 발생합니다ㅠㅠ Gradle clean build 도 해봤는데 동일하네요 어떻게 해결할 수 있을까요? 아래는 나오는 오류입니다. cannot find template location: file:src/main/resources/templates/ (please add some templates or check your thymeleaf configuration)
-
미해결실전! 스프링 데이터 JPA
성능 테스트 질문
안녕하세요 영한님 강좌 잘 보고있습니다. 강좌중에 성능테스트에 대한 이야기를 많이 해주시는데, 혹시 성능 테스트는 어떤식으로 진행해야 할까요?!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@Valid 유효성 체크 시 질문 있습니다!
강사님 안녕하세요! 상품 등록하는 부분에도 유효성 검사를 추가 해봤는데요. Neither BindingResult nor plain target object for bean name 오류가 나서 검색해보니 @ModelAttribute를 붙이면 된다고 해서 해결했습니다. 근데 회원등록 시에는 @ModelAttribute를 사용하지 않았어서 비교해봤더니, 모델객체에 담을 때 클래스명이랑 똑같이 설정하면 정상 동작하더라구요. 오류는 해결했는데 @ModelAttribute를 붙여야될 때도 있고 안 붙여도 될 때도 있고,,, 왜 이렇게 동작하는지 궁금합니다..ㅎㅎ 그리고 여기서 @ModelAttribute가 무슨 역할을 해주는지도 궁금합니다. model.addAttribute("form", new BookForm()); @Valid BookForm form => 오류남 model.addAttribute("form", new BookForm()); @ModelAttribute("form") @Valid BookForm form => 정상 동작 model.addAttribute("form", new BookForm()); @ModelAttribute @Valid BookForm form => 오류남 model.addAttribute("bookForm", new BookForm()); @Valid BookForm form => 정상 동작
-
해결됨스프링과 JPA 기반 웹 애플리케이션 개발
패키지 구조 관련 질문입니다.
안녕하세요. 어제 라이브 재밌었습니다.신세경.. 미국엔 잘 돌아가셨는지 궁금하네요..ㅎㅎ 다름이 아니고, 강의를 보고 개인 프로젝트를 진행하려고 하는데 패키지 구조를 도메인형으로 해야할지, 계층형으로 해야 할지에서 부터 고민이 되어 질문드립니다. 기선님 강의에서는 도메인으로 나뉘었고, 펫클리닉 프로젝트도 찾아보니 도메인으로 나눠놓았더라구요 제가 본 여타 다른 강의들에서는 컨트롤러/서비스/레포지토리/exception/ 등등으로 나눠놓은 걸 보아 어떤 것이 정답이다 라는 것은 없는것 같기도하고.. 해서 블로그 글을 참고해서 보니https://cheese10yun.github.io/spring-guide-directory/도메인이 더 낫다는 글을 보았습니다. 기선님 강의들에서는 더 나은 패키지구조 선택에 관해서 언급하셨던 기억이 없어서 질문드려요! 너무 좋은 강의 만들어주셔서 감사합니다. 많은 도움이 되고 있어요 :)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
[[ 강의 시청 Tip ]] 윈도우라서 맥의 iTerm이 없는데 어떡하나!?
`윈도우라서 맥의 iTerm이 없는데 어떡하나!?` `Windows 환경에서 Terminal 사용 시, 리눅스 명령어 사용해볼 수 없나?` 고민하시는 분들 아래 링크를 참고하시면, 리눅스 명령어 사용하며 공부하실 기회가 생길 것 같아서 올려봅니다. 인텔리J의 기본 터미널을 cmd가 아닌, Git Bash로 연동하는 방법입니다. (Git Bash 내에선 *nix계열의 OS에서 쓸 수 있는 명령어인 ssh, scp, cat, find 등을 쓸 수 있습니다.) 수업 중에 강사님이 사용하시던 ls -arlth 도 한번 써보세요! ( -arlth는 모든 파일, 폴더를 시간 역순으로 출력) IntelliJ IDEA와 Git Bash 연동하기 양질의 강의 무료로 제공해주신 김영한 개발자님께 정말 감사드립니다! [ 2020-09-09 추가 ] Git Bash 터미널로 H2 Database 실행 시, ClassNotFoundException: org.h2.tools.Console 에러 해결 방법 (For Windows User) 1) ./h2.sh 명령어 실행 시, 아래와 같은 에러 메세지가 발생하며 웹 콘솔이 뜨지 않음 Error: Could not find or load base class org.h2.tools.Console. Cause: java.lang.ClassNotFoundException: org.h2.tools.Console 2. 해결 방법 h2.sh 파일을 vim 또는 메모장으로 연 뒤, 경로 구분자를 콜론( : )에서 세미콜론( ; ) 로 변경합니다. 이후 ./h2.sh 를 재실행 하면 정상적으로 작동합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
dto의 layer에대해 질문 드립니다.
dto는 Controller Layer에서 dto->Entity로 치환하여 Service레이어로 넘기는편이 맞을까요? Service Layer에서 dto->Entity로 치환하는것이 맞을까요? 제 개인적인 생각으로는 다양한 경로에서 모일 수 있는 request dto들을 전부 다 Service레이어에서 처리하는 것 보단 Controller단에서 치환하여 서비스는 엔티티로 비즈니스로직을 처리하는게 맞다고 생각하는데 영한님의 고견 부탁드리겠습니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderService의 order() 메서드 파라미터 관련 질문드립니다!
안녕하세요! 쉽고 재밌는 강의 만들어주셔서 감사합니다! OrderService 서비스의 public Long order() 메서드 관련해서 질문드리고자 합니다. 강의해주신 대로는 order() 함수에서는 여러 orderItem을 넣을 수 있는 것으로 설계가 되어 있습니다. 그래서 order 객체를 생성할 때 orderItem 여러 개를 파라미터로 받을 수 있도록 OrderItem... orderItems로 설정해주셨습니다. 그런데 public Long order() 함수에서는 파라미터가 하나의 itemId 및 count만을 받아서 order() 함수 내에서 order 객체를 생성할 때 하나의 orderItem만 추가 가능하다고 생각했습니다. 이 경우 아이템마다 외부에서 item마다 order() 함수를 호출하여 order객체의 필드인 orderItems에 orderItem을 추가하여야 하는 것인지 궁금합니다. 감사합니다!
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
6분21초 질문 있습니다.
6분21초 화면에서 List<Order> all = orderRepository.findAllByString( ...) return all ; 했을때 무한루프에 빠지는걸 보았습니다. 그런데 Hibernate5Module 을 등록안했기 때문에 Order랑 연관관계인 Member,Delivery 는 프록시객체라서 무한루프가 아닌 jackson 라이브러리가 프록시객체를 인식못하는 예외로 먼저 빠져야 된다고 생각했는데 무한루프 에러를 먼저 처리하네요. 현재 생각으로는 무한루프는 return all 하기전에 orderRepository.findAllByString( ...) 에서 오류가 나는거고 @jasonignore 로 처리하고Hibernate5Module 등록안하면 return all; 할때 jackson 라이브러리가 프록시객체라서 에러를 내서 그렇구나 하고 넘어갔었는데 제가 생각한게 맞는건가요 ??