묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
수강을 시작하기 전에 한 가지 질문을 드립니다.
안녕하세요 강사님, 이번 강의도 잘 듣겠습니다.이번 강의를 본격적으로 시작하기 전에 질문을 하나 드리려고 합니다. 저는 현재 강사님의 스프링 입문편, 기본편, HTTP 강의를 완강한 상태입니다. 이제부터는 강사님께서 추천해주신 야생형 코스로 JPA 로드맵을 수강하고자 하는데요.이번 강의를 어떤식으로 공부하는게 좋을지 고민입니다. 저는 아직 JPA 기본편을 듣지 않았기 때문에 JPA에 대한 사전지식이 전무합니다. 이런 상황에서 활용편 강의를 수강하게 되면 분명히 막히는 부분이 많이 나오겠지요. 그럴 때마다 그런 부분들에 대한 이해를 하기 위해 노력하면서 들어야 할까요? 아니면 이해가 안 되는 부분은 그냥 따라치기만 하면서 넘어가고 나중에 기본편 학습 후 다시 돌아왔을때 철저한 이해를 목표로 수강하는게 좋을까요? ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 추가적으로, JPA라는 기술에 대한 질문을 하나 더 드리고 싶습니다. 흔히들 말하는 국내 대표 IT 서비스 기업 "네카라쿠배" 같은 곳에서는 JPA 기술이 활발하게 사용될 것이라는 생각이 듭니다. 그러나 취업을 준비하는 취준생 입장에서 이러한 탑급 IT 기업만을 목표로 하여 JPA에만 집중하는 것이 맞는지에 대한 고민이 있습니다. 갈 수만 있다면 자체 IT 서비스를 운영하는 저런 거대 기업들에 가는 것이 좋기야 하겠지만.. 국내 대형 SI 기업들, 그 외 대기업 계열사들, 다른 중견기업들 등 최대한 포괄적으로 준비하여 "취업 1승"에 대한 성공 확률을 최대한 높이고 싶은 것이 불안한 취준생의 마음입니다. 이러한 측면에서 보았을 때, 최신 트렌드인 JPA만 공부하기 보다는 아직 그렇지 못한 기업들을 함께 고려하여 MyBatis 등의 기술도 준비해서 프로젝트를 진행해보는게 맞는 것인가? 하는 생각이 듭니다. 질문의 핵심은 이것입니다. "네카라쿠배 등의 IT 기업 외에 다른 곳들에서 JPA를 활발하게 사용하나요? 그렇지 않다면 다른 곳들에서 가장 활발히 사용되는 기술은 무엇인가요?" 물론 강사님께서 모든 기업에 근무하셨던 것은 아니니 전부 빠삭하게 꿰차고 답변을 주시기는 어렵겠지만.. 그래도 현직 베테랑 개발자의 입장에서 저같은 취준생에게 조언을 해주실 수 있는 부분이 있지 않을까 싶어서 질문을 남깁니다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 부디 조언을 부탁드립니다. 감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
form, DTO 차이
안녕하세요 강사님. 공부를 하던중 form 과 DTO에 차이에 대해 궁금한점이 생겨 질문 드립니다. form은 아래와 같이 컨트롤러에서 Model에 담아 뷰에 전달 할때 사용하셨고 DTO는 아래와 같이 데이터를 반환할때 엔티티를 DTO로 변환하여 사용하셨는데 이때, 위의 경우처럼 form과 DTO가 사용되는 영역이 완전히 다른것인가요?? 예를들어, memberForm이 memberDTO로써 역할을 수행할 수 있다면 DTO로도 사용해도 되는것인가요? 제가 생각했을 땐 form은 validation이 들어갈 수 있기 때문에 DTO로 사용하면 안될것 같기도하면서도 그냥 DTO로 사용해도 될 것 같기도 하고 의문이 들어 질문드립니다. 항상 좋은 강의 감사드립니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
API Response Header
안녕하세요 영한님! API Response를 리턴할때 header를 포함하고싶을때 어떻게 해야할까요? 제네릭으로 Header를 따로 만들어야하는지, HTTPSERVLETRESPONSE를 이용해야하는지 궁금합니다. 고맙습니다! 건강하세요
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
조회 API 질문 드립니다!
안녕하세요 강의를 잘 듣고 있습니다. 조회 API 를 만들때, 제네릭으로 json 리스트 형태를 감싸서리턴을 하는데, 보통 조회API 는 단건 조회가 아닌 이상 리스트형태로 리턴을 할텐데, 이런 조회 API 에서는 제네릭으로 리스트를 한번 감싼 뒤 리턴을 해야한다. 로 이해해도 될까요? @GetMapping("/api/v2/members") public Result<List<MemberDto>> memberV2() { List<MemberDto> memberDtos = new ArrayList<MemberApiController.MemberDto>(); List<Member> findMembers = memberService.findMembers(); for(Member member : findMembers) { memberDtos.add(new MemberDto(member.getName())); } return new Result<List<MemberDto>>(memberDtos.size(), memberDtos); } @Data @AllArgsConstructor public static class Result<T>{ private int count; private T data; } @Data @AllArgsConstructor public static class MemberDto{ private String name; }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
cannot resolve column 'Object'
이렇게 빨간줄이 떠서 신경쓰이시는 분들은 Settings -> Editor -> Inspections 에서 Unresolved database를 검색 -> Unresolved database references in annotaions 를 체크 해제 하시면 빨간줄이 없어집니다. IntelliJ가 너무 꼼꼼하게 검사를 해주기 때문에 발생한다고 합니다. 출처: https://log-laboratory.tistory.com/285
-
미해결실전! 스프링 데이터 JPA
즉시로딩 처리 시 findAll()일 경우 동작이 안되는 이유가 궁금합니다.
강의 중에는 실무에선 즉시로딩을 사용하지 말라고 하셨지만 테스트 차원에서 즉시로딩으로 findAll()을 조회하면 내부에서 left outer join이 걸리는 않는 현상을 확인했습니다. 동일한 조건에서 findById()로 처리하면 left outer join이 걸립니다. OneToMany, ManyToOne 모두 동일하게 동작을 하던데 혹시 이렇게 동작되는 이유가 있을까요??? 미리 답변 감사드립니다.
-
미해결스프링 시큐리티
안녕하세요. 현재 로그인한 사용자 정보 가져오는것에 대한 질문입니다.
@GetMapping("/mypage")public String myPage(Model model, Authentication authentication) throws Exception { AccountContext ac = (AccountContext) authentication.getPrincipal(); model.addAttribute("info", ac.getUsername()); return "user/mypage";}바로 전 강의에서는 이 코드가 정상적으로 실행 됐는데,이번 강의에서 추가적인 작업을 한 뒤에는 error page가 나옵니다.. 혹시 이유와 어떻게 고쳐야하는지 알 수 있을까요???
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderItem을 DB에서 지우고자 할 때
안녕하세요. 주신 예제로 여러 가지 응용을 해보고 있는데, 한 가지 질문이 있어 질문드립니다. OrderItem을 지우는 상황을 가정을 했을 때, 지우는 방법에 대해 여쭤보고 싶습니다. (parent에 의존하여 영속화 되어있는 객체를 지우는 상황) Order를 지우면 OrderItem은 CASCADE 옵션 덕분에 잘 지워지지만, 반대로 Order는 두고 OrderItem 하나만 지우기 위해 Order <-> OrderItem 관계를 끊어도 OrderItem은 지워지지 않습니다. 아래는 제가 시도했던 부분입니다. - Parent인 Order의 list에서 OrderItem 삭제 - Child인 OrderItem에서 this.order = null; this.item = null;로 모든 관계 삭제 - @OneToMany 옵션이 있는 Parent쪽에서 orphanRemoval = true 옵션 넣기 - 위 과정 모두 한 뒤, em.persist(Order); 호출 위 모두 해보아도 OrderItem에 null로 들어갈뿐 OrderItem이 삭제 되진 않습니다. 구글링을 해봤을 땐 orphanRemoval 옵션 추가하고 연관관계 삭제하라는 말뿐이네요.. 혹시 방법이 있을까요? 그리고 추가로, 여기선 OrderItem이라는 다:1 매핑된 객체는 CASCADE를 통해 따로 영속화하지 않았는데, 보통 다:1 매핑은 전부 그러한가요? 제가 느끼기엔 서로 독립적으로 저장해야할 때라고 판단하였는데, 다:1이면 독립적일 수가 없을 것 같더라구요. 어떤 경우에 따로따로 영속화하고, 어떤 경우는 이 예시와 같이 한꺼번에 하는지 궁금합니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
update 중복 회원 검출
안녕하세요 선생님! 매번 좋은 강의 잘 듣고 있습니다 ㅎㅎ 강의에 매료되어 남은 강의 모두 구매해버렸어요!! 덕분에 너무 재미있게 학습하고 있습니다 ^^ 회원 수정 부분에 동일이름 회원 중복 검출이 안 되는 것 같아 다음 내용을 추가하면 되는 것인 지 궁금합니다. MemberService.java /** * 회원 수정 */ @Transactional public void update(Long id, String name) { Member member = memberRepository.findOne(id); validateDuplicateMember(member); // 추가한 부분 member.setName(name); } 좋은 강의 만들어 주셔서 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하십니까 강사님 주문하기에서 질문이 있습니다
주문하기 service입니다. 여기보시면 itemId로 하나의 아이템을 조회해서 ---> OrderItem에 파라미터로 item을 등록하지 않습니까? 궁금한 점이 있는데 만약 하나의 아이템이 아니라, 여러가지 아이템을 한번에 주문하고 싶다면 위 코드를 어떻게 바꿔야 할까요? Order의 createOrder은 파라미터를 (OrderItem... orderitem)으로 여러가지 아이템들이 올 수 있도록 만들어놨는데, 여러가지 아이템을 등록하기 위해서는 OrderItem의 createOrderItem을 어떻게 바꿔야 하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이 초록색 단축키 알리미 질문
안녕하세요 강의 듣고 따라해보고 있는 학생으로서 IDE에 대해 간단한 질문인데요..! 강의 중간에 보면 인텔리제이 하단에 초록색으로 어떤 단축키를 통해서 무엇을 할 수 있다고 뜨는 것 같은데 제 인텔리제이에서는 그게 안뜨더라구요. 혹시 어떻게 나올 수 있게할 수 있는지 여쭤봐도 될까요...? 강의 잘 듣고 있습니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO class 선언 및 update 시 id 조회 질문
안녕하세요. 두 가지 질문이 있어 이렇게 질문을 적어봅니다. 1. inner class를 왜 static으로 선언하나요? private으로 하면 물론 코드가 돌아가는 방식은 다르지만, 잘 돌아가더라구요. 혹시 실무에 적용한다면 어떤 문제점이 있나요? (다음 강의에서는 아무 것도 붙이지 않은 상태로 작성하신 것을 보니, 별로 임팩트 있는 부분은 아닌가보군요 ^^;) 2. 이건 간단한 질문인데, updateMemberV2 메서드에서 merberService.update 후, id로 update를 날렸음에도 id를 다시 찾아오시더라구요. id로 Member를 찾고 그로부터 getId를 다시 하는 이유가 있을까요? (수강자료에서 updateMemberV2 메서드 부분에 fineOne이라고 오타 있습니다.!) 항상 좋은 강의 감사드립니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문 목록 검색 시, 랜더링 과정에서 LAZY 로딩 발생에 대한 질문
안녕하세요. 김영한 강사님! 기본편부터 이번 챕터까지 덕분에 잘 배우고 있습니다! 제가 배웠던 내용을 되짚어 보면 프록시 객체가 초기화 되는 시점이 영속성 컨텍스트가 관리하는 중에 해당 프록시의 id를 제외한 다른 속성들을 호출하면 되는 것으로 이해하고 있는데요. 아니면 초기화 메소드를 사용하던가. 여기서 의문이 orderService를 통해 조회해서 받아온 List<Order> orders는 프록시 객체를 담은채로 반환이 되는 걸로 추측이 되는데. model.addAttribute()로 orders를 담은 후 "orders/orderList" 페이지를 렌더링 하는 과정 중에 <table class="table table-striped"> <thead> <tr> <th>#</th> <th>회원명</th> <th>대표상품 이름</th> <th>대표상품 주문가격</th> <th>대표상품 주문수량</th> <th>상태</th> <th>일시</th> <th></th> </tr> </thead> <tbody> <tr th:each="item : ${orders}"> <td th:text="${item.id}"></td> <td th:text="${item.member.username}"></td> <td th:text="${item.orderItems[0].item.name}"></td> <td th:text="${item.orderItems[0].orderPrice}"></td> <td th:text="${item.orderItems[0].count}"></td> <td th:text="${item.status}"></td> <td th:text="${item.orderDate}"></td> <td><a th:if="${item.status.name() == 'ORDER'}" href="#" th:href="'javascript:cancel('+${item.id}+')'" class="btn btn-danger">CANCEL</a></td> </tr> </tbody> </table> item.member.username에서 member를 lazy 로딩하고 item.orderItems[0].item.name에서 orderItem과 item을 lazy 로딩을 하는 것을 확인할 수 있었습니다. 저는 이번 과정을 통해서 @Transactional 어노테이션이 붙은 Service 로직 내에서만 영속성 컨텍스트가 엔티티를 관리해준다고 나름대로 이해를 했었는데, Service 영역을 벗어난 곳에서도 영속성 컨텍스트가 지연 로딩을 하는 것을 보니 조금 당혹스럽더라구요! 그래서 핵심 질문은 프록시 객체들이 @Transactional이 붙은 Service 로직 내를 벗어났는데 왜 lazy 로딩이 신기하게도 잘 발생하는지?가 궁금합니다 ㅎㅎ! 추가) 같은 member, 같은 item을 가진 order를 2개 조회해봤는데요! 1차 캐시에 의해 lazy 로딩이 첫번째 table 목록을 구성하는데만 발생하고 두번째 목록을 구성할 때는 member와 item 엔티티를 받는데에 select 쿼리를 새로 DB에 안 날리고 영속성 컨텍스트의 1차 캐시에 등록된 엔티티를 반환 받는 것도 확인이 되네요.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
OSIV OFF 에 대한 질문
영한님 강의 언제나 감사한 마음으로 들으며 공부하고있습니다! 질문이있습니다. OSIV OFF 를 하여 영속성컨텍스트 생존 범위를 Service까지로 제한하게되면, Lazy 초기화를 하는 코드들을 전부 Service로 밀어 넣으면 되는 것인가요? 저는 초보 프론트엔지니어라서 그런지,, 서버는 보통 템플릿을 사용하지않고, RestAPI 를 만드는 쪽에 익숙하여서 강의내용과 이부분이 조금 다른것같아 혼동이 옵니다. 다시한번 정리하면, 저같은 경우에는 (Restful api 를 만드는 경우) 모든 지연로딩 초기화 코드는 service 혹은 repository에 밀어넣고 여기서 끝내어, Controller에서는 service에서 넘어온 것을 반환하는 것 정도까지 하면 될까요? 언제나 영한님의 친절한 답변 감사합니다 !!+ 추가질문으로 이런 코드는 service, repository 둘중 어디에 넣는 것이 더 좋을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA와 Java 주의사항에 대한 여러 가지 질문
이번 강의에서는 평범한 도큐먼트만으로는 알 수 없는 정보를 알게 된 것 같아, 감사의 말씀드립니다.! 이 강의에서 몇 가지 JPA와 Java 사용에 대한 질문이 있습니다. 1. 전부 지연로딩으로 바꾸는 것이 좋다고 거듭 강조 주셨는데, 그렇다면 JPA는 왜 default로 EAGER를 사용하는 것인가요? EAGER를 default로 사용한다는 것은, 이렇게 사용하는 경우도 있고 장점도 있다는 것을 의미하는 것 같아 여쭤봅니다.! LAZY를 쓰지 않았을 때의 장점은 어떤 것들이 있나요? 2. Setter를 사용하지 않는 멤버변수에 한해 final을 사용하지 않는 이유는 무엇인가요? 아래 컬렉션 질문과 별개로 setter가 없는 모든 변수에 대해 궁금합니다. 3. 지금까지 필드 초기화는 생성자에서의 초기화와 다른 점이 우선순위만 다르다고 알고 있었습니다. 필드 초기화 -> 생성자 순으로 호출된다고 알고 있고, 단지 스타일 차이라고만 알고 있었습니다. 혹시 필드 초기화가 생성자 초기화보다 안전한 이유가 있을까요? 단순히 여러 생성자가 있을 때에 코드가 빠지는 실수를 막아준다는 이유 밖에 떠오르지 않는데, 다른 이유가 있는지 궁금합니다. 4. 양방향 연관관계 메서드에서 한 쪽만 연관관계 메서드를 적용시키면, 이를 모르고 호출하는 입장에서는 연관관계 메서드가 적용되지 않은 쪽을 호출하여 문제가 될 수도 있을 것 같다는 생각이 듭니다. Delivery <-> Order 관계를 예를 들면, 지금은 Order쪽에만 넣어서 Order에서 setDelivery할 때 자동으로 Delivery쪽도 해주었는데, “연관관계 메서드 해놨겠지”하며 Delivery에서 setOrder를 호출하면 문제가 될 것 같습니다. 물론 의미상 Order에서 Delivery와 OrderItem을 관리하는 것이 맞지만, 이렇게 직관적인 관계만 있지는 않을 것 같아서 그럴 때엔 어떻게 하는지 궁금합니다. 5. Address 부분 설명하실 때, 가볍게 "기본 생성자는 안 썼으면 좋겠지만 private으로 하면 안 되니 protected로 한다."라고 말씀주셨는데, 이러한 부분은 실제로 document를 읽지 않는 이상 알 수 없을 것 같아요. 강의를 듣는 사람 입장에서는 그렇구나 하고 넘길 수 있지만, 처음에 protected를 써야한다는 것은 그냥 단순히 private을 썼을 때 컴파일 오류를 통해 알게 되신건가요? (JPA에서 protected를 써야하는지 어떻게 알았냐가 메인 질문이라기보단, 이렇게 minor하지만 직관을 깨는 것들을 어떻게 보통 알게 되시는지가 궁금합니다.) 이 부분은 개인적으로 백엔드 팀장님으로의 김영한 선생님께 드리는 질문인데, 백엔드 쪽 공부를 하면서 느끼는 부분 중 하나가, 이렇게 tool을 사용하다보면 제 로직을 논리적으로 단단하게 짜는 시간도 있겠지만 그에 못지 않게 tool을 사용하기 위해 알아보는 시간도 적지 않게 쓰일 것 같은 느낌이 듭니다. 이러한 부분은 백엔드 개발이면 당연하게 받아들이는 부분인지 궁금합니다. 정말 길지만, 업무에 차질이 가지 않는 시간에 답변주시면 정말 감사하겠습니다. :)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
DTO 와 Form
Controller DTO SERVICE Book Entity 위와 같은 DTO를 만들어 넘겨주는 형태가 1.Controller->Service로 넘어가는 파라메터가 많을경우 최적화가 잘 되어있는 형태가 맞는지 궁금합니다! 2.BookForm 과 DTO의 분리 이 예제에서는 BookForm 과 ItemUpdateDTO 과 같지만, 실무에서는뷰에서 사용하는 객체와, DTO 객체는 필드가 다르거나 다른 로직이 들어가게 되므로 분리하는것으로 이해하였습니다. 만약 뷰와 서비스에서 필요로하는 필드가 같다면, 뷰에서 받는 파라메터를 BookForm이 아닌 UpdateItemDTO로 받아도 괜찮은지 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringConfig파일 dataSource 밑줄 오류
안녕하세요 강사님 강의 잘 듣고 있습니다. 아래 사진처럼 밑줄 오류가 뜨는데 실행해보니 별 이상은 없습니다. 정확인 무슨 이유인지 알 수 있을까요? 이것 뿐만 아니라 tymeleaf의 model 데이터 인식 오류로 인해 model 데이터에도 밑줄 오류가 뜨네요 인텔리제이가 약간 이런 오류가 많나봐요 ㅠㅠ
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
junit으로 회원등록 API 테스트 코드를 만들어 보았습니다.
junit으로 회원 등록 API 테스트 코드를 만들어 보았습니다. @ExtendWith(SpringExtension.class)@SpringBootTest@AutoConfigureMockMvcclass MemberApiControllerTest { @Autowired MockMvc mockMvc; @Autowired ObjectMapper objectMapper;// @BeforeEach// void setUp(@Autowired MemberApiController memberApiController){// mockMvc = MockMvcBuilders.standaloneSetup(memberApiController).build();// } @Test @DisplayName("회원_등록API_V1") void 회원_등록ApiV1() throws Exception { //given MemberDto memberDto = new MemberDto("회원1"); final String jsonStr = objectMapper.writeValueAsString(memberDto); //when final ResultActions resultActions = mockMvc.perform(post("/api/v1/members") .contentType(MediaType.APPLICATION_JSON) .content(jsonStr) ).andDo(print()); //then resultActions.andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.id").value("1")); } @Data @AllArgsConstructor static class MemberDto { private String name; } @Test @DisplayName("회원_등록API_V2") void 회원_등록ApiV2() throws Exception { //given MemberDto memberDto = new MemberDto("회원2"); final String jsonStr = objectMapper.writeValueAsString(memberDto); //when final ResultActions resultActions = mockMvc.perform(post("/api/v2/members") .contentType(MediaType.APPLICATION_JSON) .content(jsonStr) ).andDo(print()); //then resultActions.andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.id").value("1")); } @Test @DisplayName("회원정보_업데이트V2") void 회원정보_업데이트V2() throws Exception { //given MemberDto memberDto = new MemberDto("회원3"); final String jsonStr = objectMapper.writeValueAsString(memberDto); //when final ResultActions resultActions = mockMvc.perform(post("/api/v2/members/1") .contentType(MediaType.APPLICATION_JSON) .content(jsonStr) ).andDo(print()); //then resultActions.andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.id").value("1")) .andExpect(jsonPath("$.name").value("회원3")); } } 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Whitelabel Error Page
안녕하세요 강사님 강의보고 그대로 했는데 http://localhost:8080 에서 회원가입이나 회원목록을 누르면 Whitelabel Error Page 요런 에러가 나오는데 어디서 잘못된건지 찾아도 잘모르겠어서요.. 요 캡쳐화면으로 찾을수있는걸까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
~/test.mv.db 요파일 생성 여부는
안녕하세요 강사님 ~/test.mv.db 요파일 생성여부는 윈도우이용자는 어떻게 조회할수있는지 알수있을까요..??