From cf5f0b5df585788452b7e448c2bfc4da9fc1a9dc Mon Sep 17 00:00:00 2001 From: woowahan-neo Date: Tue, 14 Apr 2026 18:27:36 +0900 Subject: [PATCH 1/7] =?UTF-8?q?chore(terraform):=20RDS=20database=20?= =?UTF-8?q?=EB=B0=8F=20secret=20=EB=AA=A8=EB=93=88=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 콘솔에서 기존 RDS를 삭제하고 Aurora DB로 전환함에 따라 Terraform에서 database/secret 모듈과 관련 참조를 제거한다. --- terraform/environments/dev/main.tf | 14 ------ terraform/environments/dev/outputs.tf | 16 ------- terraform/environments/dev/variables.tf | 6 --- terraform/environments/prod/main.tf | 14 ------ terraform/environments/prod/outputs.tf | 16 ------- terraform/environments/prod/variables.tf | 6 --- terraform/modules/database/main.tf | 58 ------------------------ terraform/modules/database/outputs.tf | 39 ---------------- terraform/modules/database/variables.tf | 16 ------- terraform/modules/secret/main.tf | 7 --- terraform/modules/secret/outputs.tf | 3 -- terraform/modules/secret/variables.tf | 1 - terraform/modules/tags/main.tf | 3 -- terraform/modules/tags/outputs.tf | 5 -- 14 files changed, 204 deletions(-) delete mode 100644 terraform/modules/database/main.tf delete mode 100644 terraform/modules/database/outputs.tf delete mode 100644 terraform/modules/database/variables.tf delete mode 100644 terraform/modules/secret/main.tf delete mode 100644 terraform/modules/secret/outputs.tf delete mode 100644 terraform/modules/secret/variables.tf diff --git a/terraform/environments/dev/main.tf b/terraform/environments/dev/main.tf index e25e1f579..0bc0fe494 100644 --- a/terraform/environments/dev/main.tf +++ b/terraform/environments/dev/main.tf @@ -70,18 +70,4 @@ module "application" { server_tags = module.tags.server_tags } -module "database" { - source = "../../modules/database" - - vpc_id = module.network.vpc_id - project_name = var.project_name - db_name = var.db_name - secret_name = var.db_secret_name - ingress_security_group_ids = [module.application.application_sg_id, module.bastion.bastion_sg_id] - - private_subnet_ids = module.network.private_subnet_ids - server_tags = module.tags.server_tags - database_tags = module.tags.database_tags -} - diff --git a/terraform/environments/dev/outputs.tf b/terraform/environments/dev/outputs.tf index f00afaffa..53b1f33f7 100644 --- a/terraform/environments/dev/outputs.tf +++ b/terraform/environments/dev/outputs.tf @@ -62,19 +62,3 @@ output "application_launch_template_id" { description = "Launch Template ID for application instances" value = module.application.launch_template_id } - -# Database -output "database_endpoint" { - description = "Endpoint of the RDS database" - value = module.database.db_instance_endpoint -} - -output "database_id" { - description = "ID of the RDS database instance" - value = module.database.db_instance_id -} - -output "database_sg_id" { - description = "Security Group ID for the database" - value = module.database.database_sg_id -} diff --git a/terraform/environments/dev/variables.tf b/terraform/environments/dev/variables.tf index 04bbb23c5..226ed1d9e 100644 --- a/terraform/environments/dev/variables.tf +++ b/terraform/environments/dev/variables.tf @@ -13,9 +13,3 @@ variable "bucket_name" { variable "key_pair_name" { default = "prolog-dev" } -variable "db_name" { - default = "prolog" -} -variable "db_secret_name" { - default = "secrets/prolog_dev" -} diff --git a/terraform/environments/prod/main.tf b/terraform/environments/prod/main.tf index e25e1f579..0bc0fe494 100644 --- a/terraform/environments/prod/main.tf +++ b/terraform/environments/prod/main.tf @@ -70,18 +70,4 @@ module "application" { server_tags = module.tags.server_tags } -module "database" { - source = "../../modules/database" - - vpc_id = module.network.vpc_id - project_name = var.project_name - db_name = var.db_name - secret_name = var.db_secret_name - ingress_security_group_ids = [module.application.application_sg_id, module.bastion.bastion_sg_id] - - private_subnet_ids = module.network.private_subnet_ids - server_tags = module.tags.server_tags - database_tags = module.tags.database_tags -} - diff --git a/terraform/environments/prod/outputs.tf b/terraform/environments/prod/outputs.tf index f00afaffa..53b1f33f7 100644 --- a/terraform/environments/prod/outputs.tf +++ b/terraform/environments/prod/outputs.tf @@ -62,19 +62,3 @@ output "application_launch_template_id" { description = "Launch Template ID for application instances" value = module.application.launch_template_id } - -# Database -output "database_endpoint" { - description = "Endpoint of the RDS database" - value = module.database.db_instance_endpoint -} - -output "database_id" { - description = "ID of the RDS database instance" - value = module.database.db_instance_id -} - -output "database_sg_id" { - description = "Security Group ID for the database" - value = module.database.database_sg_id -} diff --git a/terraform/environments/prod/variables.tf b/terraform/environments/prod/variables.tf index a17fee6e7..f847bb88e 100644 --- a/terraform/environments/prod/variables.tf +++ b/terraform/environments/prod/variables.tf @@ -13,9 +13,3 @@ variable "bucket_name" { variable "key_pair_name" { default = "prolog-prod" } -variable "db_name" { - default = "prolog" -} -variable "db_secret_name" { - default = "secrets/prolog_prod" -} diff --git a/terraform/modules/database/main.tf b/terraform/modules/database/main.tf deleted file mode 100644 index ecac90d81..000000000 --- a/terraform/modules/database/main.tf +++ /dev/null @@ -1,58 +0,0 @@ -module "secret" { - source = "../../modules/secret" - - secret_name = var.secret_name -} - -locals { - username = module.secret.value["spring.datasource.username"] - password = module.secret.value["spring.datasource.password"] -} - -resource "aws_security_group" "database_sg" { - vpc_id = var.vpc_id - - ingress { - from_port = 3306 - to_port = 3306 - protocol = "tcp" - security_groups = var.ingress_security_group_ids - } - - egress { - from_port = 0 - to_port = 0 - protocol = "-1" - cidr_blocks = ["0.0.0.0/0"] - } - tags = merge(var.server_tags, { - Name = "${var.project_name}_database_sg" - }) -} - -resource "aws_db_subnet_group" "database_subnet_group" { - name = "${var.project_name}-subnet-group" - subnet_ids = var.private_subnet_ids - - // Note: Tag not required -} - -resource "aws_db_instance" "database" { - identifier = var.project_name - allocated_storage = 20 - engine = "mysql" - engine_version = "8.0" - instance_class = "db.t4g.micro" - db_name = var.db_name - username = local.username - password = local.password - parameter_group_name = "default.mysql8.0" - skip_final_snapshot = true - publicly_accessible = false - vpc_security_group_ids = [aws_security_group.database_sg.id] - db_subnet_group_name = aws_db_subnet_group.database_subnet_group.name - - tags = merge(var.database_tags, { - Name = "${var.project_name}_database" - }) -} diff --git a/terraform/modules/database/outputs.tf b/terraform/modules/database/outputs.tf deleted file mode 100644 index b8641b4e6..000000000 --- a/terraform/modules/database/outputs.tf +++ /dev/null @@ -1,39 +0,0 @@ -output "database_sg_id" { - description = "Security Group ID for the database" - value = aws_security_group.database_sg.id -} - -output "database_sg_name" { - description = "Name of the Security Group for the database" - value = aws_security_group.database_sg.tags["Name"] -} - -output "db_subnet_group_name" { - description = "Name of the DB Subnet Group" - value = aws_db_subnet_group.database_subnet_group.name -} - -output "db_instance_id" { - description = "ID of the DB instance" - value = aws_db_instance.database.id -} - -output "db_instance_arn" { - description = "ARN of the DB instance" - value = aws_db_instance.database.arn -} - -output "db_instance_endpoint" { - description = "Endpoint of the DB instance" - value = aws_db_instance.database.endpoint -} - -output "db_instance_username" { - description = "Username for the DB instance" - value = aws_db_instance.database.username -} - -output "db_instance_name" { - description = "Name of the database created on the DB instance" - value = aws_db_instance.database.db_name -} diff --git a/terraform/modules/database/variables.tf b/terraform/modules/database/variables.tf deleted file mode 100644 index 4f2f61f7c..000000000 --- a/terraform/modules/database/variables.tf +++ /dev/null @@ -1,16 +0,0 @@ -variable "vpc_id" {} -variable "project_name" {} -variable "db_name" {} -variable "secret_name" {} -variable "ingress_security_group_ids" { - type = list(string) -} -variable "private_subnet_ids" { - type = list(string) -} -variable "server_tags" { - type = map(string) -} -variable "database_tags" { - type = map(string) -} diff --git a/terraform/modules/secret/main.tf b/terraform/modules/secret/main.tf deleted file mode 100644 index 2a0fbce42..000000000 --- a/terraform/modules/secret/main.tf +++ /dev/null @@ -1,7 +0,0 @@ -data "aws_secretsmanager_secret" "secret" { - name = var.secret_name -} - -data "aws_secretsmanager_secret_version" "secret_version" { - secret_id = data.aws_secretsmanager_secret.secret.id -} diff --git a/terraform/modules/secret/outputs.tf b/terraform/modules/secret/outputs.tf deleted file mode 100644 index 986dfd51f..000000000 --- a/terraform/modules/secret/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "value" { - value = jsondecode(data.aws_secretsmanager_secret_version.secret_version.secret_string) -} diff --git a/terraform/modules/secret/variables.tf b/terraform/modules/secret/variables.tf deleted file mode 100644 index e59fa63c4..000000000 --- a/terraform/modules/secret/variables.tf +++ /dev/null @@ -1 +0,0 @@ -variable "secret_name" {} diff --git a/terraform/modules/tags/main.tf b/terraform/modules/tags/main.tf index dd172fcc8..3c161e861 100644 --- a/terraform/modules/tags/main.tf +++ b/terraform/modules/tags/main.tf @@ -12,9 +12,6 @@ locals { storage_tags = merge(local.common_tags, { Role = "${var.project_name}-storage" }) - database_tags = merge(local.common_tags, { - Role = "${var.project_name}-db" - }) service_worker_tags = merge(local.common_tags, { Role = "service-worker" }) diff --git a/terraform/modules/tags/outputs.tf b/terraform/modules/tags/outputs.tf index 2882144fa..7d8961c7a 100644 --- a/terraform/modules/tags/outputs.tf +++ b/terraform/modules/tags/outputs.tf @@ -18,11 +18,6 @@ output "storage_tags" { value = local.storage_tags } -output "database_tags" { - description = "Tags for database resources" - value = local.database_tags -} - output "service_worker_tags" { description = "Tags for service worker resources" value = local.service_worker_tags From 5c0860de98cdaee0a84c733c2659c277bd9cefce Mon Sep 17 00:00:00 2001 From: woowahan-neo Date: Wed, 15 Apr 2026 07:51:50 +0900 Subject: [PATCH 2/7] =?UTF-8?q?feat(terraform):=20ASG=20min/desired=20capa?= =?UTF-8?q?city=EB=A5=BC=201=EB=A1=9C=20=EC=84=A4=EC=A0=95=ED=95=98?= =?UTF-8?q?=EC=97=AC=20EC2=20=EA=B8=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- terraform/modules/application/main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/terraform/modules/application/main.tf b/terraform/modules/application/main.tf index ad5e4e3c3..629a456fd 100644 --- a/terraform/modules/application/main.tf +++ b/terraform/modules/application/main.tf @@ -110,8 +110,8 @@ resource "aws_autoscaling_group" "asg" { } max_size = 4 - min_size = 0 - desired_capacity = 0 + min_size = 1 + desired_capacity = 1 vpc_zone_identifier = var.private_subnet_ids // Note: 이후 target_group_arns는 CodeDeploy에서 알아서 관리 예정 From c9f530db37d21f6b620865e18a4c28d994d7588a Mon Sep 17 00:00:00 2001 From: woowahan-neo Date: Wed, 15 Apr 2026 08:10:27 +0900 Subject: [PATCH 3/7] =?UTF-8?q?fix(test):=20RssClientTest=EB=A5=BC=20?= =?UTF-8?q?=EB=A1=9C=EC=BB=AC=20XML=20fixture=20=EA=B8=B0=EB=B0=98?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 외부 RSS 피드(YouTube, Tistory 등)에 실제 네트워크 호출을 하던 테스트를 로컬 XML fixture로 대체하여 flaky test 문제를 해결한다. --- .../article/application/RssClientTest.java | 28 +++++++++++-------- backend/src/test/resources/rss/empty-feed.xml | 8 ++++++ .../src/test/resources/rss/tistory-feed.xml | 17 +++++++++++ .../src/test/resources/rss/youtube-feed.xml | 14 ++++++++++ 4 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 backend/src/test/resources/rss/empty-feed.xml create mode 100644 backend/src/test/resources/rss/tistory-feed.xml create mode 100644 backend/src/test/resources/rss/youtube-feed.xml diff --git a/backend/src/test/java/wooteco/prolog/article/application/RssClientTest.java b/backend/src/test/java/wooteco/prolog/article/application/RssClientTest.java index 184ceb3d1..e213ff792 100644 --- a/backend/src/test/java/wooteco/prolog/article/application/RssClientTest.java +++ b/backend/src/test/java/wooteco/prolog/article/application/RssClientTest.java @@ -10,36 +10,40 @@ class RssClientTest { @Test void fromTistoryRssFeedBy() { RssClient rssClient = new RssClient(); - RssFeeds rssFeeds = rssClient.fromRssFeedBy("https://lazypazy.tistory.com/rss"); + String feedUrl = getClass().getClassLoader().getResource("rss/tistory-feed.xml").toString(); + + RssFeeds rssFeeds = rssClient.fromRssFeedBy(feedUrl); assertThat(rssFeeds.getRssFeeds()).isNotEmpty(); + assertThat(rssFeeds.getRssFeeds().get(0).getTitle()).isEqualTo("Test Article"); } @Test void fromYoutubeRssFeedBy() { - SSLUtil.disableSSLVerification(); - RssClient rssClient = new RssClient(); - RssFeeds rssFeeds = rssClient.fromRssFeedBy( - "https://www.youtube.com/feeds/videos.xml?channel_id=UC-mOekGSesms0agFntnQang"); + String feedUrl = getClass().getClassLoader().getResource("rss/youtube-feed.xml").toString(); + + RssFeeds rssFeeds = rssClient.fromRssFeedBy(feedUrl); assertThat(rssFeeds.getRssFeeds()).isNotEmpty(); + assertThat(rssFeeds.getRssFeeds().get(0).getTitle()).isEqualTo("Test Video"); } @Test - void fromVelogRssFeedBy() { - SSLUtil.disableSSLVerification(); - + void fromInvalidRssFeedBy() { RssClient rssClient = new RssClient(); - RssFeeds rssFeeds = rssClient.fromRssFeedBy("https://brunch.co.kr/rss/@@7vZS"); - assertThat(rssFeeds.getRssFeeds()).isNotEmpty(); + RssFeeds rssFeeds = rssClient.fromRssFeedBy("https://invalid.example.com/nonexistent-feed"); + + assertThat(rssFeeds.getRssFeeds()).isEmpty(); } @Test - void fromInvalidRssFeedBy() { + void fromEmptyRssFeedBy() { RssClient rssClient = new RssClient(); - RssFeeds rssFeeds = rssClient.fromRssFeedBy("https://v2.velog.io/rss/junho5336asdfasdf"); + String feedUrl = getClass().getClassLoader().getResource("rss/empty-feed.xml").toString(); + + RssFeeds rssFeeds = rssClient.fromRssFeedBy(feedUrl); assertThat(rssFeeds.getRssFeeds()).isEmpty(); } diff --git a/backend/src/test/resources/rss/empty-feed.xml b/backend/src/test/resources/rss/empty-feed.xml new file mode 100644 index 000000000..f84ca8f5d --- /dev/null +++ b/backend/src/test/resources/rss/empty-feed.xml @@ -0,0 +1,8 @@ + + + + Empty Blog + https://example.com + No articles + + diff --git a/backend/src/test/resources/rss/tistory-feed.xml b/backend/src/test/resources/rss/tistory-feed.xml new file mode 100644 index 000000000..e7d0e97b3 --- /dev/null +++ b/backend/src/test/resources/rss/tistory-feed.xml @@ -0,0 +1,17 @@ + + + + Test Tistory Blog + https://example.tistory.com + Test blog + + https://example.com/blog-image.png + + + Test Article + https://example.tistory.com/1 + Test description

]]>
+ Mon, 14 Apr 2025 10:00:00 +0900 +
+
+
diff --git a/backend/src/test/resources/rss/youtube-feed.xml b/backend/src/test/resources/rss/youtube-feed.xml new file mode 100644 index 000000000..b973a2a5b --- /dev/null +++ b/backend/src/test/resources/rss/youtube-feed.xml @@ -0,0 +1,14 @@ + + + Test YouTube Channel + + + Test Video + + 2025-04-14T10:00:00+00:00 + + Test video description + + + + From 63c1011c344ebc80459d15c588a44a286e644f35 Mon Sep 17 00:00:00 2001 From: woowahan-neo Date: Wed, 15 Apr 2026 08:11:35 +0900 Subject: [PATCH 4/7] =?UTF-8?q?refactor(terraform):=20ASG=20capacity?= =?UTF-8?q?=EB=A5=BC=20=EB=B3=80=EC=88=98=ED=99=94=ED=95=98=EA=B3=A0=20des?= =?UTF-8?q?ired=5Fcapacity=20ignore=5Fchanges=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - min_size, max_size, desired_capacity를 모듈 변수로 추출 - 환경별 적절한 값 설정 (dev: 1, prod: 2) - lifecycle ignore_changes로 오토스케일링과 terraform apply 충돌 방지 --- terraform/environments/dev/main.tf | 3 +++ terraform/environments/prod/main.tf | 3 +++ terraform/modules/application/main.tf | 10 +++++++--- terraform/modules/application/variables.tf | 12 ++++++++++++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/terraform/environments/dev/main.tf b/terraform/environments/dev/main.tf index 0bc0fe494..fca322a26 100644 --- a/terraform/environments/dev/main.tf +++ b/terraform/environments/dev/main.tf @@ -68,6 +68,9 @@ module "application" { public_subnet_ids = module.network.public_subnet_ids service_worker_tags = module.tags.service_worker_tags server_tags = module.tags.server_tags + asg_min_size = 1 + asg_max_size = 4 + asg_desired_capacity = 1 } diff --git a/terraform/environments/prod/main.tf b/terraform/environments/prod/main.tf index 0bc0fe494..5fca058f4 100644 --- a/terraform/environments/prod/main.tf +++ b/terraform/environments/prod/main.tf @@ -68,6 +68,9 @@ module "application" { public_subnet_ids = module.network.public_subnet_ids service_worker_tags = module.tags.service_worker_tags server_tags = module.tags.server_tags + asg_min_size = 2 + asg_max_size = 4 + asg_desired_capacity = 2 } diff --git a/terraform/modules/application/main.tf b/terraform/modules/application/main.tf index 629a456fd..8ea863eef 100644 --- a/terraform/modules/application/main.tf +++ b/terraform/modules/application/main.tf @@ -109,9 +109,9 @@ resource "aws_autoscaling_group" "asg" { version = "$Latest" } - max_size = 4 - min_size = 1 - desired_capacity = 1 + max_size = var.asg_max_size + min_size = var.asg_min_size + desired_capacity = var.asg_desired_capacity vpc_zone_identifier = var.private_subnet_ids // Note: 이후 target_group_arns는 CodeDeploy에서 알아서 관리 예정 @@ -137,6 +137,10 @@ resource "aws_autoscaling_group" "asg" { value = var.project_name propagate_at_launch = true } + + lifecycle { + ignore_changes = [desired_capacity] + } } data "aws_ami" "ec2_ami" { diff --git a/terraform/modules/application/variables.tf b/terraform/modules/application/variables.tf index 9feb963f5..2d6e8b31c 100644 --- a/terraform/modules/application/variables.tf +++ b/terraform/modules/application/variables.tf @@ -20,3 +20,15 @@ variable "service_worker_tags" { variable "server_tags" { type = map(string) } +variable "asg_min_size" { + type = number + default = 1 +} +variable "asg_max_size" { + type = number + default = 4 +} +variable "asg_desired_capacity" { + type = number + default = 1 +} From 48dd0846d04e16f0970b7256e1756ffe97e8dc9a Mon Sep 17 00:00:00 2001 From: woowahan-neo Date: Wed, 15 Apr 2026 08:27:06 +0900 Subject: [PATCH 5/7] =?UTF-8?q?fix(build):=20SonarQube=20=ED=94=8C?= =?UTF-8?q?=EB=9F=AC=EA=B7=B8=EC=9D=B8=203.3=20=E2=86=92=206.0.1.5171?= =?UTF-8?q?=EB=A1=9C=20=EC=97=85=EA=B7=B8=EB=A0=88=EC=9D=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gradle 8.10에서 deprecated된 JUnitXmlReport.getDestination() API로 인해 sonarqube task가 실패하는 문제를 해결한다. --- backend/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/build.gradle b/backend/build.gradle index 10f66a8b0..bcbf995f9 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -4,7 +4,7 @@ plugins { id "jacoco" id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.6' - id "org.sonarqube" version "3.3" + id "org.sonarqube" version "6.0.1.5171" id 'org.flywaydb.flyway' version "6.4.2" } From 068c6cfbb26d32a13a04302777a3158ab05246e7 Mon Sep 17 00:00:00 2001 From: woowahan-neo Date: Wed, 15 Apr 2026 08:30:45 +0900 Subject: [PATCH 6/7] =?UTF-8?q?fix(build):=20SonarQube=20=ED=94=8C?= =?UTF-8?q?=EB=9F=AC=EA=B7=B8=EC=9D=B8=205.1.0.4882=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 6.x는 SonarCloud JRE 다운로드 API 호환 문제가 있어 Gradle 8.x 호환되는 5.x 최신 버전으로 변경한다. --- backend/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/build.gradle b/backend/build.gradle index bcbf995f9..9bade583a 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -4,7 +4,7 @@ plugins { id "jacoco" id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.6' - id "org.sonarqube" version "6.0.1.5171" + id "org.sonarqube" version "5.1.0.4882" id 'org.flywaydb.flyway' version "6.4.2" } From 64633bceb7457a74832bab438bdb7285e5a50778 Mon Sep 17 00:00:00 2001 From: woowahan-neo Date: Wed, 15 Apr 2026 08:44:49 +0900 Subject: [PATCH 7/7] =?UTF-8?q?revert:=20SonarQube=20=ED=94=8C=EB=9F=AC?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20=EB=B2=84=EC=A0=84=EC=9D=84=20=EC=9B=90?= =?UTF-8?q?=EB=B3=B8(3.3)=EC=9C=BC=EB=A1=9C=20=EB=B3=B5=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SonarCloud CI 실패는 Gradle 8.10 업그레이드 이후 기존부터 발생하던 문제로, 이 PR의 변경 범위에서 제외한다. --- backend/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/build.gradle b/backend/build.gradle index 9bade583a..10f66a8b0 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -4,7 +4,7 @@ plugins { id "jacoco" id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.6' - id "org.sonarqube" version "5.1.0.4882" + id "org.sonarqube" version "3.3" id 'org.flywaydb.flyway' version "6.4.2" }