상황: 8080 포트에서 잘 리스닝 중. 그런데 실행 로그를 보니 계속 실행이 안 되고 있음.
실행 로그를 보니 또 파라미터 레디스 주소 문제임.
원인은 자동 주입된 Redisson 빈이 [host:port] 형식으로 redis host 주소를 조합하기 때문.
sh-5.2$ sudo docker logs ci-demo --tail 50
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:485) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) ~[spring-beans-6.1.14.jar!/:6.1.14]
... 68 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redissonClient' threw exception with message: java.net.MalformedURLException: Invalid host: [ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com:6379]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) ~[spring-beans-6.1.14.jar!/:6.1.14]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ~[spring-beans-6.1.14.jar!/:6.1.14]
... 82 common frames omitted
Caused by: java.lang.IllegalArgumentException: java.net.MalformedURLException: Invalid host: [ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com:6379]
at org.redisson.misc.RedisURI.<init>(RedisURI.java:70) ~[redisson-3.27.2.jar!/:3.27.2]
at org.redisson.connection.MasterSlaveConnectionManager.doConnect(MasterSlaveConnectionManager.java:224) ~[redisson-3.27.2.jar!/:3.27.2]
at org.redisson.connection.MasterSlaveConnectionManager.connect(MasterSlaveConnectionManager.java:196) ~[redisson-3.27.2.jar!/:3.27.2]
at org.redisson.config.ConfigSupport.createConnectionManager(ConfigSupport.java:220) ~[redisson-3.27.2.jar!/:3.27.2]
at org.redisson.Redisson.<init>(Redisson.java:71) ~[redisson-3.27.2.jar!/:3.27.2]
at org.redisson.Redisson.create(Redisson.java:116) ~[redisson-3.27.2.jar!/:3.27.2]
at cohttp://m.example.ticketingproject.redis.config.RedisConfig.redissonClient(RedisConfig.java:35) ~[!/:0.0.1-SNAPSHOT]
at cohttp://m.example.ticketingproject.redis.config.RedisConfig$SpringCGLIB$0.CGLIB$redissonClient$2(<generated>) ~[!/:0.0.1-SNAPSHOT]
at cohttp://m.example.ticketingproject.redis.config.RedisConfig$SpringCGLIB$FastClass$1.invoke(<generated>) ~[!/:0.0.1-SNAPSHOT]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) ~[spring-core-6.1.14.jar!/:6.1.14]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:348) ~[spring-context-6.1.14.jar!/:6.1.14]
at cohttp://m.example.ticketingproject.redis.config.RedisConfig$SpringCGLIB$0.redissonClient(<generated>) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:569) ~[na:na]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[spring-beans-6.1.14.jar!/:6.1.14]
... 83 common frames omitted
Caused by: java.net.MalformedURLException: Invalid host: [ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com:6379]
at java.base/java.net.URL.<init>(URL.java:708) ~[na:na]
at java.base/java.net.URL.<init>(URL.java:569) ~[na:na]
at java.base/java.net.URL.<init>(URL.java:516) ~[na:na]
at org.redisson.misc.RedisURI.<init>(RedisURI.java:56) ~[redisson-3.27.2.jar!/:3.27.2]
... 99 common frames omitted
Caused by: java.lang.IllegalArgumentException: Invalid host: [ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com:6379]
at java.base/java.net.URLStreamHandler.parseURL(URLStreamHandler.java:209) ~[na:na]
at java.base/java.net.URL.<init>(URL.java:703) ~[na:na]
... 102 common frames omitted
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
해결: Spring Boot 실행 시 Redisson 자동 설정 제거 필요, RedissonAutoConfiguration을 끄면 됨.
application-prod.yml에 다음을 추가하면 됨. 메인 클래스에서 제외하는 방법도 있는데, application-prod.yml을 바꾸는 방법이 더 간단함.
spring:
autoconfigure:
exclude:
- org.redisson.spring.starter.RedissonAutoConfigurationV2
- org.redisson.spring.starter.RedissonAutoConfiguration
Q: Redisson을 사용하는 기존 코드에도 영향이 가지 않나?
A: RedissonAutoConfiguration의 역할은 RedissonClientBean을 자동 생성해주는 역할인데, 우리는 이미 이전 게시물 에서 RedissonClient 빈을 직접 등록하는 절차를 마침.
즉, 직접 빈을 등록하는 절차는 넣었는데, 정작 문제의 원인이었던 자동 등록을 끄지 않아서 발생한 것.
다시 main으로 merge 후 헬스체크 시도 : curl http://localhost:8080/actuator/health
sh-5.2$ curl http://localhost:8080/actuator/health
curl: (52) Empty reply from server
결과 해석: 서버가 켜지고 있거나 죽어가는 중...모 아니면 도 상황.
1. 로그 확인
sh-5.2$ sudo docker logs ci-demo --tail 50
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096) ~[na:na]
at org.redisson.connection.MasterSlaveConnectionManager.doConnect(MasterSlaveConnectionManager.java:228) ~[redisson-3.27.2.jar!/:3.27.2]
... 98 common frames omitted
Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com/10.0.155.48:6379
at org.redisson.connection.ConnectionsHolder.lambda$createConnection$2(ConnectionsHolder.java:165) ~[redisson-3.27.2.jar!/:3.27.2]
at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162) ~[na:na]
at org.redisson.connection.ConnectionsHolder.lambda$createConnection$5(ConnectionsHolder.java:179) ~[redisson-3.27.2.jar!/:3.27.2]
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162) ~[na:na]
at org.redisson.client.RedisClient$1$2.run(RedisClient.java:304) ~[redisson-3.27.2.jar!/:3.27.2]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.util.concurrent.CompletionException: io.netty.channel.ConnectTimeoutException: connection timed out after 10000 ms: ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com/10.0.155.48:6379
at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:377) ~[na:na]
at java.base/java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1097) ~[na:na]
... 11 common frames omitted
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out after 10000 ms: ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com/10.0.155.48:6379
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:263) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final]
at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:156) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
... 8 common frames omitted
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.3.5)
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
2026-03-19T06:02:32.762Z DEBUG 1 --- [ main] org.hibernate.SQL :
alter table chat_messages
modify column content TEXT not null
2. 컨테이너 상태 확인
이미지 태그를 보니 방금 push한 최신 이미지가 잘 가져와진 것을 확인할 수 있다.
sh-5.2$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATEDSTATUS PORTS NAMES
70c4a26070ad 272206396540.dkr.ecr.ap-northeast-2.amazonaws.com/ticketing-app:b04f77a72a1df6b501f9abf6f636707ca02e7513 "java -jar app.jar" 14 minutes agoUp About a minute 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp ci-demo
상황 진단
url 파싱 문제는 해결되었으나, 6379 포트로 연결이 막혀 있는 상태
connection timed out after 10000 ms:
ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com/10.0.155.48:6379
원인: ElastiCache 보안 그룹에 EC2 접근 허용 규칙이 없음
해결: ElastiCache에 연결된 보안 그룹의 인바운드 규칙에 다음을 추가:

