묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
Enum의 기능과 멤버 클래스에서 id를 Long으로 하는 이유가 무엇인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.Enum의 기능과 역할 그리고 멤버 클래스 생성시 id를 Long으로 한 이유를 알고 싶어요
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
14:18에서 AopCheck() 테스트하는 부분 질문드립니다
@Test void AopCheck() { log.info("memberService.class={}", memberService.getClass()); log.info("memberRepository.class={}", memberRepository.getClass()); }테스트를 실행하면 memberService.getClass()에 해당하는 부분만 CGLIB~~이 적용된, 즉 AOP가 적용된 인스턴스라는 것을 확인할 수 있었습니다. memberRepository.getClass()는 평범한 인스턴스이고 memberService.getClass()만 AOP가 적용된 인스턴스인 이유는 추측건대 @Transactional // proxy가 비즈니스 로직 대신 호출. 성공하면 commit, 런타임 예외가 터지면 rollback public void accountTransfer(String fromId, String toId, int money) throws SQLException { bizLogic(fromId, toId, money); }MemberService내의 메서드에 @Transactional이 붙어서인 것 같습니다. 클래스 레벨에 @Transactional을 붙이지도 않았는데도 클래스 정보를 가져오는 메서드인 getClass()를 통해 AOP가 적용된 인스턴스로 확인되는 이유가 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Whitelabel Error Page
[질문 내용]package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.util.SplittableRandom; @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; } }똑같이 따라 쳤는데도hello-mvc / hello-string은 아래와 같이 오류가 뜹니다..!어떻게 해결할 수 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradle build 오류 해결이 안됩니다ㅠㅠ!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Please set the JAVA_HOME variable in your environment to match the location of your Java installation.다른 질문 게시물을 보고 java를 설치했음에도 저렇게 뜨는데 어떻게 해결할 수 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
save()테스트 시 오류 해결 궁금증
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. save() 테스트 실행했더니 오류가 발생했습니다.구글링 통해서 아래 빨간박스 친 부분은 Gradle에서 IntelliJ IDEA로 바꿔 줬더니 오류가 해결되었는데요, 이유가 궁금해서 질문 남깁니다.++ 추가로 메인 서블릿 코드는 Gradle로 해줘야 오류가 안나는데... 이유도 알고 싶고앞으로도 실행할 때, 아래 설정 변경해 주면서 하면 되는걸까요?
-
미해결스프링 핵심 원리 - 기본편
No tests found for given includes 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링 환경 설정과 실행의 코드를 작성하는 중에 오류가 떠서 코드를 몇번이고 확인했는데 어디가 잘못된건지 모르겠어요ㅠ
-
미해결토비의 스프링 부트 - 이해와 원리
registerBean과 어셈블러(스프링 컨테이너)의 싱글톤 인스턴스 생성
안녕하세요런타임시 스프링컨테이너(어셈블러)가 컨트롤러의 구현체(ex SimpleHelloService, ComplexHelloService)를 컨트롤러에 주입해줘야한다는 것을 알고있습니다.이때 스프링 컨테이너는 클래스의 싱글톤 객체를 생성하여 주입하는 것으로 학습했습니다. 강의처럼 SimpleHelloService 클래스 만을 빈으로 등록하고 생성한다면, ComplexHelloService가 등장시 1. ComplexHelloService를 빈으로 등록하는 지 2. 싱글톤 객체의 구현체를 어떻게 선택하고 생성하는지 알고싶습니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품 주문후 디비에 저장은 되지만 웹 페이지에서 조회가 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품 주문 후 주문은 디비에 들어가 있지만 주문 목록을 조회해 보면 주문이 조회되지 않습니다. 또한 검색 창에서 회원 이름과 주문 상태를 선택해서 검색을 하면 white label error page가 나옵니다.해당 화면 첨부해서 질문 드려요 어디가 잘못 된 걸까요 ㅠ?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest 오류
첨부한 사진과 같이 코드를 작성 했는데 아래와 같은 오류가 떴습니다...혹시 어떻게 해야되는지 여쭤봐도 될까요 ============================CONDITIONS EVALUATION REPORT============================Positive matches:----------------- NoneNegative matches:----------------- NoneExclusions:----------- NoneUnconditional classes:---------------------- None
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
환경설정 MemberRepositoryTest에서 계속 해서 에러가 생깁니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]내용을 다 똑같이 하고 버전 확인도 했는데 테스트에서만 에러가 계속 발생합니다. 그런데 PC에서는 에러가 생기고 노트북으로 했을 때는 정상적으로 작동합니다. 무슨 이유때문인지 몰라서 힘듭니다...아래는 에러 내용입니다.아래는 에러 내용 전문 링크입니다https://local-toothpaste-73c.notion.site/MemberRepositoryTest-b52cdd4980a34d0796b43797cf0be01a?pvs=4노트북에서 실행한 에러없는 프로젝트를 깃헙으로 클론해와도 PC에서는 에러가 생기네요. 무슨 문제일까요..?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
requestParam과 PathVariable
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]RequestParam 과 Pathvariable의 차이가 무엇인가요 ?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
타임리프문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]editForm.html에서 모든 수량파트만 타임리프 th:value 가 안먹힙니다 ㅠㅠ 왜 그런지 모르겠어요items.html에는 수정한 수량이 반영이 되지만 editForm.html의 모든 quantity 만 10으로 초기화가 되네요 ㅠ<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <link href="../css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"> <style> .container { max-width: 560px; } </style> </head> <body> <div class="container"> <div class="py-5 text-center"><h2>상품 수정 폼</h2></div> <form action="item.html" th:action method="post"> <div> <label for="id">상품 ID</label> <input type="text" id="id" name="id" class="form-control" value="1" th:value = "${item.id}" readonly> </div> <div> <label for="itemName">상품명</label> <input type="text" id="itemName" name="itemName" class="form-control" th:value = "${item.itemName}" value="상품A"> </div> <div> <label for="price">가격</label> <input type="text" id="price" name="price" class="form-control" th:value = "${item.price}" value="10000"> </div> <div> <label for="quantity">수량</label> <input type="text" id="quantity" name="quantity" class="form-control" th:value = "${item.quantity}" value="10"> </div> <hr class="my-4"> <div class="row"> <div class="col"> <button class="w-100 btn btn-primary btn-lg" type="submit">저장</button> </div> <div class="col"> <button class="w-100 btn btn-secondary btn-lg" onclick="location.href='item.html'" th:onclick="|location.href='@{|/basic/items/${item.id}|}'|" type="button">취소 </button> </div> </div> </form> </div> <!-- /container --> </body> </html>
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링부트 핸들러 매핑
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]잘못된 Url 을 입력한 경우 즉, 등록한 Url 이 없을 경우 스프링부트 콘솔창에는 아무 에러도 나지 않는데, 왜 그런가요? 핸들러 매핑이 아예동작이 안되는건가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
강의 4:50에서 커넥션 풀 고려하는 부분 질문드립니다
리소스 정리에 관련해서 질문드립니다. con.close()의 경우, 커넥션 풀을 사용하는 커넥션일 때 close()시에 커넥션 종료가 아닌 커넥션 풀로 다시 반환된다는 것으로 이해했습니다. 그런데 con.setAutoCommit(true)로 되돌릴 때 커넥션 풀을 고려해야한다는 부분이 이해가 가지 않아서 질문드립니다. 커넥션 풀과 상관없이 오토커밋은 true로 바꿔야하는 것 아닌가 해서요. +추가 질문: 개발자가 트랜젝션 매니저를 이용한 트랜젝션을 구현한다면 따로 위의 두가지 코드를 작성해줄 필요가 없는 것 맞는가해서 질문드립니다.(ServiceV2에서의 finally 구문을 ServiceV3_1에서는 생략한 것과 같은 맥락으로) 친절한 답변 항상 감사드립니다
-
해결됨실전! 스프링 데이터 JPA
UserForm(실전 1편에서 사용한)도 DTO 조회 쿼리문처럼 사용하면 될까요?
실전 1편에서 영한샘 회원 가입이나 주문 Order를 Form을 사용하셧는데요.... 단순한 save를 쓰더라도 UserForm을 사용시에는 DTO 조회 쿼리 작성 예시처럼 인터페이스 MemberRepository에 저렇게 사용해야하는지 궁금합니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
PK를 외부로 노출하지 않고 게시물 수정/삭제?
는 어떻게 하는 것이 좋은 건가요? PK이자 글 번호인 boardSeq를 가지고 와서 수정과 삭제를 진행하고 있었는데, PK는 최대한 외부로 노출하지 않는 것이 좋다고 하여서 문득 생각이 들었습니다. PK Seq를 따로 두고 UniqueKey로 똑같이 AutoIncrement해서 생성하게 된다면 결국 무슨 차이인가 싶어서 아닌 거 같기도 하고... 어떤 식으로 처리 해야 되는지 궁금하여 질문 남기게 되었습니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
AopCheck() 로그가 강의와 다릅니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. memberService 부분의 로그가강의에 나온 'EnhancerBySpringCGLIB..'부분으로 나오지않고 SpringCGLIB로만 나옵니다. 오류가 나지는 않는데 강의와 동일하게 적용이 되고 있는지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
handler의 정확한 의미
안녕하세요 핸들러가 아직 머리속으로 완전히 이해가 안됐는데요제가 이해한 핸들러는bean 이름이나 anootation으로 Controller를 찾아주는것으로 이해를했는데요 이게 아니라면 핸들러의 정확한 뜻이 뭘까요?조금 헷갈리네요 ㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
DB PK 를 화면에 직접 노출 시켰을 때 문제점
강의 내용을 보면 상품 목록 화면에서 item.id 값을 뿌려주고 있습니다.이건 DB 에 저장된 item 테이블의 PK 값 일텐데, 문득 이런 생각이 들었습니다.DB 데이터 관리를 위한 PK 를 클라이언트 단에 노출시켜도 되나요? (가급적 엔티티 객체를 클라이언트 단에 직접 노출시키지 말라고 하셔서, 이것도 비슷한 맥락으로 숨겨야되지 않을까 해서요)
-
해결됨스프링 핵심 원리 - 기본편
모든 테스트 한번에 실행
지금까지 만든 테스트 작성코드는 총 3가지입니다.RateDiscountPolicyTestMemberServicetestOrderServiceTest 각각 실행하지 말고 한번에 실행하고 싶은데 어떻게 해야 하나요? 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.