묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Slack 클론 코딩[실시간 채팅 with React]
npm run dev - webpack-cli 에러
npm run dev 했을 때 계속 이런 에러가 납니다! 무슨 오류인지 잘 모르겠습니다.. "scripts": { "dev": "cross-env TS_NODE_PROJECT=\"tsconfig-for-webpack-config.json\" webpack serve --env development", "build": "cross-env TS_NODE_PROJECT=\"tsconfig-for-webpack-config.json\" NODE_ENV=production webpack", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "@emotion/babel-plugin": "^11.3.0", "@emotion/react": "^11.4.1", "@emotion/styled": "^11.3.0", "@loadable/component": "^5.15.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3", "@types/react": "^17.0.19", "@types/react-dom": "^17.0.9", "cross-env": "^7.0.3", "css-loader": "^6.2.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", "style-loader": "^3.2.1", "ts-node": "^10.2.1", "typescript": "^4.3.5", "webpack-cli": "^4.8.0" }, "devDependencies": { "@babel/core": "^7.15.0", "@babel/preset-env": "^7.15.0", "@babel/preset-react": "^7.14.5", "@babel/preset-typescript": "^7.15.0", "@types/loadable__component": "^5.13.4", "@types/node": "^16.7.1", "@types/react-router": "^5.1.16", "@types/react-router-dom": "^5.1.8", "@types/webpack": "^5.28.0", "@types/webpack-dev-server": "^3.11.1", "babel-loader": "^8.2.2", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^3.4.1", "fork-ts-checker-webpack-plugin": "^6.3.2", "prettier": "^2.3.2", "react-refresh": "^0.10.0", "webpack": "^5.51.1", "webpack-dev-server": "^4.0.0" }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080 Whitelabel Error Page 오류
안녕하세요, 16분 경에서 김영한님이 실행하시고 localhost:8080에 들어가서 회원가입은 잘 실행이 되는데 회원 목록이 뜨질 않아요 ㅠㅠ,, Whitelabel Error Page가 뜨는데 오류 문구는 org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:622) ~[h2-1.4.200.jar:1.4.200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) ~[h2-1.4.200.jar:1.4.200] at org.h2.message.DbException.get(DbException.java:194) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:206) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:182) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:103) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Database.getPageStore(Database.java:2659) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Database.open(Database.java:675) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Database.openDatabase(Database.java:307) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Database.<init>(Database.java:301) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.openSession(Engine.java:74) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.openSession(Engine.java:192) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.createSessionAndValidate(Engine.java:171) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.createSession(Engine.java:166) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.createSession(Engine.java:29) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:340) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:173) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152) ~[h2-1.4.200.jar:1.4.200] at org.h2.Driver.connect(Driver.java:69) ~[h2-1.4.200.jar:1.4.200] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar:na] at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) ~[spring-jdbc-5.3.9.jar:5.3.9] at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) ~[spring-jdbc-5.3.9.jar:5.3.9] at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) ~[spring-jdbc-5.3.9.jar:5.3.9] at hello.hellospring.repository.JdbcMemberRepository.getConnection(JdbcMemberRepository.java:120) ~[classes/:na] at hello.hellospring.repository.JdbcMemberRepository.findAll(JdbcMemberRepository.java:78) ~[classes/:na] at hello.hellospring.service.MemberService.findMembers(MemberService.java:39) ~[classes/:na] at hello.hellospring.controller.MemberController.list(MemberController.java:40) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1064) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] Caused by: java.lang.IllegalStateException: The file is locked: nio:C:/Users/장윤지/test.mv.db [1.4.200/7] at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:950) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.FileStore.open(FileStore.java:172) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.<init>(MVStore.java:381) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore$Builder.open(MVStore.java:3579) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:170) ~[h2-1.4.200.jar:1.4.200] ... 78 common frames omitted 2021-08-25 23:34:17.934 ERROR 20888 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-200]] with root cause java.lang.IllegalStateException: The file is locked: nio:C:/Users/장윤지/test.mv.db [1.4.200/7] at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:950) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.FileStore.open(FileStore.java:172) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.<init>(MVStore.java:381) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore$Builder.open(MVStore.java:3579) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:170) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:103) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Database.getPageStore(Database.java:2659) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Database.open(Database.java:675) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Database.openDatabase(Database.java:307) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Database.<init>(Database.java:301) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.openSession(Engine.java:74) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.openSession(Engine.java:192) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.createSessionAndValidate(Engine.java:171) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.createSession(Engine.java:166) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Engine.createSession(Engine.java:29) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:340) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:173) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152) ~[h2-1.4.200.jar:1.4.200] at org.h2.Driver.connect(Driver.java:69) ~[h2-1.4.200.jar:1.4.200] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar:na] at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) ~[spring-jdbc-5.3.9.jar:5.3.9] at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) ~[spring-jdbc-5.3.9.jar:5.3.9] at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) ~[spring-jdbc-5.3.9.jar:5.3.9] at hello.hellospring.repository.JdbcMemberRepository.getConnection(JdbcMemberRepository.java:120) ~[classes/:na] at hello.hellospring.repository.JdbcMemberRepository.findAll(JdbcMemberRepository.java:78) ~[classes/:na] at hello.hellospring.service.MemberService.findMembers(MemberService.java:39) ~[classes/:na] at hello.hellospring.controller.MemberController.list(MemberController.java:40) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1064) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 라고 뜹니다.. h2 서버는 계속 떠있는 상태인데 뭐가 문제인지 모르겠습니다 ㅠㅠ 강의 항상 잘 보고 있습니다 감사합니다!
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
질문 입니다.
안녕하세요 제로초님 질문1. const onSubmitForm = useCallback( (e) => { e.preventDefault(); // console.log(chat); if (chat?.trim() && chatData) { const savedChat = chat; mutateChat((prevChatData) => { prevChatData?.[0].unshift({ id: (chatData[0][0]?.id || 0) + 1, content: savedChat, SenderId: myData.id, Sender: myData, ReceiverId: userData.id, Receiver: userData, createdAt: new Date(), }); return prevChatData; }, false).then(() => { setChat(''); scrollbarRef.current?.scrollToBottom(); }); axios .post(`/api/workspaces/${workspace}/dms/${id}/chats`, { content: chat, }) .then(() => { revalidate(); }) .catch(console.error); } }, [chat, chatData, myData, userData, workspace, id], ); DirecMessage에서 메시지를 보내면 onSubmitform이 실행되잖아요? 그러면 mutateChat으로 인해 옵티미스틱 ui가 되는데 이 원리가 궁금합니다 분명 디엠데이터는 Chatdata를 props로 chat컴포넌트에 넘겨준다음 result에 표시되어 렌더링 되는거잖아요?. 그런데 chat컴포넌트에 mutateChat를 넣어준곳도 없는데 어떻게 mutatechate를 인식해서 result로 보여지는지 궁금합니다. 질문2. 강의에서 제로초님이 옵티미스틱 ui가 실패했을 때(좋아요먼저 띄어주고 요청을 나중에 보냈는데 점검때 실패했을 경우 얼른 하트를 꺼버림 ) 경우 얼른? 다시 원상태로 돌아와야 한다고 제가 이해했는데요 mutatechate에서 axios .post(`/api/workspaces/${workspace}/dms/${id}/chats`, { content: chat, }) .then(() => { revalidate(); }) 이요청이 실패했을 경우 이미 렌더링 되어있는 디엠 데이터가 (얼른) 사라지지 않고 새로고침을 해야 사라지더라구요? 이렇게 작동하는게 맞나요?
-
미해결스프링 핵심 원리 - 기본편
안녕하세요! 강의를 보는 도중 문득 궁금한것이 생겨 질문드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(http://bit.ly/3fX6ygx)을 먼저 확인해주세요. 3. 질문 잘하기 메뉴얼(http://bit.ly/2UfeqCG)을 먼저 읽어주세요. 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 지금 빈조회까지 봤는데 실무에서 자연스럽게 스프링을 사용하고싶으면 빈 조회나 아니면 어노테이션컨피그컨텍스트같은것들의 사용방법들을 따로 모아서 봐야 하는지 아니면 강의를 계속 보다보면 자연스레 외워지는지 궁금합니다. 아니면 따로 추천해주실만한 공부법이 있을까요?
-
미해결혼자 공부하는 머신러닝+딥러닝
특성공학과 규제 강의 중 질문
강의 도중 이해가 안되는 부분이 있어 질문드립니다. 1. poly.fit([[2,3]])은 기본적으로 [1, a, b, a^2, ab, b^2]의 꼴을 가지게 되는데 이 형태가 갖는 의미가 무엇이며 왜 이 형태를 불러와야하는지 모르겠습니다 2. poly.get_feature_names() ['x0', 'x1','x2', 'x0^2', 'x0 x1', 'x0 x2', 'x1^2', 'x1 x2', 'x2^2'] 각각의 이름들이 해당하는 의미가 무엇이며 이 코드의 필요성은 무엇인가요 수업 잘 듣고 있습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA관련 count관련 질문드립니다.
JPA에서는 데이터베이스와 연결되어있는 Entity의 값을 변경하면 db안의 값도 변경 된다고 강의해주셨습니다. 수업을 듣다가 궁금한 점이 생겼는데, 실제 상황에서는 많은 주문이 동시다발적으로 발생합니다. 예를 들어 상품(Item)X는 7개 남아있음 A사람, B사람 - > 상품 X를 동시에 주문// 각각 Item이 생성 A사람에게 할당되어있는 Item의 count ==6 B사람에게 할당되어있는 Item의 count ==6 원래대로면 DB Item의 count는 7-2 =5가 되어야 함 그러나 DB Item의 count는 6이 되어있음 저는 이런 상황이 생길 것이라고 이해하고있는데, 맞는 예측일까요? 맞다면 어떻게 해결할 수 있을까요? 1.저는 static을 사용하여 count변수를 공유하는 방법 2. (방법은 잘 모르지만) 한 사람이 배송을 눌러서 count에 변화를 주는 동안(DB에 접근하는 동안), 다른 사람들의 배송로직을 지연시키는 방법 이렇게 두가지가 떠오릅니다. 두가지 다 맞는 방법일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
thymeleaf 관련 에러가 뜹니다.
회원 - 웹기능 조회 강의를 들으면서 코딩했고 postmapping으로 회원 등록하는 거는 정상적으로 작동했는데, 등록된 회원 목록 조회를 할때 /members(강의 기준 String list() 메서드) 2021-08-25 23:04:29.036 ERROR 9076 --- [nio-8080-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template [members/memberList], template might not exist or might not be accessible by any of the configured Template Resolvers] with root cause org.thymeleaf.exceptions.TemplateInputException: Error resolving template [members/memberList], template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1397) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1142) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 에러가 발생하는데 원인을 모르겠습니다.
-
해결됨HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
질문 있습니다!!
Modal 창 gnb 부분에서 hover 했을때 왼쪽에서 부터 차오르는 형태로 해보고 싶어서 코딩을 했는데 의도한대로 나오지 않고 a 태그가 밑으로 자꾸 떨어집니다ㅠㅠ <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> @import url('https://fonts.googleapis.com/css?family=Montserrat:300,400,500&display=swap'); @import url('http://fonts.googleapis.com/css?family=Monoton'); @import url('https://fonts.googleapis.com/css?family=Raleway&display=swap'); body { font-family: 'Montserrat', sans-serif; margin: 0; color: #222; } a { text-decoration: none; color: #222; } /* Video */ .video-frame:before { content: ''; position: absolute; width: 100%; height: 100%; background: linear-gradient(-135deg, rgba(30, 143, 255, 0.904), transparent); } .video-frame video { position: fixed; min-width: 100%; min-height: 100%; z-index: -1; } /* Logo */ .logo { position: absolute; top: 50px; left: 100px; transition: .3s; cursor: pointer; } .logo.active { z-index: 100; } /* Header */ .header { position: absolute; left: 100px; bottom: 100px; width: 800px; color: #fff; animation: show1 2s 1s linear; animation-fill-mode: both; } .header h1 { font-size: 60px; margin: 0; } .header h1 span { display: block; color: crimson; } .header p { font-size: 1.2em; line-height: 1.5em; } .header a { display: inline-block; text-align: center; color: #fff; border: 2px solid #fff; border-radius: 20px; padding: 10px 20px; width: 120px; margin-right: 20px; text-transform: uppercase; } /* .btn-book {} .btn-learn {} */ .header a:hover { background-color: #fff; color: #000; } /* Anniversary */ .anniversary { position: absolute; right: 100px; bottom: 50px; text-align: center; animation: show2 2s 1s linear; animation-fill-mode: both; transition: .3s; } .anniversary em { display: block; font-style: normal; font-size: 30px; letter-spacing: 5px; } .anniversary span { font-family: 'Monoton', sans-serif; font-size: 130px; } .anniversary.active { z-index: 100; color: #fff; } /* Trigger */ .trigger { position: absolute; top: 50px; right: 50px; width: 40px; height: 20px; z-index: 100; cursor: pointer; /* border: 1px solid #000; */ } .trigger span { position: absolute; width: 100%; height: 1px; background-color: #000; transition: .3s; } .trigger span:nth-child(1) { top: 0; } .trigger span:nth-child(2) { top: 50%; width: 80%; } .trigger span:nth-child(3) { top: 100%; } .trigger.active span { background-color: #fff; } .trigger.active span:nth-child(1) { top: 50%; transform: rotate(45deg); } .trigger.active span:nth-child(2) { opacity: 0; } .trigger.active span:nth-child(3) { top: 50%; transform: rotate(-45deg); } /* Modal */ .modal-gnb { font-family: 'Raleway', sans-serif; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.788); display: none; } .gnb { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } .gnb a { position: relative; display: block; color: #fff; font-size: 4em; padding: 10px; animation: gnb 2s linear; animation-fill-mode: both; } .gnb a:before { position: absolute; top: 0; left: 0; color: crimson; width: 0; overflow: hidden; content: attr(data-txt); /* transition: .5s; */ padding: 10px; transition: .3s; /* border: 2px solid yellow; */ } .gnb a:hover:before { width: 100%; } /* .gnb a:hover { color: crimson; } */ .gnb a:nth-child(1) { animation-delay: .2s; } .gnb a:nth-child(2) { animation-delay: .4s; } .gnb a:nth-child(3) { animation-delay: .6s; } .gnb a:nth-child(4) { animation-delay: .8s; } .gnb a:nth-child(5) { animation-delay: 1s; } @keyframes show1 { 0% { opacity: 0; margin-left: -150px; } 100% { opacity: 1; margin-left: 0; } } @keyframes show2 { 0% { opacity: 0; transform: translateX(150px); } 100% { opacity: 1; transform: translateX(0); } } @keyframes gnb { 0% { opacity: 0; transform: translate(-20px, -20px) } 100% { opacity: 1; transform: translate(0, 0) } } </style> </head> <body> <div class="container"> <div class="video-frame"> <video src="images/video-sky.mp4" autoplay muted loop poster="images/video-landing-preview.png"></video> </div> <div class="logo"> <img src="images/logo.png"> </div> <div class="header"> <h1> <span>Wave Ocean</span> The World's Ocean </h1> <p> The Atlantic Ocean is situated between the Americas and European/African continents. Atlantic Ocean is the second largest and saltiest ocean in the world. It resembles an S-shape between the Americas, Europe and Africa. “Atlantic” originated from the Greek god “Atlas” who carried the sky for eternity. </p> <a class="btn-book" href="#1">Book Now</a> <a class="btn-learn" href="#2">Learn More</a> </div> <div class="anniversary"> <em>Anniversary</em><span>60</span> </div> <div class="trigger"> <span></span> <span></span> <span></span> </div> <div class="modal-gnb"> <div class="gnb"> <a href="#1" data-txt="Attractions">Attractions</a> <a href="#2" data-txt="Hotels & Spa">Hotels & Spa</a> <a href="#3" data-txt="Shop & Dine">Shop & Dine</a> <a href="#4" data-txt="Celebrate">Celebrate</a> <a href="#5" data-txt="Promotions">Promotions</a> </div> </div> <div class="audio"> <audio id="ado" src="images/piano-bgm.mp3" autoplay loop></audio> </div> </div> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script> $(".trigger").click(function() { $(this).toggleClass('active') $(".anniversary").toggleClass('active') $(".logo").toggleClass('active') $(".modal-gnb").fadeToggle() }) var ado = document.getElementById('ado'); ado.volume = .3; </script> </body> </html>
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Service 의 반환값이 DTO인지 entity 인지에 대해서 궁금한점이 있습니다.
안녕하세요, 영한님 . 쓰신 책으로 먼저 이름을 접하게 되었는데 인프런에도 강의하고계셔서 신기합니다 ㅎㅎ 다름이 아니고 작은 프로젝트를 하는데 궁금한점이 생겨서 질문드립니다. 제가 아는 바로는 Service의 반환값은 entity가 아닌 DTO로 알고있습니다. https://stackoverflow.com/questions/21554977/should-services-always-return-dtos-or-can-they-also-return-domain-models 그런데 궁금한점은 만약 Service A의 특정메소드의 반환값을 Service B에서 필요로 하게 될때 어떻게 처리할지 고민입니다. 만약 ServiceA의 메소드의 반환값이 entity면 Service B 에서 큰 작업 없이 사용하면 되는데, dto인 경우일때 처리가 쉽지않은것같습니다. 그래서 ServiceA가 사용하는 repository A를 Service B에서 호출하는 방식을 사용을 고민중인데 혹시 이게 나쁜 방법일지 잘 모르겠습니다. 혹시 DTO들을 entity로 변환하는 로직을 모두 넣어줘야할까요? 정리하자면 Service A,B의 메소드가 entity가 아닌 DTO를 반환한다. ServiceB에서 A entity에 대해서 접근할때 Service A는 dto를 반환해서 B에서 원할히 접근하기 어렵다. ServiceB에서 ServiceA를 호출하지 않고 repositoryA를 호출하는데 좋은 방식인지 모르겠다. 조언 부탁드립니다 !
-
미해결웹 게임을 만들며 배우는 React
npx webpack시 에러가 발생합니다
npx webpack 입력 시 다음과 같은 에러가 발생합니다. 경로문제인거 같은데 해결이 잘 되지 않아서 이렇게 질문 남깁니다
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 질문
안녕하세요 선생님 데크의 오른쪽에서 삽입할 때는 appendright라고 말씀하셨는데, 선생님께서는 right를 생략하고 append만 사용하시더라구요. 혹시 append의 default가 appendright 인건가요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
예제 에러
워커 쓰레드 예제를 그대로 구현하고, 실행했는데, Module_Not_Found 에러가 뜹니다. 따로 타이포나, 디렉토리 페스도 이상이 없는거 같은데.. 이경우 어떻게 해결해야할까요?
-
미해결스프링 시큐리티
FactoryBean 관련 질문
안녕하세요 factory bean 에 대해서 학습하다 보니 질문이 생겼습니다. 일단 구성은 interface(ABC)를 상속 받은 객체 (A, B, C) 요렇게 있을 때 factory pattern으로 동적으로 A, B, C객체를 가져오도록 구현하고 있습니다. 그리고 A, B, C 모두 Bean으로 등록 되었기 때문에 di 도 가능해야 하는 상황 입니다. 이때 A,B,C객체를 모두 Bean으로 등록하고 런타임에서 3객의 객체를 가져오려면 어떤 방법으로 구현 해야하나요? 만약 FactoryBean을 사용하지 않고 다른 방법을 사용할 수 있으면 예시를 보여주실 수 있으신가요? public interface ABC { void hello(); } public class A implements ABC { @Autowired private Hello hello; void hello() { // codes.. } } public class B implements ABC { @Autowired private Hello hello; void hello() { // codes.. } } public class C implements ABC { @Autowired private Hello hello; void hello() { // codes.. } } public class ABCFactory implements FactoryBean<ABC> { private Type type; @Override public ABC getObject() throws Exception { if (type == Type.A) { return new A(); } else if (type == Type.B) { return new B(); } return new C(); } @Override public Class<?> getObjectType() { return ABC.class; } @Override public boolean isSingleton() { return true; } public void setType(Type type) { this.type = type; } } // 사용 시점 @Service public class Use { // factory class public void use (Type type) { // type 이 A 일 경우 A객체 반환 // type 이 B 일 경우 B객체 반환 // type 이 C 일 경우 C객체 반환 return // obj } }
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
오타가 있습니다!
안녕하세요 선생님 해당 강의 목차에서 Two 가 Tow로 되어있습니다! Tow pointers, Sliding window[효율성 : O(n^2)-->O(n)] 감사합니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
질문드립니당..!
안녕하세요 강사님 강의를 너무 좋아하고 재미있게 배우는 학생입니다.지금까지 배운내용(HTTP 강의)을 영한님 강의중에 실습하는 강의가 있나요 ? 실습해보고싶어서용
-
미해결쉽게 시작하는 쿠버네티스(v1.35)
안녕하세요 질문이 있습니다.
그 w1-k8s 워커 노드의 kubelet 을 종료시키고 del-deploy.yaml 을 이용해 배포했는데 Pending 상태가 되지 않고 w1-k8s 를 제외하고 w2-k8s 에서 2개 w3-k8s 에서 1개로 총 3개 Node를 잘 만들어버리는데.. 버젼이 업데이트가 되며 알아서 1워커노드를 제외하고 2 워커노드에서 2개 3워커노드에서 1개 로 정상 동작하게 되는 건가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
클라이언트쪽 포트번호는 어떻게 할당 되나요?
안녕하세요? 서버쪽 포트 번호는 개발자가 포트포워딩을 통해 몇 번 포트를 열어둘 지 결정합니다. 서버는 80번, 클라이언트는 10010번 포트를 사용한다고 하면, 클라이언트의 포트 번호는 어떻게 결정되는지 궁금합니다. 혹시 참고할 만한 글이 있을까요?
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
한글이 안나와요
한글은 안나오고 요상한문자 나와요 ㅠㅠ
-
해결됨[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
선생님!.open-modal을 눌러도 모달이 안열려요 그리고, btn에 background-color: #fff;해도 선이 사라지지 않네요
선생님!.open-modal을 눌러도 모달이 안열려요 그리고, btn에 background-color: #fff;해도 선이 사라지지 않네요 ㅠㅠ 제가 뭘 잘못한걸까요 <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>부여 가을연꽃축제</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <div class="left"> <header> <div class="header-logo"> <a href="#none"> <img src="images/logo-header.png" alt="header-logo"> </a> </div><!--.header-logo--> <div class="navi"> <ul class="menu"> <li> <a href="#none">축제소개</a> <div class="sub-menu"> <a href="#none">초대의 글</a> <a href="#none">축제개요</a> <a href="#none">축제연혁</a> <a href="#none">오시는길</a> </div><!--.sub-menu--> </li> <li> <a href="#none">행사안내</a> <div class="sub-menu"> <a href="#none">셔틀버스안내</a> <a href="#none">행사안내</a> <a href="#none">행사일정</a> <a href="#none">소공연장</a> </div><!--.sub-menu--> </li> <li> <a href="#none">홍보마당</a> <div class="sub-menu"> <a href="#none">축제소식</a> <a href="#none">보도자료</a> <a href="#none">음식레시피</a> </div><!--.sub-menu--> </li> <li> <a href="#none">참여마당</a> <div class="sub-menu"> <a href="#none">참가후기</a> <a href="#none">연꽃갤러리</a> <a href="#none">포토갤러리</a> </div><!--.sub-menu--> </li> </ul> </div><!--.navi--> </header> </div><!--.left--> <div class="right"> <div class="slide"> <div> <a href="#none"> <img src="images/slide-01.jpg" alt="slide image1"> </a> <a href="#none"> <img src="images/slide-02.jpg" alt="slide image2"> </a> <a href="#none"> <img src="images/slide-03.jpg" alt="slide image3"> </a> </div> </div><!--.slide--> <div class="items"> <div class="news"> <div class="tab-inner"> <div class="btn"> <span>공지사항</span> </div><!--.tab-inner--> <div class="tab"> <a href="#none" class="open-modal"><em>운영위원장 후보자 추천을 받고 있습니다.</em><b>2020.01.09</b></a> <a href="#none"><em>홈커밍데이 진행위원회 결과를 다운로드 받으세요.</em><b>2020.01.07</b></a> <a href="#none"><em>카드결제 무이자 이벤트 한시적 10월 20일까지</em><b>2019.12.31</b></a> <a href="#none"><em>보안강화 시스템 작업 안내 공지</em><b>2019.12.20</b></a> <a href="#none"><em>부여 가을연꽃축제 10주년 콘서트 축제</em> <b>2019.12.20</b></a> </div><!--.tab--> </div><!--.tab-inner--> </div><!--.news--> <div class="gallery"> <div class="gallery-inner"> <div class="btn"> <span>갤러리</span> </div><!--.tab-inner--> <div class="tab"> <a href="#none"> <img src="images/gallery-01.jpg" alt="gallery images1"> </a> <a href="#none"> <img src="images/gallery-02.jpg" alt="gallery images2"> </a> <a href="#none"> <img src="images/gallery-03.jpg" alt="gallery images3"> </a> </div><!--.tab--> </div><!--.tab-inner--> </div><!--.gallery--> <div class="shortcut"> <a href="#none"> <img src="images/shortcut.jpg" alt="shortcut"> </a> </div><!--.shortcut--> </div><!--.items--> <footer> <div class="copyright"> (주)이스타컴퍼니 | 대표자 : 최종윤 | 개인정보관리책임자 : 이주현 부장 사업장주소 : 인천광역시 중구 개항로 6층 (주)이스타컴퍼니 </div><!--.copyright--> <div class="sns"> <div> <a href="#none"> <img src="images/sns-01.png" alt="facebook"> </a> <a href="#none"> <img src="images/sns-02.png" alt="tweeter"> </a> <a href="#none"> <img src="images/sns-03.png" alt="instagram"> </a> </div> <div> <select> <option value=""> Family Site </option> <option value=""> 여주군청 홈페이지 </option> <option value=""> 한국관광공사 </option> <option value=""> 여행자보험가입 </option> </select> </div> </div><!--.sns--> </footer> </div><!--.right--> </div> <div class="modal"> <div class="modal-content"> <h2>부여 가을연꽃축제 팸투어 모집</h2> <p> 예비 청년상인들을 위해 진행하는 부여에서 청춘의 미래를 디자인하다. 청년창업人부여 팸투어가 12월 05일 토요일 충청남도 부여에서 진행됩니다.<br> 팸투어는 전액 무료로 진행되며 참가비 없습니다. 이번 팸투어에서는 부여군상권활성화재단의 청년상인 육성프로젝트를 실제로 견학하며 확인해 보실 수 있는 좋은 기회이니 창업을 희망하는 많은 청년 분들의 관심 부탁드립니다.<br> 온라인 및 전화 또는 메일 등으로 사전 참가신청하실 수 있습니다! </p> <a href="#none" class="close-modal">닫기</a> </div> </div> <script src="script/jquery-1.12.4.js"></script> <script src="script/custom.js"></script> </body> </html> @charset "utf-8"; a{ color:#222328; list-style: none; text-decoration: none; } body{ margin:0; background-color: #fff; color:#222328; font-size: 15px; } .container{ width:1000px; } .container > div{ float: left; box-sizing: border-box; } .left{ width:200px; } .right{ width:800px; } header{ position: relative; z-index: 10; } header > div{} .header-logo{ height: 100px; line-height: 130px; } .navi{ height: 400px; } .slide > div{ height: 350px; } .items{ overflow: hidden; } .items > div{ height: 200px; float: left; box-sizing: border-box; } .news{ width: 300px; } .gallery{ width: 300px; } .shortcut{ width: 200px; } footer{ overflow: hidden; } footer > div{ height: 100px; float:left; box-sizing: border-box; text-align: center; } .copyright{ width:600px; padding-top: 30px; } .sns{ width:200px; } .sns div{ height: 50px; box-sizing: border-box; } .sns div:nth-child(1){ padding-top: 15px; } .sns div:nth-child(2){ padding-top: 10px; } /* slide */ .slide{ position: relative; } .slide > div{ /*position: absolute;를 여기에다가 주는게 아니라 .slide > div a{}안에 주어야함*/ } .slide > div a{ position: absolute; top:0; left:0; opacity: 0; animation: slide 10s linear infinite; } .slide > div a:nth-child(1){ animation-delay: 0s; } .slide > div a:nth-child(2){ animation-delay: 3.5s; } .slide > div a:nth-child(3){ animation-delay: 7s; } @keyframes slide{ 0%{ opacity: 0; visibility: hidden; /*visibility: hidden;*/ } 5%{ opacity: 1; } 35%{ opacity: 1; } 40%{ opacity: 0; } 100%{ opacity: 0; } } /* Nevigation */ .menu{ padding: 0; width: 90%; margin: auto; position: relative; } .menu li{ text-align: center; list-style: none; text-decoration: none; } .menu li > a{ border: 1px solid #000; display: block; padding: 5px; transition: 0.5s; } .menu li:hover > a{ background-color: #000; color:#fff; } .sub-menu{ border: 1px solid #000; position: absolute; background-color: #000; width:100%; top:0; left:100%; height: 200px; display: none; /* */ } .sub-menu a{ display: block; padding: 5px; transition: 0.5s; color:#fff; } .sub-menu a:hover{ background-color: #000; color:#fff; } /* Tab Content */ .tab-inner, .gallery-inner{ width:95%; margin:0; } .tab-inner .btn{} .tab-inner .btn span, .gallery-inner .btn span{ border: 1px solid #000; display: inline-block; width:100px; text-align: center; padding: 5px; border-radius: 5px 5px 0 0; border-bottom: none; box-sizing: border-box; } .tab-inner .tab{ padding:5px; } .tab-inner .tab, .gallery .tab{ border: 1px solid #000; height: 150px; box-sizing: border-box; } .tab-inner .tab a{ display: block; padding: 3px; border-bottom: 1px solid #333; overflow: hidden; } .tab-inner .tab a:last-child{ border-bottom: none; } .tab-inner .tab a em{ width:60%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; float:left; font-style: normal; } .tab-inner .tab a b{ width:30%; float: right; font-weight: normal; } .gallery .tab img{ width:85px; } .gallery-inner .tab{ text-align: center; padding-top: 20px; } /* Modal */ .modal{ background-color: rgba(0, 0, 0, 0.5); position: absolute; top:0; left:0; width:100%; height: 100%; z-index: 100; display: none; } .modal-content{ width:350px; background-color: #fff; top:50%; left:50%; position: absolute; transform: translate(-50%, -50%); padding:20px; border-radius: 10px; } .close-modal{ float: right; border: 1px solid #000; padding: 5px 10px; } /* Navigation */ $('.menu li').mouseenter(function(){ $(this).children('.sub-menu').stop().slideDown() }); $('.menu li').mouseleave(function(){ $(this).children('.sub-menu').stop().slideUp() }); /* modal */ $('.open-modal').click(function(){ $('modal').fadeIn() }); $('.close-modal').click(function(){ $('modal').fadeOut() });
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
모듈이 안나옵니다 ㅠㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.