묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러
안녕하세요.Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2022-06-29 21:39:03.114 ERROR 10435 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : 라는 문구가 콘솔창에 뜨며 안됩니다.. 왜 그런 것인가요..?ㅜ 인텔리제이로 하고있습니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시를 이용한 연관관계 설정 시 잘못된 id값을 받았을 경우에 대해 질문드립니다!
단순히 연관관계 설정을 위해 엔티티를 사용하는 경우, 프록시로 조회(em.getReference || Data JPA의 경우 getById()) 형태로 조회한다고 알고 있습니다. 연관관계 설정을 위해 필요한 값은 id뿐인데, 굳이 엔티티의 다른 필드 정보까지 조회하기 위한 쿼리를 날리지 않는 편이 좋으니까요. 이 점과 관련해서 동료들과 이야기를 나누던 중 얘기가 나왔었는데, - 위와 같은 방식으로 연관관계를 맺을 경우 id값이 잘못된 값일 때 문제가 발생한다. 는 이야기를 들었습니다. 제 생각에는 정확한 id값 전달의 경우 id값을 전송하는 쪽의 책임이고, 그런 일이 나올 경우에 대비하는 것에 비해 프록시를 이용해서 조회 쿼리를 한 번 절약하는 이득이 더 크다고 생각했습니다. 하지만 방어적 코드를 작성하는 편이 좋다라는 측면에서 동료들의 말에도 일리가 있어서 고민이 되었습니다. 현업에서도 프록시를 이용해 연관관계를 맺는 방식을 사용하실 것 같은데, 위 경우에 대해 어떤 방식으로 별도의 처리를 해주시는지, 이 문제에 대해 어떻게 생각하시는지 궁금합니다.
-
해결됨실전! Querydsl
postgresql 쿼리를 dsl 에서 사용시 질문 드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]postgresql 쿼리문을 dsl 을 통해 사용하려 합니다. group by 를 사용하여 해당 기준에 따른 특정 컬럼의 데이터를 array_agg를 통해 받아오려면 어떻게 해야할까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
[H2 DB] jpashop 접근 방법
안녕하세요. H2 ~/test DB는 접속이 가능하나, ~/jpahop으로 접근이 전혀 안되어 문의글 남깁니다. 사실, 문의글을 남기기 전, 구글링과 인프런 질의글 통해서 작업도 진행해보았지만 실패했습니다. 서포터즈분께서 2개의 링크를 추천해주셨고 해당 내용도 사실 이미 봤던 내용이지만 놓친 것이 있을지 몰라 따라해보았습니다만 또 실패했습니다. ㅠ.. 그래서 결국 재 문의를 남깁니다. 저의 핵심은 ~/test 로는 로그인이 가능하나, ~/jpashop으로 접근하게 되면 아래와 같이 오류가 발생합니다. 강의보니까 persistence.xml에 아래와 같이 설정하고 나서 H2 접속해서 해당 url로 연결하면 jpashop DB로 접속하던데 저는 계속 에러가 발생하네요. <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/jpashop"/> 이 사진은 서포터즈 분께서 남겨주신 링크 적용한 pom.xml 입니다. 결국 이 방법도 통하지 않았습니다..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
hello.html에서 ${data} 빨간줄
안녕하세요. 강의 정말 잘 듣고있습니다! 다름이 아니라 아..마..도? devtools dependency를 추가해주고 난 다음 발생한 것 같은데 hello.html에서 ${data} 빨간줄이 그어져 있네요. 마우스로 갖다 대보니 cannot resolve 'data'라는 문구가 뜨지만 실행 시키면 콘솔 창에 별다른 오류도 없고 devtools 등 전부 정상 작동 합니다. 어떤 것 때문에 그런것일까요??
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderService에서 itemService ItemRepository를 주입하는 것에 대해서 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]김영한 멘토님 덕분에 스프링에 대해서 쉽게 공부할 수 있어서 항상 감사함을 느끼고 있습니다.멘토님의 강의를 복습하던 중 궁금한 것이 생겨서 질문 남깁니다.제가 의구심을 가지는 코드 부분은 다음과 같습니다. @Service @Transactional(readOnly = true) @RequiredArgsConstructor public class OrderService { private final MemberRepository memberRepository; private final OrderRepository orderRepository; private final ItemRepository itemRepository; /** 주문 */ @Transactional public Long order(Long memberId, Long itemId, int count) { //엔티티 조회 Member member = memberRepository.findOne(memberId); Item item = itemRepository.findOne(itemId); .... } .... } @Service @Transactional(readOnly = true) @RequiredArgsConstructor public class ItemService { private final ItemRepository itemRepository; .... public Item findOne(Long itemId) { return itemRepository.findOne(itemId); } } @Repository @RequiredArgsConstructor public class ItemRepository { .... public Item findOne(Long id) { return em.find(Item.class, id); } } 여기서 제가 궁금한 점은 OrderService에서 ItemService 대신 itemRepository를 주입한 이유가 궁금합니다! 물론, 둘 다 실행은 동일하게 되지만, itemRepository를 ItemService에서만 접근하게 하고, 타 클래스에서 item에 관한 로직은 무조건 ItemService으로만 접근하는 식으로 해야 item에 관련된 로직들이 응집도가 높아지고, 모듈 간 결합도가 낮아지지 않을까요?? 멘토님의 의견이 궁급합니다!
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제 출제의도 질문
안녕하세요 강사님 강의를 보다 궁금한 점이 생겨서 글을 남깁니다. 저는 해당 문제를 먼저 풀면서 (해쉬)라는 키워드를 놓치고 문제를 풀게 되었습니다. 그래서 방식을 char 두개의 배열을 모두 정렬시키고 배열을 순회하며 같은 인덱스의 문자열이 같은지 비교해서 하나라도 일치 하지 않다면 NO를 리턴하고, 전부가 같다면 YES를 리턴하는 함수를 만들어서 문제를 풀었습니다. 여기서 질문은 정렬이 들어가면서 시간 복잡도가 nlogn으로 늘어나긴 했지만 시간 제한 안에는 문제가 풀렸습니다. 그런데 해당 문제가 코테에 나오게 된다면 문제 출제 의도를 무조건 '해쉬'로만 봐야 할까요 ? 채점자에 따라 다르겠지만 통상적으로 어떤 시선으로 바라보게 되는지가 궁금합니다.
-
미해결Do it! 자바 프로그래밍 입문 with 은종쌤
48분쯤에 {"B","C","D""} 를 왜 {'B','C','D'}로 바꿨죠?
왜 쌍따옴표로 안쓰고 고쳐서 썼나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Hibernate 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]JpaMemberRepository 만들고 SpringConfig 업데이트 해서 통합 테스트 돌려보면 강의 영상에 나온 것처럼 콘솔창에 'Hibername: insert into member(id, name) values(null, ?)'라는 SQL문이 뜬다고 하셨는데 저는 'Hibernate: insert into member (id, name) values (default, ?)'라고 뜹니다. 코드는 강의랑 똑같이 작성했고 여러 번 확인해서 코드 문제는 아닌 거 같은데 혹시 다른 이유가 있을까요? 답변 감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
영속성 컨텍스트 관련 질문
안녕하세요! 영한님 먼저 양질의 강의를 제공해주셔서 감사의 말씀 드립니다. 갑자기 영속성 컨텍스트에 대한 개념이 헷갈려서 질문드립니다. 😭 만약에 order테이블에서 member의 id가 동일한 경우 ordersV2()를 사용하면 쿼리가 총 4번 나가는데 이때 영속성 컨텍스트에서 관리되어(1차 캐시에서 조회하기 때문으로 이해했습니다.) 기존에 있는 것을 가져온다고 말씀하셨습니다. 그런데 @Transactional 안에서 DB를 조회해야 영속성 컨텍스트에서 관리되는 것 아닌가요? 🤔 감사합니다.
-
해결됨코딩으로 학습하는 GoF의 디자인 패턴
팩토리 메소드 패턴이 커맨드 패턴을 이용해서 만든 패턴이라고 볼 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 기선님, 항상 강의 잘듣고 있습니다. 다름이 아니고 커맨드 패턴 코드를 보다보니 팩토리 메소드 패턴에서 봤던 코드와 유사한 느낌이 들었는데 혹시 팩토리 메소드 패턴이 커맨드 패턴을 사용해서 만들었다고 볼 수 있을까요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
toString과 String,valueOf
public String solution(String str) { String answer; char[] s = str.toCharArray(); int lt = 0, rt = s.length - 1; while (lt < rt) { if (!Character.isAlphabetic(s[lt])) lt++; else if (!Character.isAlphabetic(s[rt])) rt--; else { char tmp = s[lt]; s[lt] = s[rt]; s[rt] = tmp; lt++; rt--; } } answer = String.valueOf(s); //answer=s.toString(); return answer; } 위의 코드에서 answer = String.valueOf(s)와 주석처리한 answer=s.toString이 어떤 차이점이 있을까요?? 두 코드 다 s를 스트링으로 바꿔서 answer에 넣어주는거라 생각했는데 주석처리한 코드로 제출하면 오답이라도 나오네요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 오류(JAVA_HOME)
Window 사용중이구요 다음과 같은 초기 빌드에러 가 발생했습니다. ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files\Java\jdk-11\bin Please set the JAVA_HOME variable in your environment to match the location of your Java installation. [Project SDKs 캡쳐] [환경변수 설정 결과] [디렉토리 구조] [빌드 실패 명령어 및 결과] [시스템 변수 설정1] [시스템 변수 설정2] 시스템 변수 설정 시 bin 의 위치를 다르게 하여 설정1, 설정2 모두 해보았구요 명령어도 ./gradlew ./gradlew build ./gradlew.bat ./gradlew.bat build gradlew 모두 해보았구요 그럼에도 불구하고 에러가 발생하는데 원인을 더 찾아볼 곳이 있을까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
질문드립니다
항상 친절한 강의와 답변 모두 감사드립니다! 강의듣다가 두 가지 질문이있는데요. MemberService.update Method 에서 return 값으로 Member를 넘기게 되면 영속성이 끊긴다고 하셨는데 그러면 Controller 쪽에서 Member updateMember = memberService.update(id, name); 라고 하면 이 updateMember 는 준영속 상태인가요 ? 그리고 일단 기본적으로 독립된 트랜잭션마다 각각 다른 영속성 컨텍스트가 생성되는 게 맞죠? (OSIV 는 추후 듣도록 하겠습니다!)
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
강의 이후 코드를 살펴보다 궁금한 점이 있습니다.
안녕하세요, 강의 이후 작성된 코드를 돌려보다 궁금한 점이 있어 질문드립니다. 현재 이 강의만 따라왔을때, 실제로 주문을 한 뒤에 member, order, item, order_item 테이블에 데이터가 입력되도록 하려면 4개의 엔티티를 모두 객체 생성한 뒤에 영속화를 하는게 맞는지, 혹은 제가 강의의 양방향 연관관계를 잘 이해하지 못한것인지 궁금합니다. 메인메서드에 작성한 코드는 다음과 같습니다. addOrderItem 메서드는 다음과 같습니다. 현재 강의 내용만으로 봤을때, 4개의 엔티티를 모두 직접 객체 생성 후 영속화를 해야만 데이터가 제대로 들어가는게 맞는지 리뷰 한번해주시면 감사하겠습니다 :)
-
미해결이펙티브 자바 완벽 공략 1부
mvn install 실패합니다.
알려주신 방법으로 작업 중인데 빌드가 되지 않아서요 영상에서는 ChineseHelloService를 직접 참조 하지 않아 빌드가 될거라고 했는데 소스 상에 AppConfig.java, HelloServiceFactory.java 파일에 참조 하는 부분이 있어 그런거 같아 주석 처리와 HelloService 인터페이스를 익명 구현으로 해서 했는데 이번엔 테스트 코드에서 실패처리 되며 빌드가 되질 않네요 ㅜ -------- AppConfig.java @Configuration public class AppConfig { @Bean public HelloService helloService() { return new HelloService() { @Override public String hello() { return "Ni Hao"; } }; } } HelloServiceFactory.java 주석처리 TEST SpellCheckerTest.java assertTrue => assertFalse ChatRoomTest.java assertTrue => assertFalse 하고 나서 mvn install 하니 빌드 되었습니다
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
FK, 인덱스 비교 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]엔티티 클래스 개발2에서 FK 관련 질문입니다! FK를 안걸고 인덱스를 거는 방식도 있고 시스템마다 다르다고 하셨는데, Id값은 똑같이 가지고 있고 거기에 인덱스를 거는 것인가요? 그리고 이렇게 하면 속도가 왜 더 빨라지는 것인가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
AOP 적용 후 프록시
안녕하세요 AOP를 적용하면 스프링 컨테이너가 진짜 빈 앞에 가짜 빈을 세워놓는다고 하셨고 실제로도 콘솔에 찍어서 확인을 했는데요, AOP 관련 코드를 싹 다 지우고 AOP를 아예 안 써도 아래와 같이 hello.hellospring.service.MemberService 가 아닌 MemberService$$EnhancerBySpringCGLIB$$d7471118 이라고 뜹니다. 왜 그런 것인가요? AOP 적용 여부와 상관없이 빈이면 무조건 그 앞에 가짜 빈을 만드는 것인가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JdbcTemplate 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]JdbcTemplate 강의대로 코드 작성했는데 MemberServiceIntegrationTest를 돌려보니 중복_회원_예외() 메소드랑 회원가입() 두 메소드 다 에러가 뜹니다. 두 에러 내용은 <Data Conversion error converting "spring"; SQL statement>로 동일합니다. 구글링 해봤는데도 해결방법을 찾을 수 없어 질문 드립니다 ㅠㅠ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 웹 기능 - 등록 강의 내용 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 안녕하세요. 본 강의를 통해 스프링 공부를 시작한 학생입니다. 강의를 듣다가 궁금한 점이 생겨 질문 드립니다. domain의 Member 클래스에도 Getter, Setter가 있고, controller의 MemberForm 클래스에도 Getter, Setter가 있는데 MemberController의 create 함수에서 member.setName은 있고 form.setName은 없는 이유가 궁금합니다. createMemberForm.html의 <form action="/members/new/ method="post">를 통해 사용자가 입력한 "spring"이라는 이름이 value값으로 넘어가는 것, 그리고 @PostMapping이 있는 create 함수로 넘어가는 것까진 이해했는데 왜 이 함수에서 MemberForm의 set 함수 코드는 없는 것인지 궁금합니다. 사용자가 이름을 입력했을 때, 스프링이 자동으로 MemberForm의 name 값을 입력한 이름으로 설정해준 건가요? 답변 미리 감사합니다.