소스는 자기 자신(sg-0dbd1943864cc0e0c / ticketing-app-ec2-sg)을 가리키도록 설정
-> 같은 SG에 속한 EC2가 ElastiCache의 6379 포트에 접근할 수 있게 하기 위함.
이후 절차
1. 컨테이너 재시작 후 로그 보기
sudo docker restart ci-demo
sudo docker logs ci-demo -f
>> 다시 서버 실행 실패
상황: RedissonAutoConfiguration은 자동 설정 클래스가 아니라서 exclude가 안 됨
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.3.5)
2026-03-19T06:22:19.879Z WARN 1 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalStateException: The following classes could not be excluded because they are not auto-configuration classes:
- org.redisson.spring.starter.RedissonAutoConfiguration
2026-03-19T06:22:19.960Z ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.IllegalStateException: The following classes could not be excluded because they are not auto-configuration classes:
- org.redisson.spring.starter.RedissonAutoConfiguration
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.handleInvalidExcludes(AutoConfigurationImportSelector.java:211) ~[spring-boot-autoconfigure-3.3.5.jar!/:3.3.5]
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.checkExcludedClasses(AutoConfigurationImportSelector.java:197) ~[spring-boot-autoconfigure-3.3.5.jar!/:3.3.5]
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.getAutoConfigurationEntry(AutoConfigurationImportSelector.java:129) ~[spring-boot-autoconfigure-3.3.5.jar!/:3.3.5]
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$AutoConfigurationGroup.process(AutoConfigurationImportSelector.java:430) ~[spring-boot-autoconfigure-3.3.5.jar!/:3.3.5]
at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGrouping.getImports(ConfigurationClassParser.java:813) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:743) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:714) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:183) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:417) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:290) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:789) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:607) ~[spring-context-6.1.14.jar!/:6.1.14]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.5.jar!/:3.3.5]
at cohttp://m.example.ticketingproject.TicketingProjectApplication.main(TicketingProjectApplication.java:12) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:569) ~[na:na]
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[app.jar:0.0.1-SNAPSHOT]
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[app.jar:0.0.1-SNAPSHOT]
at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[app.jar:0.0.1-SNAPSHOT]
해결: RedissonAutoConfigurationV2만 남기기.
수정 후 다시 main에 merge
결과: 동일
변명:

