Is your feature request related to a problem? Please describe.
MDM ๊ฐํธ ๋ฐฉํฅ์ ๋ค์๊ณผ ๊ฐ์ด ์ก์์ต๋๋ค.

์์ฒ ๋ฐ์ดํฐ์ ๋
ผ๋ฆฌ์ ๋ณด ๋ํ ๋ฉํ๋ฐ์ดํฐ์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋ฉํ๋ฐ์ดํฐ์์ ์์ฒ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๋ฑ๋กํ ์ ์์ต๋๋ค.
ํ์ฌ๋ HIVE, StagingDB๋ฅผ ์ง์ํ์ง๋ง ์ ์ฐจ ๋๋ ค๋๊ฐ ์์ ์
๋๋ค.
์ฌ์ฉ์๊ฐ (๋ฉํ)๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๊ฒ์ํ์ฌ ์ธ ์ ์๋ Explore Data๋ผ๋ ๋ฉ๋ด๋ฅผ ๊ตฌ์์ค์ธ๋ฐ,
์ด ๊ฒ์์ ์ํ ์ ๋ณด ๋ํ ๋ฉํ๋ฐ์ดํฐ์์ ๊ด๋ฆฌํฉ๋๋ค.
Describe the solution you'd like
์์ ์ํฉ์ ์ฒซ๋ฒ์งธ ์ฌํญ์ผ๋ก ๋ฐ์ดํฐ์์ค ๋ฑ๋ก์ ๋ฉํ๋ฐ์ดํฐ ๋ชฉ๋ก์ ๋์ผ ๋ฐ์ดํฐ๊ฐ ์๋ ๋ฑ๋ก๋์ด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ์์ค ์์ธํ๋ฉด๊ณผ์ ํด๋น ๋ฉํ๋ฐ์ดํฐ๋ก ์ด๋ํ๋ ๋ฒํผ์ ์ถ๊ฐํฉ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก (๋ฐ์ดํฐ์์ค์ ๋ํ) ๋ฉํ๋ฐ์ดํฐ์ผ ๊ฒฝ์ฐ ํด๋น ๋ฐ์ดํฐ์์ค๋ก ์ด๋ํ๋ ๋ฒํผ์ ์ถ๊ฐํฉ๋๋ค.
์ด๋ฆ, ์ค๋ช
์์ ์ ์๋ฐฉ์ด ์
๋ฐ์ดํธ ๋์ด์ผ ํฉ๋๋ค.
Describe alternatives you've considered
1. ๋ฐ์ดํฐ์์ค > ์์ธํ๋ฉด

.
.
2. ๋ฉํ๋ฐ์ดํฐ > ์์ธํ๋ฉด

.
.
3. ๋ฉํ๋ฐ์ดํฐ ์์ฑํ๊ธฐ

.
.
Additional context
Related Issues:
Release Scripts
-- changed type name
update mdm_metadata set meta_source_type = โSTAGEDBโ where meta_source_type = โSTAGINGโ
update mdm_metadata_source set meta_source_type = โSTAGEDBโ where meta_source_type = โSTAGEโ
@nogah12 ๋ฉํ๋ฐ์ดํฐ ์์ฑํ๊ธฐ ํ์ ์์ ๋ฐ์ดํฐ ์์ค ์ญ์ ํ์ต๋๋ค
@AnnieHwang #1245 ์ ๋์ผํ ๋์์ธ ์ ์ฉํ์ต๋๋ค-
๋ฐ์ดํฐ์์ค > ์์ธํ๋ฉด : ์ ๋ชฉ,์ค๋ช
์์ ์ ์๋ฆผ๋ฌธ๊ตฌ ๋จ๋์์น๋ ๊ฐ์ต๋๋ค

๋ฉํ๋ฐ์ดํฐ > ์์ธํ๋ฉด

