강의에서 일반적으로 repository에서 만든 dto를 service와 controller에서 사용한다고 하셨습니다. 그런데 이전 강의에서 tuple은 repository계층에서만 사용하고 service나 controller에서 사용하는건 비추한다고 하셨습니다. tuple의 경우엔 하부 구현기술에 class이니 앞단에서 알면 좋지 않다.(jpa를 바꾸게 되는 경우 수정할 로직이 많아진다) 라고 이해했는데요. dto도 비슷하지 않을까 생각이 들었습니다. repository에서 만든 dto를 바꾸게 될 경우 앞단에서 수정할 로직이 많으니까요. dto와 tuple(resultset 등)은 다르게 보아야 하는걸까요? repository에서 만든 dto는 repository나 service에서까지만 사용하고 controller에서는 새로운 dto로 매핑하는게 맞을까요? 아니면 repository는 뒷단(안쪽) 영역이니 앞쪽에서 의존성을 가져가도 된다고 생각하는게 맞을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프(String)getServletContext().getAttribute 여기에 담고 바로 Servlet.Get 서버 실행에서 null값 나오는분들 ServletEx 서버 들렸다가 다시 오면 값 나와요런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
질문용 파일 링크: https://drive.google.com/file/d/1H7Jk68AinSPuCjEWiavLgFMpQtEuHdhT/view?usp=sharing gradle build를 실행할 때 계속 오류가 납니다. 우측의 Gradle Tab > (프로젝트명) > Tasks > build > build 실행 jar 파일만 생성시킬 땐 무사히 만들어지는데 build 명령을 내릴 때는 test code 단계에서 계속 오류가 납니다. test code가 분명 있는데도 찾지를 못하네요. ClassNotFoundException 자주 하는 질문에 적어주신 방법은 다 시도해봤습니다. 1. IntelliJ IDEA로 test code 실행주체 바꾸기, 2. 설정이 java 11로 제대로 되어있는지 확인하고 바꾸기(자주 하는 질문 매뉴얼(https://docs.google.com/document/d/1j0jcJ9EoXMGzwAA2H0b9TOvRtpwlxI5Dtn3sRtuXQas/edit#heading=h.f9xqb7l8nuph)에 적으신 대로 선택했습니다). 3. project close 한 다음에 build.gradle 파일을 open as project로 열어서 재실행하기 4. 혹시나 버전 호환성 문제일까 싶어서 원래는 2.6.4 버전이었는데 강의에서 나온 2.3.1 버전으로 다운그레이드해서 재실험해봤거든요. 그런데도 똑같은 오류가 계속 뜨네요. 위의 파일 링크 안에도 포함되어있긴 하지만, 더 빨리 찾으시라고 아래에 error log 따로 적어봅니다. org.gradle.api.internal.tasks.testing.TestSuiteExecutionException: Could not execute test class 'KYH.Elementary.ElementaryApplicationTests'. at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:53) at java.base@11.0.14/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@11.0.14/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base@11.0.14/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@11.0.14/java.lang.reflect.Method.invoke(Method.java:566) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) Caused by: org.gradle.internal.UncheckedException: java.lang.ClassNotFoundException: KYH.Elementary.ElementaryApplicationTests at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:68) at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:41) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.loadClass(JUnitPlatformTestClassProcessor.java:112) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.access$100(JUnitPlatformTestClassProcessor.java:54) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:89) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:79) at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) ... 18 more Caused by: java.lang.ClassNotFoundException: KYH.Elementary.ElementaryApplicationTests at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:398) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.loadClass(JUnitPlatformTestClassProcessor.java:110)
■ 질문 남기실 때 꼭! 참고해주세요. - 먼저 유사한 질문이 있었는지 검색해주세요. - 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다. - HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요. - 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다. 선생님, 탭 슬라이더를 포트폴리오로 응용할 때 여러 개의 탭버튼 안에 슬라이더를 넣어 구현하려고 하는데요. input과 slick.js 로 응용해서 첫 번째 탭버튼에서는 슬라이더가 잘 먹힙니다. 두번째 탭부터는 내부에 적용한 슬라이더가 깨지고 먹히지 않아요.. 구글링을 해서 몇몇 개를 살펴봤는데 코드가 정확한건지 헷갈려서 질문으로 남깁니다.
제가 하는 방식은 잘못된 건가요? 2번의 답을 구하려해도 안나오더라구요.. let 농구공={ 이름:'~~~' 가격:'~~~~' 설명:'~~~'} 이런식으로 세개의 객체를 정한 뒤 let 상품들=["농구공","배드민턴채","탁구채"]로 배열을 묶는건 잘못된 방식인가요?! 아니라면 2번정답을 알 방법좀 알려주세요!!
안녕하세요:) 영한님의 강의을 듣다가 궁금한 점이 생겨 질문 남기게 되었습니다. 영한님의 이번 강의에서 설계 단계가 다음과 같이 진행됐습니다. 1. 요구사항을 분석하기. 요구사항을 분석해, 도메인을 나누고 도메인간의 관계를 설정함 그리고 도메인 설계도를 작성. 2. 도메인 설계도를 기반으로 엔티티 설계도 만들기 3. 테이블 설계도 만들기. 여기서 궁금한 점이 생겼습니다. 도메인 설계도를 이용해 테이블 설계도를 먼저 만들고, 엔티티 설계도를 만들어도 되는건가요? 제가 생각하기에는 도메인 설계도를 이용해 테이블 설계도를 만들고, 그 후 테이블에 매핑되는 엔티티들을 만든 뒤 연관관계가 필요하면 연관관계를 만들어주는 식으로 테이블 설계도와 엔티티 설계도를 매핑을 하는게 더 자연스럽다고 생각했습니다. 혹시 엔티티 설계도를 먼저 만든 이유가 있을까요? ---------------------------------------------------------- 제가 생각해본 이유로는 아무래도 엔티티 설계를 먼저하는게 더 객체지향적인 설계가 가능하기 때문인 것 같은데, 혹시 제가 생각한 이유가 맞는건가요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 기존에 nosql위주로 개발을 하다가 mysql 및 JPA를 도입하려고하는 영한님 강의 듣고 있는 개발자입니다. ddd와 연관지어서 jpa의 엔티티 정책에 궁금한 점이 2가지 있는데 (유사한 카테고리) 1. Team 에그리거트와 Member 에그리거트는 간의 경계가 허물어 지는 문제 예를들어서 @Entity class MemberEntity { ... @ManyToOne Team team; ... } 이런식으로 엔티티가 구성 하시던데요 에릭에반스인지 반버논 책인지 기억은 안나는데 Team을 직접 가지기보다는 String team_id;값을 가지는 것이 권장된다고 알고 있고 저는 실무에서 그렇게 사용하고 있었습니다. 제가 업무에서 mysql를 사용하지 않아서 실제 mysql jpa 사용하시는 분들도 실전에서 위처럼 그대로 사용하는지 궁금하네요. JPA식으로 사용하게되면, MemberRepository에서 member 를 조회하면 , TeamRepository를 조회하지 않고도 팀 정보를 가져오게 되는 것인데, 이러면 바운디드 컨텍스가 무너지는 결과를 초래하지 않나 싶습니다. 이부분에 대해서 영한님 의견은 어떠신가요? 2. Entity의 오염 JPA를 쓰다보면 @ManyToOne, Load 정책 등 같은 비즈니스 로직과 무관한 DB종속적인 값들이 Entity에 들어가게되더라고요 DDD에서 말하는 순수 핵심 비즈니스 로직의 Entity만 넣고 쓰고 싶은데, JPA를 활용하게 되면 이게 힘든 부분이죠? JPA Entity를 흔히말하는 DAO처럼 쓰고 별도의 Domain Entity를 만들고 싶은데 이렇게 가능한지 궁금합니다. 대충 JPA내용을 봤을때 이렇게 분리하는게 불가능한 것 같기는한데 실제로 Entity를 어떻게 사용중이신지 궁금합니다.
answer = Math.max(answer,sum1); answer = Math.max(answer,sum1); //두 부분중 위쪽 코드에서 answer = Math.max(,sum1,sum2); 이렇게 한번에 사용하면 왜 에러가 뜨나요?? ㅁanswer에 sum1,sum2중 최대가 들어간다고 생각했는데 intellij에서는 실행이되는데 채점사이트에서는 안됩니다. 단순 채점사이트에서만 에러인지 이렇게 사용하면 안돼는건지 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요.! 김영한강사님 로드맵을 따라가려고 합니다. jpa로드맵 말고, '스프링 완전정복' 로드맵을 따라가려고 합니다. 혹시 강의와 같이 볼만한 책을 추천해주실 수 있나요?
혼자 해결해보려다 답이 안나와서 질문드립니다. <c:forEach /> 사용하여 top_menu 의 게시판 링크를 작성하는 부분에서 ${topMenuList} 가 제대로 동작하지 않는 것 같습니다. 게시판 이름별로 링크가 생성되지 않고 ,${obj.board_info_name} 만 화면에 출력됩니다. 어느 부분에서 놓치고 있는 건지 모르겠습니다.
-HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)-[완강] -HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)-[수강 중] -중상급 퍼블리싱을 위한 CSS3의 모든 것-[구매완료] -반응형 웹사이트 포트폴리오(Architecture Agency)-[구매완료] -반응형 웹사이트 포트폴리오(App Official Landing Website)-[구매완료] -플렉스(Flex) 반응형 웹사이트 포트폴리오(The World's Best Cities)-[구매완료] 선생님 안녕하세요. 저는 선생님 강의를 총 6개 구매하여 순차적으로 수강하고 있는 백엔드 개발자 입니다. 많은 개발자들이 본인의 정리를 위해서, 또는 보여짐을 위해서 블로그나 깃허브를 통해서 공부한 것들을 정리하거나, 게시하는 활동들을 하고 있습니다. 한 챕터 혹은 한 강 듣고 나오는 결과물을 개인적 공간에 게시 하여도 되는지 궁금합니다. (강의정리가 아닌, 단순 결과물) 제가 궁금한 부분을 검색을 해 보았으나 찾기 힘들어 이렇게 질문을 드립니다. 예를 들자면, 강의를 들으면서 만들었던 이런 결과물을 게시하여도 되는지 입니다. 감사합니다. 좋은 하루 되세요. ^^
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. MEMBERS 에 insert 하려고하는데 아래와 같은 오류가 발생합니다. 실행하고자 하는 코드 : insert into member(name) values("spring") 오류 코드 Column "spring" not found; SQL statement: insert into member(name) values("spring") [42122-200] 42S22/42122 (도움말) org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "spring" not found; SQL statement: insert into member(name) values("spring") [42122-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:453 ) at org.h2.message.DbException.getJdbcSQLException(DbException.java:429 ) at org.h2.message.DbException.get(DbException.java:205 ) at org.h2.message.DbException.get(DbException.java:181 ) at org.h2.expression.ExpressionColumn.getColumnException(ExpressionColumn.java:163 ) at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:145 ) at org.h2.command.dml.Insert.prepare(Insert.java:327 ) at org.h2.command.Parser.prepareCommand(Parser.java:744 ) at org.h2.engine.Session.prepareLocal(Session.java:657 ) at org.h2.engine.Session.prepareCommand(Session.java:595 ) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1235 ) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:212 ) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:201 ) at org.h2.server.web.WebApp.getResult(WebApp.java:1459 ) at org.h2.server.web.WebApp.query(WebApp.java:1116 ) at org.h2.server.web.WebApp$1.next(WebApp.java:1078 ) at org.h2.server.web.WebApp$1.next(WebApp.java:1065 ) at org.h2.server.web.WebThread.process(WebThread.java:178 ) at org.h2.server.web.WebThread.run(WebThread.java:94 ) at java.base/java.lang.Thread.run(Thread.java:834) test.mv도 읽기전용이 아닌것을 확인했습니다. 왜 이런 오류가 발생하고.. insert가 안될까요?
The type org.springframework.context.ConfigurableApplicationContext cannot be resolved. 이 에러를 많이들 맞이하시는것 같은데,, https://gocoder.tistory.com/721 이곳을 보니 .m2 > repository 를 지우고 maven 업데이트를 다시 하라고 합니다. 이렇게 하니 전 해결되었습니다.