결과: cd 실패

원인 분석: 이전 Instance Refresh가 아직 진행 중이라 새 Refresh를 시작할 수 없는 상황
조치: 모든 ec2 인스턴스 재부팅 후 워크플로우 re-run
결과: 방금과 동일
조치: 모든 인스턴스 종료(ASG에 의해 자동 시작)
결과:
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.3.5)
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
2026-03-19T12:26:53.200Z DEBUG 1 --- [ main] org.hibernate.SQL :
alter table chat_messages
modify column content TEXT not null
2026-03-19T12:26:58.312Z WARN 1 --- [ main] .s.s.UserDetailsServiceAutoConfiguration :
Using generated security password: 18bfd4a7-5157-42d7-b214-b8c65b2c4411
This generated password is for development use only. Your security configuration must be updated before running your application in production.
2026-03-19T12:26:58.331Z INFO 1 --- [ main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager
2026-03-19T12:26:59.375Z DEBUG 1 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter
2026-03-19T12:27:01.182Z DEBUG 1 --- [ main] org.hibernate.SQL :
select
u1_0.id
from
users u1_0
where
u1_0.email=?
limit
?
2026-03-19T12:27:01.185Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (1:VARCHAR) <- [super@ticket-topia.com]
2026-03-19T12:27:01.186Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (2:INTEGER) <- [1]
2026-03-19T12:27:01.465Z DEBUG 1 --- [ main] org.hibernate.SQL :
insert
into
users
(balance, created_at, deleted, deleted_at, email, modified_at, name, password, phone, user_role, user_status)
values
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2026-03-19T12:27:01.471Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (1:NUMERIC) <- [0]
2026-03-19T12:27:01.472Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (2:TIMESTAMP) <- [2026-03-19T12:27:01.401488731]
2026-03-19T12:27:01.472Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (3:BOOLEAN) <- [false]
2026-03-19T12:27:01.473Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (4:TIMESTAMP) <- [null]
2026-03-19T12:27:01.474Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (5:VARCHAR) <- [super@ticket-topia.com]
2026-03-19T12:27:01.474Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (6:TIMESTAMP) <- [2026-03-19T12:27:01.401488731]
2026-03-19T12:27:01.475Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (7:VARCHAR) <- [SUPER_ADMIN]
2026-03-19T12:27:01.475Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (8:VARCHAR) <- [$2a$10$9hWBgFvAKFbjZHS/cd.27ew.D9XNmLURmJ5LtBMos5CBkV1R9.P/a]
2026-03-19T12:27:01.477Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (9:VARCHAR) <- [010-0000-0000]
2026-03-19T12:27:01.477Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (10:ENUM) <- [SUPER_ADMIN]
2026-03-19T12:27:01.479Z TRACE 1 --- [ main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (11:ENUM) <- [ACTIVE]
2026-03-19T12:27:01.501Z WARN 1 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1265, SQLState: 01000
2026-03-19T12:27:01.502Z ERROR 1 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : Data truncated for column 'user_role' at row 1
2026-03-19T12:27:01.553Z ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.orm.jpa.JpaSystemException: could not execute statement [Data truncated for column 'user_role' at row 1] [insert into users (balance,created_at,deleted,deleted_at,email,modified_at,name,password,phone,user_role,user_status) values (?,?,?,?,?,?,?,?,?,?,?)]
at org.springframework.orhttp://m.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:341) ~[spring-orm-6.1.14.jar!/:6.1.14]
at org.springframework.orhttp://m.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) ~[spring-orm-6.1.14.jar!/:6.1.14]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) ~[spring-orm-6.1.14.jar!/:6.1.14]
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-6.1.14.jar!/:6.1.14]
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335) ~[spring-tx-6.1.14.jar!/:6.1.14]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:160) ~[spring-tx-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:165) ~[spring-data-jpa-3.3.5.jar!/:3.3.5]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) ~[spring-aop-6.1.14.jar!/:6.1.14]
at jdk.proxy2/jdk.proxy2.$Proxy178.save(Unknown Source) ~[na:na]
at cohttp://m.example.ticketingproject.common.config.SuperAdminInitializer.run(SuperAdminInitializer.java:50) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:569) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) ~[spring-tx-6.1.14.jar!/:6.1.14]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) ~[spring-aop-6.1.14.jar!/:6.1.14]
at cohttp://m.example.ticketingproject.common.config.SuperAdminInitializer$SpringCGLIB$0.run(<generated>) ~[!/:0.0.1-SNAPSHOT]
at org.springframework.boot.SpringApplication.lambda$callRunner$4(SpringApplication.java:786) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:83) ~[spring-core-6.1.14.jar!/:6.1.14]
at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60) ~[spring-core-6.1.14.jar!/:6.1.14]
at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:88) ~[spring-core-6.1.14.jar!/:6.1.14]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:786) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:774) ~[spring-boot-3.3.5.jar!/:3.3.5]
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[na:na]
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[na:na]
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:774) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:342) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.5.jar!/:3.3.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.5.jar!/:3.3.5]
at cohttp://m.example.ticketingproject.TicketingProjectApplication.main(TicketingProjectApplication.java:14) ~[!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:569) ~[na:na]
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[app.jar:0.0.1-SNAPSHOT]
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[app.jar:0.0.1-SNAPSHOT]
at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[app.jar:0.0.1-SNAPSHOT]
Caused by: org.hibernate.exception.GenericJDBCException: could not execute statement [Data truncated for column 'user_role' at row 1] [insert into users (balance,created_at,deleted,deleted_at,email,modified_at,name,password,phone,user_role,user_status) values (?,?,?,?,?,?,?,?,?,?,?)]
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:63) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:197) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.id.insert.GetGeneratedKeysDelegate.performMutation(GetGeneratedKeysDelegate.java:116) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.engine.jdbc.mutation.internal.MutationExecutorSingleNonBatched.performNonBatchedOperations(MutationExecutorSingleNonBatched.java:47) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.engine.jdbc.mutation.internal.AbstractMutationExecutor.execute(AbstractMutationExecutor.java:55) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.persister.entity.mutation.InsertCoordinatorStandard.doStaticInserts(InsertCoordinatorStandard.java:194) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.persister.entity.mutation.InsertCoordinatorStandard.coordinateInsert(InsertCoordinatorStandard.java:132) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.persister.entity.mutation.InsertCoordinatorStandard.insert(InsertCoordinatorStandard.java:95) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:85) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:671) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:292) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:273) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:323) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:391) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:305) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:224) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:137) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:175) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.persist(DefaultPersistEventListener.java:93) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:77) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:54) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:757) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:741) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:569) ~[na:na]
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:319) ~[spring-orm-6.1.14.jar!/:6.1.14]
at jdk.proxy2/jdk.proxy2.$Proxy174.persist(Unknown Source) ~[na:na]
at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:628) ~[spring-data-jpa-3.3.5.jar!/:3.3.5]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:569) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:277) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:516) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:285) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:628) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:173) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:148) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:70) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) ~[spring-tx-6.1.14.jar!/:6.1.14]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.1.14.jar!/:6.1.14]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138) ~[spring-tx-6.1.14.jar!/:6.1.14]
... 49 common frames omitted
Caused by: java.sql.SQLException: Data truncated for column 'user_role' at row 1
at cohttp://m.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
at cohttp://m.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1054) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1003) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1312) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:988) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
at cohttp://m.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-5.1.0.jar!/:na]
at cohttp://m.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-5.1.0.jar!/:na]
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:194) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
... 99 common frames omitted
분석: Redis 문제는 해결됐고, DB 문제
Data truncated for column 'user_role' at row 1
binding parameter (10:ENUM) <- [SUPER_ADMIN]
원인: users 테이블의 user_role ENUM 컬럼에 SUPER_ADMIN 값이 정의되어 있지 않은 것이 원인
+ 현재 ddl-auto: update로 설정 -> 컬럼을 새로 추가하거나 수정하지 않음.
조치: RDS에서 직접 ENUM 컬럼 수정 필요.
방법: intelliJ에서 RDS 접속하여 아래 쿼리 전송
ALTER TABLE users
MODIFY COLUMN user_role ENUM('USER', 'ADMIN', 'SUPER_ADMIN') NOT NULL;
결과



'Projects > [Spring] Ticketing App Project' 카테고리의 다른 글
| [프로젝트 회고] Ticketing-Project (0) | 2026.03.25 |
|---|---|
| [AWS] (1부) EC2 서버 체크하기, ElastiCache 생성 및 연결하기 (2) | 2026.03.18 |
| [Test] 분명 사용되지 않아서 지웠는데, 왜 테스트가 실패할까? (0) | 2026.03.16 |
| [Test] Mock과 MockBean은 뭐가 다른 걸까? (0) | 2026.03.16 |
| [Github] Runner 서버에 Docker를 설치해야 할까? (0) | 2026.03.16 |