묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Repository Test에 관해서 질문 드립니다.
강의 다 보고 코드 복습하고 있는데 Repository 테스트를 진행한 걸 보고 의문점이 들었습니다.처음에 Jdbc, Jpa 등 DB 연결을 하지 않았을 때는 아래처럼 메소드 구현하고 테스트 한 것으로 이해했습니다.(1) DB와 연동되어있지 않은 클래스 테스트 (in-memory-database(IMDB))MemberRepository -> MemoryMemberRepository 구현 -> MemoryMemberRepositoryTest 테스트그렇다면 만약 Jpa를 구현하게 된다면 어떻게 테스트를 진행해야 할지 궁금합니다.Jpa를 사용하는 Repository인 경우 별개로 IMDB에서만 단위/통합 테스트를 진행하는 것이 좋을까요? 테스트를 어떻게 해야할지 생각해봤는데 (1), (2) 둘 중에 어느 방안으로 진행해야 할까요?(2) Jpa로 구현되어있는 클래스 테스트MemberRepository -> JpaMemberRepository 구현 -> JpaMemberRepositoryTest 테스트 그리고 Repository로 단위 테스트 진행 후, 통합 테스트도 진행이 필요한지 궁금합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ServletApplication 실행 안됨
현재 HTTP 요청 데이터 - 개요를 듣고 있습니다.강의 초반부인데 ServletApplication 실행이 아래의 오류는 아닌데 서버가 띄어지지 않고 바로 종료가 됩니다 2024-04-19T15:53:01.823+09:00 INFO 17800 --- [servlet] [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 17.0.10 with PID 17800 (C:\Users\uniti\OneDrive\바탕 화면\Developer\Back End\Spring\core\mvc1\servlet\servlet\out\production\classes started by uniti in C:\Users\uniti\OneDrive\바탕 화면\Developer\Back End\Spring\core\mvc1\servlet\servlet)2024-04-19T15:53:01.830+09:00 INFO 17800 --- [servlet] [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default"2024-04-19T15:53:03.289+09:00 WARN 17800 --- [servlet] [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed2024-04-19T15:53:03.309+09:00 INFO 17800 --- [servlet] [ main] .s.b.a.l.ConditionEvaluationReportLogger :Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-04-19T15:53:03.364+09:00 ERROR 17800 --- [servlet] [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failedat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1223) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1161) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:202) ~[spring-context-6.1.6.jar:6.1.6]at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5]at hello.servlet.ServletApplication.main(ServletApplication.java:12) ~[classes/:na]Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/annotation/WebServletat org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:62) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier(AbstractAutowireCapableBeanFactory.java:1257) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:951) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1217) ~[spring-beans-6.1.6.jar:6.1.6]... 16 common frames omittedCaused by: java.lang.ClassNotFoundException: jakarta.servlet.annotation.WebServletat java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]... 22 common frames omitted
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
pdf 파일 수정 부탁드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]2. 서블릿 pdf 파일에서 HTTP 요청 메시지 로그로 확인하기 부분에logging.level.org.apache.coyote.http11=debug 라고 되어 있어요근데 스프링 3 버전부터는 debug가 아니라 trace로 해야 적용이 되더라구요 그 부분 추가해주시면 다른 분들한테 도움될 거 같아요!
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
DTO 폴더는 BusinessLayer로 옮겼는데, using문은 HelloASP로 계속하나요?
혹시나해서 LoginService 클래스에서 using BusinessLayer.DTO 추가했는데도 인식을 못하네여.. 또한 ILoginService도 인식을 못하던데, 중간에 누겟설치와 참조 관계 때문에 그런건지? 여쭤봅니다. 수정) 다시보니, DTO 클래스에서 네임스페이스 바꾸지 않아서 인식을 못했던거네여.... 강의에서 네임스페이스를 안바꾼 이유가 있나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
mvc1편 model추가 - v3 오류 좀 확인해 주세요
링크 제한 풀어서 다시 질문 드립니다. v3의 회원가입을 실행하면 아래 오류가 뜹니다.localhost 페이지를 찾을 수 없음다음 웹 주소(http://localhost:8080/front-controller/v3/members/new-form)에 대해 발견된 웹페이지가 없습니다.HTTP ERROR 404 frontcontroller의 service가 두번 실행되는거 같습니다. (디버그 출력내용)requestURI = /front-controller/v3/members/new-formcontroller = hello.servlet.web.frontcontroller.v3.controller.MemberFormControllerV3@71b85ab7requestURI = /front-controller/v3/members/WEB-INF/views/new-form.jsp링크>>https://drive.google.com/file/d/1Tnp-X-Ua_O6pdnICKzPTyrGKdsY4blNe/view?usp=sharing
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
MemberServiceTest에 관하여 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]MemeberServiceTest 다 돌려봤는데 outerTxOff_fail()만 에러 뜨는게 정상인거죠??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
유연한 핸들러 - v5 프로그램이 죽습니다.
v5를 실행하면 아래 메세지를 남기고 프로그램이 죽어버립니다.링크 https://drive.google.com/file/d/14IcS9ki4CY--fXaF37H7_wonu9z67LJ9/view?usp=sharing
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
servlet members 저장
http://localhost:8080/servlet/members/new-form 에서 전송버튼을 눌렀을 때 http://localhost:8080/servlet/members/save 으로 넘어가지 않고새 창에서 file:///Users/.../Downloads/save 로 다운로드 파일로 새로운 url 에서 열리는데이유가 무엇인가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew build 를 왜 cmd에서 해야하는건가요?
gradlew build 를 왜 cmd에서 해야하는건가요?편리해서 그렇게 하는건지인텔리제이 안에서 세모버튼 누르면 되는데 왜 cmd에 하는지 모르겠어요수업자료에 나와있는것처럼 똑같이 실행했는데강사님 화면이랑 다르고,로컬호스트도 안뜨고어떻게 하는건지 잘 이해가 안돼요
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
자바 17로 프로젝트 생성 후 실행은 잘 되는데
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 자료에 제공되는 소스 코드는 자바 11 버전이라 잘 안 될 거 같아서https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2&unitId=83272&category=questionDetail&tab=community&q=1171198 이 방법대로 해서 실행은 정상적으로 됩니다. 폴더는 강의에서와 마찬가지로 form 폴더입니다.그런데 아래 사진처럼 item-serviceform [item-service] form이 아니라 item-service 이런 식으로 표시되는데, 앞으로 강의대로 진행하다가 나중에 문제 생길 여지는 따로 없을까요?맨 위의 item-service는 Project Structure에서 form으로 바꾸면 변하긴 하던데 아래에 있는 form [item-service]는 어떻게 바꾸는지 모르겠네요.. Refactor - Rename으로 해도 똑같습니다. settings.gradle을 수정했더니 갑자기 실행이 안 되길래 무서워서 그냥 원래대로 바꿨고요.. 그냥 안 바꾸고 해도 강의 따라 하는 데 지장 없을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
mvc1편 model추가 - v3 오류 좀 확인해 주세요
몇가지 강의 내용과 다르게 작성한게 있지만, 오류가 나는 이유를 모르겠습니다. 디버그를 해도 잘 진행되는데........v3의 회원가입을 실행하면 아래 오류가 뜹니다.localhost 페이지를 찾을 수 없음다음 웹 주소(http://localhost:8080/front-controller/v3/members/new-form)에 대해 발견된 웹페이지가 없습니다.HTTP ERROR 404 frontcontroller의 service가 두번 실행되는거 같습니다. (프린트 내용) requestURI = /front-controller/v3/members/new-formcontroller = hello.servlet.web.frontcontroller.v3.controller.MemberFormControllerV3@71b85ab7 requestURI = /front-controller/v3/members/WEB-INF/views/new-form.jsp 링크https://drive.google.com/file/d/1Tnp-X-Ua_O6pdnICKzPTyrGKdsY4blNe/view?usp=sharing
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바 환경변수설정,, 빌드 안됩니다
환경변수 설정도 찾아보고 잘 한것같은데빌드하려고 하면 자꾸 저 에러가 뜹니다ㅠㅠ캡쳐 첨부합니다 부탁드려요 ~~ ㅠ_ㅠ그리고 강의에서 알려주신 이 빌드방법 해결하지 못하면강의수업 따라갈 수 없나요 ? ㅠ자바 설치파일 경로 ..C:\Program Files (x86)\jdk-17.0.9_windows-x64_bin\jdk-17.0.9
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberRepository 인터페이스에 관하여
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 제가 자바에 대해 제대로 이해하고 있는지 궁금해서 질문드립니다. clearStore가 컴파일 오류나는이유가 repository의 타입이 MemoryMemberRepository의 부모클래스인 MemberRepository에는 clearStore메소드가 없어서 오버라이딩 되어있지 않기때문인걸로 알고 있는데 맞나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
메시지(국제화), 검증 모두 타임리프를 사용할 때만 적용하는건가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]메시지 및 국제화, 검증 모두 타임리프를 사용해서 편리하게 꺼내고 적용하는데, 뷰나 리액트를 연결할 때도 사용하는 방식인지 궁금합니다. 게시판에 비슷한 질문을 보기는 했는데 답변이 뭔가 명확하지 않아서 다시 질문드립니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
h2 네트워크 접속시 에러가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]어제까지 접속이 잘 됐었는데 갑자기 안되네요db파일은 생성이 잘 되는데네트워크로 접속하려고 하면 아래의 에러가 나면서 파일에 바로 접속하는 화면으로 바뀌어요 h2 삭제했다가 다시 깔아도 똑같고, 구글링해도 딱히 해결방안이 보이지 않습니다Connection is broken: "java.io.EOFException: localhost" [90067-214] 90067/90067 (도움말)org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.io.EOFException: localhost" [90067-214] at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) at org.h2.message.DbException.get(DbException.java:212) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:437) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:325) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:122) at org.h2.util.JdbcUtils.getConnection(JdbcUtils.java:288) at org.h2.server.web.WebServer.getConnection(WebServer.java:808) at org.h2.server.web.WebApp.login(WebApp.java:1033) at org.h2.server.web.WebApp.process(WebApp.java:226) at org.h2.server.web.WebApp.processRequest(WebApp.java:176) at org.h2.server.web.WebThread.process(WebThread.java:152) at org.h2.server.web.WebThread.run(WebThread.java:101) at java.base/java.lang.Thread.run(Thread.java:1583)Caused by: java.io.EOFException at java.base/java.io.DataInputStream.readFully(DataInputStream.java:210) at java.base/java.io.DataInputStream.readInt(DataInputStream.java:385) at org.h2.value.Transfer.readInt(Transfer.java:270) at org.h2.engine.SessionRemote.done(SessionRemote.java:603) at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:148) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:433) ... 10 more
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
URL 입력 시점과 LogInterceptor
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영상처럼 URL을 따라쳐보는 중에 의문점이 생겨서 문의드립니다URL에 localhost:8080 뒤 내용을 수정하고 ENTER를 누르지 않았는데도 Console에는 LogInterceptor가 수정한 주소의 로그를 찍고 있습니다로그를 찍는 기준이 ENTER를 누르는 순간이 아니라, 수정하면 즉각적으로 찍는건가요?작동원리를 정확히 알고 싶습니다현재 크롬으로 하고 있습니다(보시면 localhost:8080/items -> localhost:8080으로 수정하고 아직 ENTER를 누르지 않았는데 LogInterceptor는 localhost:8080으로 진입하였을 때의 로그를 찍고 있습니다)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Optional.of vs Optional.ofNullable
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 회원 도메인과 리포지토리 만들기 5:48Optional 관련 질문입니다. 인터넷에 검색해보니 of는 null 값이 들어올 경우 오류를 발생시키고 ofNullable는 null이 들어오면 처리를 해준다고 합니다. (실제로 작성해보니 오류가 잘 발생했습니다) Optional은 값이 있는지 확실하지 않을 때 사용한다고 하는데 of 메서드는 값이 확실해야만 사용할 수 있으니 어색하게 느껴졌습니다.Optional.of와 Optional.ofNullable 두가지 중 of 메서드는 어떤 경우를 위해 존재하는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드가안됩니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]왜그러죠 ㅠㅍ
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
SQL Server Management 연결 불가
서버 이름이 아래와 같이 공란으로 보이며,MSSQLSERVER 로 입력 시 아래 오류창이 뜹니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
EntityManager 생성자 만들 때 final을 붙이지 않는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]다른 파일들에서 DI 하려고 할 때 모두 생성자 생성하기 전 객체를 final로 정의했는데, SpringConfig 파일에서는 왜 final을 사용하지 않고 정의하나요??(MemberService.java) private final MemberRepository memberRepository; (JdbcTemplateMemberRepository.java) private final JdbcTemplate jdbcTemplate; (JpaMemberRepository.java) private final EntityManager em; --------------------------------------- (SpringConfig.java) private EntityManager em;