@ninezero90hy datasource/metadata ์ํธ๊ฐ ๋ณ๊ฒฝ์ฌํญ์ ๋ํด ์ฑํฌ๋๋ ๋ก์ง์ ๊ตฌ์ฑํ์์ต๋๋ค. ์งํํ์๋ค๊ฐ ๋ฌธ์ ๊ฐ ์๋ ๋ถ๋ถ์ ๋ง์ํด์ฃผ์ธ์.
@kyungtaak ๋ค ๊ฐ์ฌํฉ๋๋ค :)
@kyungtaak
๋ฐ์ดํฐ์์ค ํ๋ฉด์์ ๋ฉํ๋ฐ์ดํฐ ํ๋ฉด์ผ๋ก ๊ฐ๊ธฐ์ํด ๋ฉํ๋ฐ์ดํฐ ์์ด๋๊ฐ ํ์ํฉ๋๋ค.
์ด๋ค ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋์?
๋ฐ์ดํฐ์์ค ์์ธํ๋ฉด์ ์๋์ ๊ฐ์ api๋ฅผ ์ฌ์ฉ์ค์
๋๋ค.
api/datasources/{dsId}?projection=forDetailView
@deidera08 ๋ฉ์ธ์ง ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค

@brandon-wonjune

Go to Master data๋ก ํด์ฃผ์ธ์~@ninezero90hy
๋ฐ์ดํฐ์์ค ๋ํ ์์ ๋ ๋ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
Datasource is also updated when modified.
็ถไฟฎๆนๆธๆๆ,ๆธๆไพๆบไนๆดๆฐใ
๋ฌธ๊ตฌ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ถํ๋๋ ค์
์ค๋ฌธ์.. ๊ด๋ฆฌํ์๋ ๋ถ์ด ์๊ณ์
์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ํด ๋ถํ๋๋ ค์
@deidera08 ๋ค ์๊ฒ ์ต๋๋ค :)
@deidera08 ๋ค๊ตญ์ด ๋ฉ์ธ์ง ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค

@ninezero90hy
๋ฐ์ดํฐ์์ค๋ก ์ด๋
Go to Datasource
๋ต ๋ง์ต๋๋ค!
@deidera08 ๋ค ํ์ธ ๊ฐ์ฌํฉ๋๋ค^^
@deidera08 ํน์ ๋ฉํ๋ฐ์ดํฐ์์ ๋ ์์ ํด์ผ๋๋ ๋ถ๋ถ์ด ์๋์?




@ninezero90hy
๋ณธ ์ด์์์ ์์ฒญ๋๋ฆฐ ์ฌํญ์ ์์
๋ ๋ฏ ํฉ๋๋ค.
์ถํ PR์ ์ด์ด์ฃผ์๋ฉด ํ
์คํธํ๋ฉด์ ๋ถ์กฑํ ๋ถ๋ถ์ ํจ๊ป ์์ ํด๋๊ฐ๋ฉด ์ข์๋ฏํฉ๋๋ค :)
@deidera08 ๋ค ์๊ฒ ์ต๋๋ค :)

