묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
안녕하세요! 질문이 있습니다.
안녕하세요! 항상 좋은 강의 감사드립니다. @ControllerAdvice 공부하다가 궁금증이 생겨 질문 드립니다. 혹시, Controller에서 발생한 예외 말고, interceptor의 preHandle(), postHandle(), afterCompletion() 메서드 내에서 발생하는 예외도 @ControllerAdvice나 @ExceptionHandler로 잡을 수 있나요??
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요 제로초님 프론트엔드 개발 관련 질문이 생겨 질문남깁니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 제로초님 우선 강의 내용과는 조금 동 떨어져있는 질문일 수 있어 사과말씀드립니다.. 사용자 인터뷰(10명정도)를 진행하고 이들의 피드백에 따라 UI/UX를 개선하면 이는 어찌보면 단편적인 정보로 UI UX를 개선한 것이 되지않습니까? 만약 이 경우, 사용자 인터뷰에 따라 UI UX를 개선하게 된다면 이는 너무 단편적인 것이 아니냐는 질문에 어떻게 답변을 해야할까요? 어떻게 생각하시는지 궁금합니다.
-
미해결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.30) - {{ x86-64, arm64 }}
안녕하세요 질문이 있습니다.
그 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번 포트를 사용한다고 하면, 클라이언트의 포트 번호는 어떻게 결정되는지 궁금합니다. 혹시 참고할 만한 글이 있을까요?
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
한글이 안나와요
한글은 안나오고 요상한문자 나와요 ㅠㅠ