묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결오라클 성능 분석과 인스턴스 튜닝 핵심 가이드
Buffer Cache의 storage I/O
Buffer Cache storage I/O Access 관련 질의있습니다.(강의자료 74p) 맨 처음으로 원하는 데이터가 있는 블록의 DBA정보를 알아내야 하는데, 이 때 storage I/O가 필요할 것으로 생각됩니다.(DBA 정보를 얻기 위해) 제가 생각한게 맞을까요?? 그리고, storage I/O가 발생하는것이 맞다면, 버퍼 캐시를 사용하여도 무조건 1번의 storage I/O가 발생하는데, 그렇게 되면 버퍼 캐시를 사용하는 장점이 없어지는 것 같습니다. 버퍼 캐시에 원하는 데이터의 블록 존재여부와 관계없이 두 케이스 모두 storage I/O를 한번씩 하지않나요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
v1에서 v2로 바꿀때 postman이 동작하질 않습니다
안녕하세요 v1에서 v2로 바꿀때 postman이 동작하질 않습니다 엔티티를 조금 제 입맛에 맞게 변경했는데 v1은 도작하나 v2는 동작하질 않아서.. 이게 왜 이런 오류가 나는지 모르겠습니다 [MemberApiController] package mkyu.loginApi.domain.api; import com.fasterxml.jackson.databind.annotation.JsonValueInstantiator; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.Value; import mkyu.loginApi.domain.member.Member; import mkyu.loginApi.domain.service.MemberService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; @RestController @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; //RequestBody는 json의 데이터를 Member로 다 넣어줌, 엔티티를 파라미터로 넣으면 안됨/ 수정, sns로그인 때문에 1:1이 안되서 오류남 @PostMapping("/api/v1/members") public CreateMemberResponse saveMemberV1(@RequestBody @Valid Member member) { Long idx = memberService.join(member); return new CreateMemberResponse(idx); } @PostMapping("/api/v2/members") public CreateMemberResponse saveMemberV2(@RequestBody @Valid CreateMemberRequest request) { Member member = new Member(); member.setName(request.getName()); Long idx = memberService.join(member); System.out.println(idx); return new CreateMemberResponse(idx); } // @Data static class CreateMemberRequest { private String name; } @Data static class CreateMemberResponse { private Long idx; public CreateMemberResponse(Long idx) { this.idx = idx; } } } [Member] package mkyu.loginApi.domain.member; import lombok.*; import mkyu.loginApi.domain.BaseTimeEntity; import javax.persistence.*; import javax.validation.constraints.NotEmpty; @Table(name = "MEMBER") @Getter @Setter @NoArgsConstructor @Entity @AllArgsConstructor @Builder public class Member extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_idx") private Long idx; //primary Key // @NotEmpty @Column(nullable = false, length = 30, unique = true) private String id;//아이디 // @NotEmpty private String password;//비밀번호 // @NotEmpty @Column(nullable = false, length = 30) private String name;//이름(실명) // @NotEmpty @Column(nullable = false, length = 30) private String mobile;//번호 // @NotEmpty @Column(nullable = false, length = 30) private String email;//이메일 @Column(length = 1000) private String refreshToken;//RefreshToken public Member(String password) { this.password = password; } public Member(String id, String password, String name, String mobile, String email) { this.id = id; this.password = password; this.name = name; this.mobile = mobile; this.email = email; } } [오류메시지] 2022-05-02 11:03:02.010 DEBUG 45809 --- [nio-8095-exec-1] o.s.web.servlet.DispatcherServlet : POST "/api/v2/members", parameters={} 2022-05-02 11:03:02.013 DEBUG 45809 --- [nio-8095-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to mkyu.loginApi.domain.api.MemberApiController#saveMemberV2(CreateMemberRequest) 2022-05-02 11:03:02.014 DEBUG 45809 --- [nio-8095-exec-1] o.j.s.OpenEntityManagerInViewInterceptor : Opening JPA EntityManager in OpenEntityManagerInViewInterceptor 2022-05-02 11:03:02.018 DEBUG 45809 --- [nio-8095-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json;charset=UTF-8" to [MemberApiController.CreateMemberRequest(name=l2e)] 2022-05-02 11:03:02.019 DEBUG 45809 --- [nio-8095-exec-1] o.s.orm.jpa.JpaTransactionManager : Found thread-bound EntityManager [SessionImpl(565980721<open>)] for JPA transaction 2022-05-02 11:03:02.020 DEBUG 45809 --- [nio-8095-exec-1] o.s.orm.jpa.JpaTransactionManager : Creating new transaction with name [mkyu.loginApi.domain.service.MemberService.join]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT 2022-05-02 11:03:02.033 DEBUG 45809 --- [nio-8095-exec-1] o.s.orm.jpa.JpaTransactionManager : Exposing JPA transaction as JDBC [org.springframework.orm.jpa.vendor.HibernateJpaDialect$HibernateConnectionHandle@211015b3] 2022-05-02 11:03:02.036 INFO 45809 --- [nio-8095-exec-1] p6spy : #1651456982036 | took 0ms | statement | connection 13| url jdbc:h2:tcp://localhost/~/test select member0_.member_idx as member_i1_0_, member0_.created_date as created_2_0_, member0_.email as email3_0_, member0_.id as id4_0_, member0_.mobile as mobile5_0_, member0_.name as name6_0_, member0_.password as password7_0_, member0_.refresh_token as refresh_8_0_ from member member0_ where member0_.name=? select member0_.member_idx as member_i1_0_, member0_.created_date as created_2_0_, member0_.email as email3_0_, member0_.id as id4_0_, member0_.mobile as mobile5_0_, member0_.name as name6_0_, member0_.password as password7_0_, member0_.refresh_token as refresh_8_0_ from member member0_ where member0_.name='l2e'; 2022-05-02 11:03:02.041 INFO 45809 --- [nio-8095-exec-1] p6spy : #1651456982041 | took 1ms | statement | connection 13| url jdbc:h2:tcp://localhost/~/test insert into member (member_idx, created_date, email, id, mobile, name, password, refresh_token) values (default, ?, ?, ?, ?, ?, ?, ?) insert into member (member_idx, created_date, email, id, mobile, name, password, refresh_token) values (default, NULL, NULL, NULL, NULL, 'l2e', NULL, NULL); 2022-05-02 11:03:02.041 WARN 45809 --- [nio-8095-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 23502, SQLState: 23502 2022-05-02 11:03:02.041 ERROR 45809 --- [nio-8095-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : NULL not allowed for column "EMAIL"; SQL statement: insert into member (member_idx, created_date, email, id, mobile, name, password, refresh_token) values (default, ?, ?, ?, ?, ?, ?, ?) [23502-200] 2022-05-02 11:03:02.042 DEBUG 45809 --- [nio-8095-exec-1] o.s.orm.jpa.JpaTransactionManager : Initiating transaction rollback 2022-05-02 11:03:02.042 DEBUG 45809 --- [nio-8095-exec-1] o.s.orm.jpa.JpaTransactionManager : Rolling back JPA transaction on EntityManager [SessionImpl(565980721<open>)] 2022-05-02 11:03:02.042 INFO 45809 --- [nio-8095-exec-1] p6spy : #1651456982042 | took 0ms | rollback | connection 13| url jdbc:h2:tcp://localhost/~/test ; 2022-05-02 11:03:02.043 DEBUG 45809 --- [nio-8095-exec-1] o.s.orm.jpa.JpaTransactionManager : Not closing pre-bound JPA EntityManager after transaction 2022-05-02 11:03:02.043 DEBUG 45809 --- [nio-8095-exec-1] o.j.s.OpenEntityManagerInViewInterceptor : Closing JPA EntityManager in OpenEntityManagerInViewInterceptor 2022-05-02 11:03:02.043 DEBUG 45809 --- [nio-8095-exec-1] o.s.web.servlet.DispatcherServlet : Failed to complete request: org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement 2022-05-02 11:03:02.050 ERROR 45809 --- [nio-8095-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement] with root cause org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL not allowed for column "EMAIL"; SQL statement: insert into member (member_idx, created_date, email, id, mobile, name, password, refresh_token) values (default, ?, ?, ?, ?, ?, ?, ?) [23502-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:459) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.SessionRemote.done(SessionRemote.java:611) ~[h2-1.4.200.jar:1.4.200] at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:237) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:191) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:152) ~[h2-1.4.200.jar:1.4.200] at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:na] at com.p6spy.engine.wrapper.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:94) ~[p6spy-3.9.0.jar:na] at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:197) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:58) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:43) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3279) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3885) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:84) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:645) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:282) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:263) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:317) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:330) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:287) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:193) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:123) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:185) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:128) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:55) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:756) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:742) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at jdk.internal.reflect.GeneratedMethodAccessor44.invoke(Unknown Source) ~[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:567) ~[na:na] at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:362) ~[spring-orm-5.3.19.jar:5.3.19] at jdk.proxy2/jdk.proxy2.$Proxy100.persist(Unknown Source) ~[na:na] at jdk.internal.reflect.GeneratedMethodAccessor44.invoke(Unknown Source) ~[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:567) ~[na:na] at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:311) ~[spring-orm-5.3.19.jar:5.3.19] at jdk.proxy2/jdk.proxy2.$Proxy100.persist(Unknown Source) ~[na:na] at mkyu.loginApi.domain.repository.MemberRepository.save(MemberRepository.java:17) ~[classes/:na] at mkyu.loginApi.domain.repository.MemberRepository$$FastClassBySpringCGLIB$$cfc41407.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.19.jar:5.3.19] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.19.jar:5.3.19] at mkyu.loginApi.domain.repository.MemberRepository$$EnhancerBySpringCGLIB$$e8dc9246.save(<generated>) ~[classes/:na] at mkyu.loginApi.domain.service.MemberService.join(MemberService.java:24) ~[classes/:na] at mkyu.loginApi.domain.service.MemberService$$FastClassBySpringCGLIB$$316efea1.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.19.jar:5.3.19] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.19.jar:5.3.19] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.19.jar:5.3.19] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.19.jar:5.3.19] at mkyu.loginApi.domain.service.MemberService$$EnhancerBySpringCGLIB$$b1b444be.join(<generated>) ~[classes/:na] at mkyu.loginApi.domain.api.MemberApiController.saveMemberV2(MemberApiController.java:34) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[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:567) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at java.base/java.lang.Thread.run(Thread.java:831) ~[na:na] 2022-05-02 11:03:02.052 DEBUG 45809 --- [nio-8095-exec-1] o.s.web.servlet.DispatcherServlet : "ERROR" dispatch for POST "/error", parameters={} 2022-05-02 11:03:02.053 DEBUG 45809 --- [nio-8095-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest) 2022-05-02 11:03:02.053 DEBUG 45809 --- [nio-8095-exec-1] o.j.s.OpenEntityManagerInViewInterceptor : Opening JPA EntityManager in OpenEntityManagerInViewInterceptor 2022-05-02 11:03:02.054 DEBUG 45809 --- [nio-8095-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/json, application/*+json] 2022-05-02 11:03:02.055 DEBUG 45809 --- [nio-8095-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [{timestamp=Mon May 02 11:03:02 KST 2022, status=500, error=Internal Server Error, path=/api/v2/membe (truncated)...] 2022-05-02 11:03:02.055 DEBUG 45809 --- [nio-8095-exec-1] o.j.s.OpenEntityManagerInViewInterceptor : Closing JPA EntityManager in OpenEntityManagerInViewInterceptor 2022-05-02 11:03:02.056 DEBUG 45809 --- [nio-8095-exec-1] o.s.web.servlet.DispatcherServlet : Exiting from "ERROR" dispatch, status 500 감사합니다!!
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
npm audit fix 사용하지 말 것
강의 중에는 되도록 npm audit fix 를 사용하지 않을 것을 권장 드립니다.npm audit fix 를 사용하면 버전이 package.json 과 실제 설치된 파일이 있는 pacakge-lock.json 이 달라지는 이슈가 있는 걸로 알고 있습니다. 이러한 경우 간혹가다가 메서드가 사라지거나 이름이 바뀌는 등의 이상한 일이 일어날 수 있습니다.
-
미해결자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!
Socket을 null로 처음에 선언해주는 이유가 뭘까요?
바로 객체 생성하면 안되나요??
-
미해결코알못에서 웹서비스 런칭까지 : 2021 제주 코딩 베이스캠프(Django)
혹시 사용하신 지도를 개인 프로젝트에 사용해도 될까요??
혹시 사용하신 지도를 개인 프로젝트에 사용해도 될까요?? 개인적으로 만들기에는 힘들어보여서요 ㅠ
-
미해결스프링 핵심 원리 - 기본편
인텔리제이 단축키 질문인데요..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 저는 맥을쓰고있는데 테스트에서 커맨드 r 누르면 현재 테스트가 실행되는게 아니라 최근에 실행했던 이전 테스트가 실행되던데요 설정 문제일까요? 왜그런지 궁금해요..
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
Demo DB 스크립트 실행 시 에러 발생
안녕하세요 강의를 한 번 다 듣고 두 번째로 들으려고 하는데 쿼리가 정상적으로 실행이 되지 않아서 Demo DB를 새로 생성하려고 샘플 DB 스크립트를 실행했는데 에러가 발생합니다 학습일정에 지장이 없도록 빠른 답변 부탁드리겠습니다 * SSMS 버전: v18.11.1 1. [Pubs 스크립트 실행시] 정상 종료 2. [Northwind 스크립트 실행시] 메시지 226, 수준 16, 상태 5, 줄 11 다중 문 트랜잭션 내에서는 CREATE DATABASE 문을 사용할 수 없습니다. 메시지 911, 수준 16, 상태 1, 줄 33 데이터베이스 'Northwind'이(가) 없습니다. 이름을 제대로 입력했는지 확인하십시오. 3. [EPlan 스크립트 실행시] 쿼리 실행시간이 5분 넘게 걸려서 쿼리실행취소함 메시지 226, 수준 16, 상태 5, 줄 12 다중 문 트랜잭션 내에서는 CREATE DATABASE 문을 사용할 수 없습니다. 메시지 911, 수준 16, 상태 1, 줄 34 데이터베이스 'EPlan'이(가) 없습니다. 이름을 제대로 입력했는지 확인하십시오. 사용자가 쿼리를 취소했습니다. 4. [EPlanHeap 스크립트 실행시] 쿼리 실행시간이 5분 넘게 걸려서 쿼리실행취소함 메시지 226, 수준 16, 상태 5, 줄 12 다중 문 트랜잭션 내에서는 CREATE DATABASE 문을 사용할 수 없습니다. 메시지 911, 수준 16, 상태 1, 줄 34 데이터베이스 'EPlanHeap'이(가) 없습니다. 이름을 제대로 입력했는지 확인하십시오. 사용자가 쿼리를 취소했습니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
함수 종료 질문입니다.
1개의 함수에 2개의 dispatch 가 있고 첫 번째 dispatch 에서 api 통신에 오류가 나면 함수를 return과 같이 멈추게 하고 싶은데 어떻게 해야 하나요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker-compose down 보다 쉬운 컴포즈 끄기!
docker-compose up 과 docker-compose down 외에도 선택지가 있어서 남기게 되었습니다.제목은... 어그로.... 일지도... 모르겠습니다. docker-compose up -d 가 아니라 docker-compose 를 사용하신다면,컨테이너 실행 결과가 보여지는 창에서 Ctrl + C 를 누르시면 docker-compose.yml 의 개별 컨테이너에 각각 docker stop 을 실행 하여 줍니다. 이후에 docker-compose ps 를 입력하시면 다 지워진 것을 체크할 수 있습니당.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
추가로 업데이트했으면 하는 것이 있습니다.
좋은 강의 정말 정말 고맙습니다. ^^ 계속 관련 강의의 진화와 업데이트 위해서 다음이 포함되면 좋겠습니다. (1) 메타의 detectron2 메타의 detectron2 도 포함하여 설명을 해주시면 좋을 것 같습니다. 메타가 주도을 하고 있고 아직 많은 mmdetection보다 fork 및 contributor가 조금 적지만 무시할 수 없는 framework인 것 같습니다. (2) FCOS(Fully Convolutional One-Stage object detection)FCOS는 anchor box를 사용하지 않는 one-stage detector로 semantic segmentation처럼 픽셀마다 예측하는 방법으로 object detection 문제를 해결한다고 들었는데 이를 소개하면 좋을 것 같습니다. (3) Semantic Segmentation과 Instance Segmentation 명확한 구분Semantic Segmentation과 Instance Segmentation를 명확하게 구분하여 설명을 해주시면 좋을 것 같습니다.혼재되어 있어서 아직 혼란스럽니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
오타로 인한 connect ECONNREFUSED 127.0.0.1:6379 [duplicate] 겪으시는 분들!
Redis 는 별도로 설정을 건드리지 않았다면, 기본적으로 `6379` 포트에서 돌아가고 있습니다. 하지만 이를 `6679` 과 같이 오타를 낸 상태로 `docker-compose up` 을 실행할 경우`connect ECONNREFUSED 127.0.0.1:6379 [duplicate]` 와 같은 에러가 발생합니다. 이후, `6379` 로 수정한 후에 재실행을 하여도 계속에서 `6679` 로 연결이 되는데요.해당 문제의 원인(가설) 과 해결방법 을 안내해드립니다만, 이런 문제를 겪으실 분이 있으실지는 모르겠네요. ### 원인 (가설) 1. docker 의 cache 기능에 의한 오류 | docker 는 특정한 값들을 cache 해두고 있으며, 이러한 변수들은 수정을 하여도 반영하지 않는다?따라서 cache 를 비우고 실행햐아 한다? 이 부분에 대해서 불확실하기에 강사님께서 코멘트를 남겨주시면 감사하겠습니다. : ) ### 해결 방법 1. 실행 중인 docker-compose up 쉘에서 Ctrl+C 로 컨테이너 종료2. docker ps 로 다시 한 번 확인 후 실행 중인 컨테이너 종료3. docker hub 로 들어가서 docker image 를 찾고 node, redis, node-app 컨테이너 삭제 node-app 은 프로젝트 폴더 경로로 설정되어있을 확률이 높음4. 모든 종속성 및 프로젝트 이미지를 삭제하고 docker-compose up 을 실행 시 정상적으로 진행 아마도 이 방법보다 쉬운 방법 이 있었을 텐데,저는 docker 를 잘 몰라서 node_modules 에 문제가 생기면 전부 지우고 다시 까는 것 에서 착안해서 해결했습니다.
-
해결됨함수형 프로그래밍과 JavaScript ES6+ 응용편
FP, 실무에서의 모습은 대략적으로 어떤 모습일까요?
안녕하세요! 강의 너무 재밌게 잘 보고 있습니다. 현재 저는 python - backend 개발자로 일을 하고 있고 강의를 들으면서 이를 어떻게 실무에 적용할지 고민하고 있습니다. 다만 구글링 및 기타 예제를 보더라도 FP 가 적용된 real world example 은 잘 없더라구요... 특히 여태 객체지향 적으로 사고하고 명령형으로 사고하다보니 더더욱 실무코드는 어떤 모습일지 상상이 안가긴 합니다. 다만 오로지 FP 만을 할 수는 없고 적절히 섞어야 한다라고 하던데 그렇다면 아래처럼 제가 생각하는게 맞을까요? - UserService().validate_block_user() def validate_block_user(): users = get_data_from_database() return pipe(users, is_block, get_user_id) is_block 은 filter 역할을, get_user_id 는 map 의 역할을 하는 sample code 입니다. 위 처럼 특정 객체의 행동이 존재하고 해당 행동은 FP 로 구현하는, 이런 형태가... 맞게 사용하는것인지? 궁금합니다.읽어주셔서 감사합니다 : )
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
module output을 정의할 때 reg 유무
fsm_counter_test module의 input, output을 정의할 때 o_done은 output reg o_done o_idle, o_running은 output o_idle, output o_running 으로 정의하였습니다. o_idle과 o_running은 o_done과 달리 reg가 없이 정의되도 되는 이유를 알고 싶습니다.
-
미해결[D.P.(DappProject)] 디앱 프로젝트(NFT 생성, NFT 구매 및 판매)
문의드립니다!
안녕하세요 h662님! 강의 정말 잘 듣고 있고 도움 많이 받고 있습니다. 최근 블록체인 및 금융업계의 많은 대표님 및 개발자 분들을 만나뵙고 있습니다. 블록체인 관련 사업에 관심이 많은데, 강의를 듣다보니 h662님께 몇가지 개인적인 질문을 드리고 싶습니다. 많이 바쁘시겠지만 시간이 괜찮으시다면 shkim@rpmip.com으로 연락한번 부탁드립니다. 다시한번 좋은 강의 만들어주셔서 감사드립니다.
-
해결됨스프링 기반 REST API 개발
EventResource 객체 생성자 오류
안녕하십니까 강의를 듣다가 질문이 있어 글을 작성하게 되었습니다 EventController 에 createEvent 에서 EventResource를 생성하는 부분 EventResource eventResource = new EventResource(event); eventResource.add(linkTo(EventController.class).withRel("query-events")); eventResource.add(selfLinkBuilder.withRel("update-event")); 에서 생성자 오류가 발생합니다 EventReource public class EventResource extends EntityModel<Event> { public EventResource(Event event, Iterable<Link> links) { super(event, links); add(linkTo(EventController.class).slash(event.getId()).withSelfRel()); } } 제가 어느 부분을 놓친건지 잘 모르겠습니다.
-
미해결[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
http: error: ConnectionError
터미널에서 http GET http://localhost:8081/json_test를 실행하면 아래와 같은 에러가 나옵니다. 포트번호를 8080/8081/8082등 무점유(무실행) 상태에서 바꿔봐도 동일한 에러가 나와 터미널에서 rest api test 실행이 안됩니다. 어떻게 해야 해결이 될지 조언 바랍니다. http: error: ConnectionError: HTTPConnectionPool(host='localhost', port=8081): Max retries exceeded with url: /json_test (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb080e29fd0>: Failed to establish a new connection: [Errno 61] Connection refused')) while doing a GET request to URL: http://localhost:8081/json_test http -v GET http://localhost:8081/json_test로 실행하면 아래와 같이 나옵니다. python version 문제 일까요? 참고로 제 사용 버전은 3.9.12 입니다. GET /json_test HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, br Connection: keep-alive Host: localhost:8081 User-Agent: HTTPie/3.1.0 http: error: ConnectionError: HTTPConnectionPool(host='localhost', port=8081): Max retries exceeded with url: /json_test (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7feea0c29f40>: Failed to establish a new connection: [Errno 61] Connection refused')) while doing a GET request to URL: http://localhost:8081/json_test
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
현영님 질문이 있습니다.
에러 발생시점: faker.js 사용 후입니다 에러 최대한 제 손으로 잡으려 했는데 이번 거는 찾기가 조금 힘들고 감이 안오네요.. 처음 npm run을 했을 때 화면에는 정상적으로 더미데이터가 들어오면서 에러도 같이 뜨는 상태입니다(에러를 끄면 컨텐츠와 댓글 등등의 기능 동작은 되네요) 간단하게 힌트만 주셔도 직접 해결 해보겠습니다 감사합니다 코드: import {faker} from '@faker-js/faker'; export const initialState = { mainPosts: [], imagePaths: [], addPostLoading: false, addPostDone: false, addPostFailure: null, removePostLoading: false, removePostDone: false, removePostFailure: null, addCommentLoading:false, addCommentDone: false, addCommentFailure: null } initialState.mainPosts = initialState.mainPosts.concat( Array(20).fill().map(() => ({ id: shortId.generate(), User:{ id:shortId.generate(), nickname: faker.company.companyName() }, content: faker.lorem.paragraph(), Images: [{ id: shortId.generate(), }], Comments:[{ User:{ id: shortId.generate(), nickname: faker.name.findName() }, content: faker.vehicle.vehicle() }] })) ) 에러: ++ 에러에 HYDRATE관련된 에러가 있어 우선은 리듀서폴더에 있는 index.js같이 첨부합니다 import { HYDRATE } from "next-redux-wrapper" import { combineReducers} from 'redux' import user from './user' import post from './post' const rootReducer = combineReducers({ index: (state = {}, action) => { switch (action.type) { case HYDRATE: console.log('HYDRATE', action); return { ...state, ...action.payload }; default: return state; } }, user, post, }); export default rootReducer;
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
회원가입,로그인 페이지 -Android에서 Facebook 로그인을 사용하여 인증하기
선생님의 영상을 따라하는 도중에 파이어베이스 문서에서 기존 회원가입을 통한 인증하기가 아닌 구글 또는 페이스북을 이용해 인증하는 방법도 있던데 혹시 그 방법으로 인증하는 영상또는 방법을 자세하게 알려주실수 있나요??
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
설치과정에 문제있어어요?
예전에 자바로안드로이드스튜디오 깐적있는데 맨마지막 설치때문에 잘안되는데 다시 pc초기화시킨다음에 처음부터 다시해야될까요? 애러에 자바 머라고떠서요
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
C++ 학습 질문
안녕하세요 맛비님. 유튜브랑 강의 잘 챙겨보고 있는 비메모리 설계 꿈나무 4학년 학생 입니다. 조금 주제를 벗어난 질문 일지 모르지만 강의나 유튜브에서도 가끔 언급을 하시는 C 언어 실력 관련한 질문입니다 ㅎㅎ;; 현재 저는 C++ 문법정도만 유튜브 강의를 통해 학습한 상태인데, 맛비님이 설계를 잘 하기 위해서는 C 도 필수로 하셔야 한다고 해서 걱정이 됩니다. C로 뭘 만들어본 경험이 하나도 없어서요 .. 시간이 있어서 미리 공부를 차근차근 해놓으려고 하는데, 이 상황에서 어떤 방향성을 가지고 공부하면 좋을까요?(베릴로그는 따로 공부중입니다.) 간단하게 라도 조언 해주시면 큰 도움이 될 것 같습니다 !! 예를들어 백준 알고리즘 문제를 풀어봐라, 어떤 종류의 강의를 한번 들어봐라 이런식으로 라도 짧게 대답해주셔도 됩니다!!