configure schema ํ๋ฉด ์์ ํ์์ต๋๋ค.
@kyungtaak
๋ฐ์ดํฐ์์ค ํ๋ฉด์์ ๋ฉํ๋ฐ์ดํฐ ํ๋ฉด์ผ๋ก ๊ฐ๊ธฐ์ํด ๋ฉํ๋ฐ์ดํฐ ์์ด๋๊ฐ ํ์ํฉ๋๋ค.
์ด๋ค ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋์?
๋ฐ์ดํฐ์์ค ์์ธํ๋ฉด์ ์๋์ ๊ฐ์ api๋ฅผ ์ฌ์ฉ์ค์ ๋๋ค.api/datasources/{dsId}?projection=forDetailView
@kyungtaak
์ ๋ฌธ์์ฌํญ ๋ต๋ณ ๋ถํ๋๋ฆฝ๋๋ค.
@eltriny ๋ต๋ณ์ด ๋ฆ์ด ์ฃ์กํฉ๋๋ค. ์๋ api ํ์ฉ ๋ถํ๋๋ฆฝ๋๋ค.
/metadatas/metasources/{sourceId}?projection=forDetailView
@deidera08 master data๋ก ์ด๋ํ๋ ๋ฒํผ ์์ ์๋ฃํ์์ต๋๋ค.
@brandon-wonjune
master data๋ก ์ด๋ํ๋ ๋ฒํผ ์์ ์๋ฃํ์์ต๋๋ค.
๊ณ ์ํ์
จ์ต๋๋ค :)
์๊ณ ์ค๋ฌ์ฐ์๊ฒ ์ง๋ง ๋ฒํผ๋ช
์ 'Go to Metadata'๋ก ๋ค์ ๋ถํ๋๋ ค์
'๋ง์คํฐ๋ฐ์ดํฐ' ์ฉ์ด๊ฐ ์ฌ๋
ผ์๊ฐ ํ์ํด์ ๋น๋ถ๊ฐ ๋ฉ๋ด๋ช
์ '๋ฉํ๋ฐ์ดํฐ'๋ฅผ ์จ์ผ ํ ๋ฏ ํฉ๋๋ค.
๊ด๋ จ์ด์: #1436
@deidera08 metadata๋ก ์์ ํ์์ต๋๋ค.
@kyungtaak
๋ฉํ๋ฐ์ดํฐ ์ปฌ๋ผ ์คํค๋ง ํ์ด์ง์์ ์์คํ์ ์ด ๋ฐ์ดํฐ์์ค๊ฐ ์๋ ํ์ด๋ธ/์คํ ์ด์งDB์ผ ๊ฒฝ์ฐ ํ์ ๋ณ๊ฒฝ์ ์ค์ ๊ฐ์ ๋ณ๊ฒฝ์ด ์๋ฃ ๋์๋๋ฐ ์๋ฒ 500 ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค. ํ์ด๋ธ๋ ์คํ ์ด์งDB์ผ ๊ฒฝ์ฐ ๋ฐ์ดํฐ์์ค๊ฐ ์กด์ฌํ์ง ์๋๋ฐ ๋ฐ์ดํฐ์์ค๋ฅผ ์ ๋ฐ์ดํธ ํ๋ ค๊ณ ํด์ ๊ทธ๋ฐ๊ฑฐ ๊ฐ์ต๋๋ค. ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค.
๋ฐ์ดํฐ์์ค

ํ์ด๋ธ

์คํ
์ด์งDB

API (PATCH /api/metadatas/{metadataId}/columns) ์๋ฌ ๋ก๊ทธ
app.metatron.discovery.common.exception.UnknownServerException
at app.metatron.discovery.common.exception.GlobalExceptionHandler.handleAll(GlobalExceptionHandler.java:149)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:384)
at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:59)
at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:136)
at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:76)
at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1222)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1034)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at app.metatron.discovery.common.web.CommonLocalVariableFilter.doFilter(CommonLocalVariableFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at app.metatron.discovery.common.web.LogbackMdcFilter.doFilter(LogbackMdcFilter.java:59)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)
at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at app.metatron.discovery.domain.datasource.DataSourceService.updateFromMetadata(DataSourceService.java:634)
at app.metatron.discovery.domain.datasource.DataSourceService$$FastClassBySpringCGLIB$$8932ee94.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
at app.metatron.discovery.domain.datasource.DataSourceService$$EnhancerBySpringCGLIB$$67d3d235.updateFromMetadata(<generated>)
at app.metatron.discovery.domain.mdm.MetadataController.patchColumnsInMetadata(MetadataController.java:248)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
... 86 more
@ninezero90hy ์ ์๋ฌ ๋ด์ฉ์ ์์ ํ์ต๋๋ค.
Most helpful comment
@ninezero90hy ์ ์๋ฌ ๋ด์ฉ์ ์์ ํ์ต๋๋ค.