<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Efficient, Rapid, Accurate</title>
    <link>https://keichee.tistory.com/</link>
    <description>꼼꼼한 개발자의 블로그입니다. 영화를 좋아하고 개발을 좋아하고 땀흘리며 운동하는 것을 좋아합니다. 여행을 좋아하고 디지털 노마드를 꿈꾸며 지구의 깨끗한 환경을 수호하고 싶어요. 개발 관련 지식 공유 및 잡다한 내용들을 기록하기 위해 만든 블로그입니다. 많이 방문해주세요 ^-^</description>
    <language>ko</language>
    <pubDate>Mon, 13 Apr 2026 00:03:17 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>케이치</managingEditor>
    <image>
      <title>Efficient, Rapid, Accurate</title>
      <url>https://tistory1.daumcdn.net/tistory/1852466/attach/3e8a993219a94fe2bfb36149bc2bcfa9</url>
      <link>https://keichee.tistory.com</link>
    </image>
    <item>
      <title>brew update 오류 (couldn't find remote ref)</title>
      <link>https://keichee.tistory.com/483</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;토이프로젝트 진행하면서 MongoDB를 로컬환경에 설치하는 와중에 brew update 명령어를 실행했더니 아래와 같이 에러가 발생했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;% brew update&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;==&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;b&gt;Updating Homebrew...&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;fatal: couldn't find remote ref refs/heads/master&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Error&lt;/span&gt;&lt;span&gt;: Fetching /opt/homebrew/Library/Taps/dart-lang/homebrew-dart failed!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Error:&lt;/span&gt;&lt;span&gt; Some taps failed to update!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;The following taps can not read their remote branches:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;dart-lang/dart&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;This is happening because the remote branch was renamed or deleted.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Reset taps to point to the correct remote branches by running `brew tap --repair`&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;에러메시지를 읽어보니 dart-lang/dart 의 원격 브랜치를 읽을 수 없다고하면서 이름이 변경됐거나 삭제되었을테니 brew tap --repair 를 실행하라고 하네요. 그래서 dart-lang/dart 를 타겟으로 주어 실행하니..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%&lt;/span&gt; brew tap --repair dart-lang/dart&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;remote: Enumerating objects: 1226, done.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;remote: Counting objects: 100% (1226/1226), done.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;remote: Compressing objects: 100% (199/199), done.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;remote: Total 1226 (delta 1086), reused 1133 (delta 1006), pack-reused 0&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Receiving objects: 100% (1226/1226), 193.80 KiB | 1.15 MiB/s, done.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Resolving deltas: 100% (1086/1086), completed with 12 local objects.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;From &lt;a href=&quot;https://github.com/dart-lang/homebrew-dart&quot;&gt;https://github.com/dart-lang/homebrew-dart&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;* [new branch]&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;dependabot/github_actions/github-actions-9c54b75f35 -&amp;gt; origin/dependabot/github_actions/github-actions-9c54b75f35&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;* [new branch]&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;dependabot/pub/googleapis-13.2.0 -&amp;gt; origin/dependabot/pub/googleapis-13.2.0&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;* [new branch]&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;dependabot/pub/test-1.25.7 &lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;-&amp;gt; origin/dependabot/pub/test-1.25.7&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;* [new branch]&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;main &lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;-&amp;gt; origin/main&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;==&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;b&gt;dart-lang/dart: changed default branch name from master to main!&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이렇게 default 브랜치가 master 에서 main 으로 변경됐다고 친절히 알려줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>  Programming</category>
      <category>brew update 에러</category>
      <category>fatal: couldn't find remote ref</category>
      <category>some taps failed to update</category>
      <author>케이치</author>
      <guid isPermaLink="true">https://keichee.tistory.com/483</guid>
      <comments>https://keichee.tistory.com/483#entry483comment</comments>
      <pubDate>Wed, 3 Jul 2024 08:08:02 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 개인프로젝트 처음 시작시 github 관련 오류 해결방법</title>
      <link>https://keichee.tistory.com/482</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오랜만에 개인 프로젝트를 시작했는데 쉬는 텀이&amp;nbsp; 길다보니 매번 시작할때마다 git 관련 오류때문에 구글링하는 시간이 아까워 기록용으로 남깁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소스 코드 작성하고 이런저런 테스트 해보고 github repo 생성후에 push 하려고 했는데&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;% git init&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;% git remote add origin {github url}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;% git push --set-upstream origin main&lt;br /&gt;Password&amp;nbsp;for&amp;nbsp;'&lt;a href=&quot;https://aaaaaa@github.com':&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aaaaaa@github.com':&lt;/a&gt;&amp;nbsp;&lt;br /&gt;remote:&amp;nbsp;&lt;b&gt;Support&amp;nbsp;for&amp;nbsp;password&amp;nbsp;authentication&amp;nbsp;was&amp;nbsp;removed&amp;nbsp;on&amp;nbsp;August&amp;nbsp;13,&amp;nbsp;2021.&lt;/b&gt;&lt;br /&gt;remote:&amp;nbsp;Please&amp;nbsp;see&amp;nbsp;&lt;a href=&quot;https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls&lt;/a&gt;&amp;nbsp;for&amp;nbsp;information&amp;nbsp;on&amp;nbsp;currently&amp;nbsp;recommended&amp;nbsp;modes&amp;nbsp;of&amp;nbsp;authentication.&lt;br /&gt;fatal:&amp;nbsp;Authentication&amp;nbsp;failed&amp;nbsp;for&amp;nbsp;'&lt;a href=&quot;https://github.com/aaaaaa/test.git/'&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/aaaaaa/test.git/'&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 에러가 난다면 Password 란에 Personal Access Token(PAT) 값을 넣어주면 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PAT 는 &lt;b&gt;github계정설정 (repo 설정 아님) &amp;gt; Developer Settings &amp;gt; Personal access tokens (classic) 에서 발급&lt;/b&gt;받을 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 브랜치 이슈로 아래와 같은 에러가 발생한다면..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;%&amp;nbsp;git&amp;nbsp;checkout&amp;nbsp;main&lt;br /&gt;branch&amp;nbsp;'main'&amp;nbsp;set&amp;nbsp;up&amp;nbsp;to&amp;nbsp;track&amp;nbsp;'origin/main'.&lt;br /&gt;Switched&amp;nbsp;to&amp;nbsp;a&amp;nbsp;new&amp;nbsp;branch&amp;nbsp;'main'&lt;br /&gt;% git merge prod&lt;br /&gt;&lt;b&gt;fatal:&amp;nbsp;refusing&amp;nbsp;to&amp;nbsp;merge&amp;nbsp;unrelated&amp;nbsp;histories&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;%&amp;nbsp;git&amp;nbsp;merge&amp;nbsp;prod&amp;nbsp;--allow-unrelated-histories&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 명령어로 해결할 수 있음&lt;/p&gt;</description>
      <category>  Programming</category>
      <category>Error</category>
      <category>Git</category>
      <category>github</category>
      <category>password authentication</category>
      <category>pat</category>
      <category>personal access token</category>
      <author>케이치</author>
      <guid isPermaLink="true">https://keichee.tistory.com/482</guid>
      <comments>https://keichee.tistory.com/482#entry482comment</comments>
      <pubDate>Tue, 2 Jul 2024 17:35:47 +0900</pubDate>
    </item>
    <item>
      <title>Spock Test Framework 실행 오류 해결</title>
      <link>https://keichee.tistory.com/481</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;(SpringBoot3 + Correto 17 (java 17) 환경에서 spock test 시 발생한&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;TestEngine with ID 'spock' failed to discover tests&lt;/span&gt; 오류 해결방안 공유합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ 에서 Spring Initializer를 이용하여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링부트3 + 자바 17 기반의 신규 프로젝트를 생성,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빌드가 정상적으로 되는지 확인 후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;spock 테스트를 위한 라이브러리를 아래 3개 추가했습니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4;&quot;&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;testImplementation 'org.spockframework:spock-core:2.4-M1-groovy-4.0'
testImplementation 'org.spockframework:spock-spring:2.4-M1-groovy-4.0'
testImplementation 'org.apache.groovy:groovy-all:4.0.13'&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 샘플 테스트 클래스를 만들었습니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4;&quot;&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;class SampleSpec extends Specification {

    def &quot;where with variables: #size&quot;() {
        when:
        def list = new ArrayList(size)

        then:
        list.size() == 0

        where:
        size &amp;lt;&amp;lt; [1, 2, 3, 4, 5]
    }

    def &quot;using data tables for calculating max, Max of #a and #b is #max&quot;() {
        expect:
        Math.max(a, b) == max

        where:
        a | b || max
        1 | 2 || 2
        7 | 4 || 7
        0 | 0 || 0
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행을 해보았더니 아래와 같은 에러가 발생했습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1704248211588&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Internal Error occurred.
org.junit.platform.commons.JUnitException: TestEngine with ID 'spock' failed to discover tests
...중략...

Caused by: org.junit.platform.commons.JUnitException: ClassSelector [className = 'com.project.SampleSpec', classLoader = null] resolution failed
...중략...

Caused by: org.junit.platform.commons.PreconditionViolationException: Could not load class with name: com.project.SampleSpec
...중략...

Caused by: java.lang.ClassNotFoundException: com.project.SampleSpec&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글링 결과 &lt;span style=&quot;background-color: #ffc9af;&quot;&gt;build.gradle 파일의 plugins 에 id 'groovy' 를 추가&lt;/span&gt;해주면 되는 문제였습니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4;&quot;&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;plugins {
    id 'java'
    id 'org.springframework.boot' version '3.2.1'
    id 'io.spring.dependency-management' version '1.1.4'

    id 'groovy'  &amp;lt;-- 이게 있는지 확인
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>  Programming</category>
      <category>Groovy</category>
      <category>spock test framework</category>
      <category>spock test 실행오류</category>
      <category>springboot3</category>
      <author>케이치</author>
      <guid isPermaLink="true">https://keichee.tistory.com/481</guid>
      <comments>https://keichee.tistory.com/481#entry481comment</comments>
      <pubDate>Wed, 3 Jan 2024 11:25:32 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] 신규 생성 프로젝트의 빌드 오류 (Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.1)</title>
      <link>https://keichee.tistory.com/480</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;최근 2년정도 IntelliJ에서 Java 11 기반의 AWS Correto 11 을 사용해왔습니다&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 현재 JAVA_HOME 은 AWS Correto 11 의 위치를 가리키고 있었습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;신규 프로젝트 구성할 일이 생겼고&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;AWS Correto 17 을 미리 다운받아둔 상태에서&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;IntelliJ 에서 SpringBoot Initializer 를 이용해서&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;아래와 같은 설정(Java 17 + gradle groovy)으로 프로젝트를 생성하고&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;빌드를 하니 오류가 발생했습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;SpringBoot프로젝트생성설정.png&quot; data-origin-width=&quot;1824&quot; data-origin-height=&quot;1564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/exOV1N/btsCVHI7nXp/TjTNks3erbzjeJ7k3TJq4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/exOV1N/btsCVHI7nXp/TjTNks3erbzjeJ7k3TJq4K/img.png&quot; data-alt=&quot;스프링부트 신규 프로젝트 생성 설정화면 (Java 17 설정)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/exOV1N/btsCVHI7nXp/TjTNks3erbzjeJ7k3TJq4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FexOV1N%2FbtsCVHI7nXp%2FTjTNks3erbzjeJ7k3TJq4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1824&quot; height=&quot;1564&quot; data-filename=&quot;SpringBoot프로젝트생성설정.png&quot; data-origin-width=&quot;1824&quot; data-origin-height=&quot;1564&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스프링부트 신규 프로젝트 생성 설정화면 (Java 17 설정)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 빌드시 발생했던 오류 메시지&lt;/p&gt;
&lt;pre id=&quot;code_1704242831643&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;A problem occurred configuring root project 'my-new-springboot3-project'.
&amp;gt; Could not resolve all files for configuration ':classpath'.
   &amp;gt; Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.1.
     Required by:
         project : &amp;gt; org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.1
      &amp;gt; No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.2.1 was found. The consumer was configured to find a library for use during runtime, compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.5' but:
          - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a library, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 11
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.5')
          - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a component for use during runtime, and its dependencies declared externally:
              - Incompatible because this component declares documentation and the consumer needed a library
              - Other compatible attributes:
                  - Doesn't say anything about its target Java version (required compatibility with Java 11)
                  - Doesn't say anything about its elements (required them packaged as a jar)
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.5')
          - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.1 declares a library, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 11
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.5')
          - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.1 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 11
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.5')
          - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 11
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.5')
          - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a component for use during runtime, and its dependencies declared externally:
              - Incompatible because this component declares documentation and the consumer needed a library
              - Other compatible attributes:
                  - Doesn't say anything about its target Java version (required compatibility with Java 11)
                  - Doesn't say anything about its elements (required them packaged as a jar)
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.5')

* Try:
&amp;gt; Run with --stacktrace option to get the stack trace.
&amp;gt; Run with --info or --debug option to get more log output.
&amp;gt; Run with --scan to get full insights.
&amp;gt; Get more help at https://help.gradle.org.
BUILD FAILED in 1s&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;에러 메시지의 내용을 읽어보니,&amp;nbsp;일단 Could not resolve xxx 의 경우 xxx 라이브러리가 없다라는 메시지인데&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;신규 생성한 프로젝트에서 필수라이브러리를 dependency에 안넣을 이유가 없다는 생각이 우선 들었습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;그런거라면 springboot initializer 의 버그일테니까요.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 더 읽어봤습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 &quot;requierd compatibility with Java 11&quot; 문구가 눈에 띄었습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;난 자바17을 쓰려고 17버전으로 JDK와 Java 설정을 넣었는데 왜 Java 11 관련메시지가 뜨는건지 이상했습니다.  &lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;에러메시지 내용으로 구글링을 좀 해보니 아래 부분들을 확인해보라는 내용들이 있었습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;현재 시스템에서 사용하는 Java 버전 확인 (java -version)&lt;/li&gt;
&lt;li&gt;build.gradle 파일의&amp;nbsp; sourceCompatibility 확인&lt;/li&gt;
&lt;li&gt;IntelliJ 의 project SDK 설정 확인&lt;/li&gt;
&lt;li&gt;gradle JVM 설정 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;일단 빌드시에 발생했고, 빌드툴은 gradle 이라는 걸 이미 프로젝트 생성시 설정을 해주었고, IntelliJ에 gradle 이 사용할 자바버전을 설정하는 내용이 있다는 것을 알고있었기에 gradle JVM 설정을 먼저 확인해봤습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;gradle JVM 설정이 기존 설정 그대로 Java 11을 사용하도록&lt;/b&gt; 되어있었습니다.  &lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트 생성시 correto 17, Java 17 버전을 설정해주었기에 sourceCompatibility 와 project SDK 는 17버전을 사용하도록 되어있었고, JAVA_HOME에 설정되어있는 현재 시스템에서 기본으로 사용중인 Java 버전과는 관계가 없었습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;gradle JVM 설정 확인 방법&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Preferences/Settings&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;span&gt; (&lt;span style=&quot;background-color: #000000; color: #ffffff;&quot;&gt;⌘ + , &lt;/span&gt;) &lt;/span&gt;&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Build, Execution, Deployment&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;span&gt; &lt;/span&gt;&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Build Tools&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;span&gt; &lt;/span&gt;&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Gradle&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;gradle jvm configuration.png&quot; data-origin-width=&quot;2024&quot; data-origin-height=&quot;1624&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KDiqA/btsCTXr25qC/7uqWyk1vWfTd2Gq8TrXHj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KDiqA/btsCTXr25qC/7uqWyk1vWfTd2Gq8TrXHj0/img.png&quot; data-alt=&quot;Gradle JVM 설정 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KDiqA/btsCTXr25qC/7uqWyk1vWfTd2Gq8TrXHj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKDiqA%2FbtsCTXr25qC%2F7uqWyk1vWfTd2Gq8TrXHj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2024&quot; height=&quot;1624&quot; data-filename=&quot;gradle jvm configuration.png&quot; data-origin-width=&quot;2024&quot; data-origin-height=&quot;1624&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Gradle JVM 설정 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;project SDK 설정 확인 방법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;File&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;span&gt; &lt;/span&gt;&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Project Structure.. &lt;span style=&quot;color: #333333;&quot;&gt;(&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #000000; color: #ffffff;&quot;&gt;⌘ + ; &lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;project sdk configuration.png&quot; data-origin-width=&quot;1906&quot; data-origin-height=&quot;1124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zhyOy/btsCQrU0w2A/nPP49uSKeTIeidwXKw0iHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zhyOy/btsCQrU0w2A/nPP49uSKeTIeidwXKw0iHk/img.png&quot; data-alt=&quot;Project SDK 설정 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zhyOy/btsCQrU0w2A/nPP49uSKeTIeidwXKw0iHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzhyOy%2FbtsCQrU0w2A%2FnPP49uSKeTIeidwXKw0iHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1906&quot; height=&quot;1124&quot; data-filename=&quot;project sdk configuration.png&quot; data-origin-width=&quot;1906&quot; data-origin-height=&quot;1124&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Project SDK 설정 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;build.gradle 파일의 sourceCompatibility 확인 방법&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;sourceCompatibility.png&quot; data-origin-width=&quot;1136&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xLeqi/btsC00aeJUO/9kYPIsni0yy5HGf9KYBDek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xLeqi/btsC00aeJUO/9kYPIsni0yy5HGf9KYBDek/img.png&quot; data-alt=&quot;build.gradle 파일에서 sourceCompatibility 설정 방법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xLeqi/btsC00aeJUO/9kYPIsni0yy5HGf9KYBDek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxLeqi%2FbtsC00aeJUO%2F9kYPIsni0yy5HGf9KYBDek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1136&quot; height=&quot;436&quot; data-filename=&quot;sourceCompatibility.png&quot; data-origin-width=&quot;1136&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;build.gradle 파일에서 sourceCompatibility 설정 방법&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>  Programming</category>
      <category>correto17</category>
      <category>gradle JVM 설정</category>
      <category>java17</category>
      <category>project sdk 설정</category>
      <category>sourceCompatibility 설정</category>
      <category>springboot3</category>
      <category>springboot3 신규프로젝트 빌드에러</category>
      <category>빌드에러</category>
      <author>케이치</author>
      <guid isPermaLink="true">https://keichee.tistory.com/480</guid>
      <comments>https://keichee.tistory.com/480#entry480comment</comments>
      <pubDate>Wed, 3 Jan 2024 10:35:42 +0900</pubDate>
    </item>
    <item>
      <title>SpringBoot 2.3 -&amp;gt; 2.5 업그레이드 후기</title>
      <link>https://keichee.tistory.com/479</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;SpringBoot 버전을 업그레이드 해야할 일이 생겨서 2.3 버전을 2.5 버전으로 업그레이드한 경험담을 공유합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발인생 처음으로 해보는 레거시 시스템의 프레임워크 업그레이드 작업이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대부분은 신규 프로젝트를 만들거나 deprecate 된 상태로 유지하는 정도였죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 해보고 싶었던 부분이었습니다. 업무가 많이 지루해진것도 한 몫 했죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 주기적으로 반기에 한번정도는 라이브러리 업그레이드 작업을 진행해야한다고 생각하지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저희 개발팀은 이상하게 라이브러리 업그레이드 작업을 안합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 갑자기 프레임워크 업그레이드를 하려니 dependency 가 많이 걸려있을거라 예상했죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 2.3 -&amp;gt; 2.4 로 올라가면서 어떤 부분에 변화가 생겼는지를 확인하고 대응하고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.4 -&amp;gt; 2.5 에서는 어떤 변화가 있었는지 확인하여 대응하면 될거라 생각했고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 2개의 spring boot release note 를 하나하나 살펴봤습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.4-Release-Notes#upgrading-from-spring-boot-23&quot;&gt;Upgrade from 2.3 to 2.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.5-Release-Notes#upgrading-from-spring-boot-24&quot;&gt;Upgrade from 2.4 to 2.5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.3 -&amp;gt; 2.4 에서 변경된 부분&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JUnit&amp;nbsp;5&amp;rsquo;s&amp;nbsp;Vintage&amp;nbsp;Engine&amp;nbsp;Removed&amp;nbsp;from&amp;nbsp;spring-boot-starter-test&lt;/li&gt;
&lt;li&gt;Config File Processing (application properties and YAML files)&lt;/li&gt;
&lt;li&gt;Config Data Imports&lt;/li&gt;
&lt;li&gt;Embedded database detection&lt;/li&gt;
&lt;li&gt;User-defined MongoClientSettings no longer customized&lt;/li&gt;
&lt;li&gt;Logback Configuration Properties&lt;/li&gt;
&lt;li&gt;Default Servlet Registration&lt;/li&gt;
&lt;li&gt;HTTP traces no longer include cookie headers by default&lt;/li&gt;
&lt;li&gt;Undertow Path on Forward&lt;/li&gt;
&lt;li&gt;Neo4j&lt;/li&gt;
&lt;li&gt;Hazelcast 4&lt;/li&gt;
&lt;li&gt;Elasticsearch RestClient&lt;/li&gt;
&lt;li&gt;R2DBC&lt;/li&gt;
&lt;li&gt;Flyway&lt;/li&gt;
&lt;li&gt;Removal of Plugin Management for Flatten Maven Plugin&lt;/li&gt;
&lt;li&gt;Version management for exec-maven-plugin&lt;/li&gt;
&lt;li&gt;Spring Boot Gradle Plugin&lt;/li&gt;
&lt;li&gt;Metrics export in integration tests&lt;/li&gt;
&lt;li&gt;Deprecations from Spring Boot 2.2 and 2.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.4 -&amp;gt; 2.5 에서 변경된 부분&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SQL Script DataSource Initialization&lt;/li&gt;
&lt;li&gt;Flyway and Liquibase JDBC URLs&lt;/li&gt;
&lt;li&gt;Spring Data JPA&lt;/li&gt;
&lt;li&gt;Spring Data Solr&lt;/li&gt;
&lt;li&gt;Secure Info Endpoint&lt;/li&gt;
&lt;li&gt;Task Scheduling Harmonization with Spring Integration&lt;/li&gt;
&lt;li&gt;Default Expression Language (EL) Implementation&lt;/li&gt;
&lt;li&gt;Messages in the Default Error View&lt;/li&gt;
&lt;li&gt;Logging Shutdown Hooks&lt;/li&gt;
&lt;li&gt;Gradle Default jar and war Tasks&lt;/li&gt;
&lt;li&gt;Cassandra Throttling Properties&lt;/li&gt;
&lt;li&gt;Customizing jOOQ&amp;rsquo;s DefaultConfiguration&lt;/li&gt;
&lt;li&gt;Groovy 3&lt;/li&gt;
&lt;li&gt;Minimum Requirements Changes&lt;/li&gt;
&lt;li&gt;Hibernate&amp;nbsp;Validator&amp;nbsp;6.2&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에 나온 내용 이외에도 업그레이드 되면서 deprecated 되는 것들에 대한 부분들, 그리고 새로 추가 된 부분들에 대한 설명을 하나하나 읽어보고 현재 내가 담당하는 프로젝트에서 사용되는 것들과 연관된 것들을 모두 읽어보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 spring boot 버전을 변경한 뒤 오류가 발생하는 부분은 없는지 배포는 잘 되는지를 확인했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;boot 업그레이드 작업하면서 변경했던 부분은 아래 내용들이었습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.4-Release-Notes#config-file-processing-application-properties-and-yaml-files&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;spring.config.use-legacy-processing = true 설정을 추가&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fasterxml.jackson.databind.PropertyNamingStrategy -&amp;gt; PropertyNamingStrategies 클래스 변경&lt;/li&gt;
&lt;li&gt;third-party dependency 들 중에서 업그레이드가 필요한 것들 확인 및 업그레이드&lt;/li&gt;
&lt;li&gt;gradle 버전 업그레이드 6.7 -&amp;gt; 6.9&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업 내용만보면 진짜 별거 아니었던 작업으로 보이네요. 작업시간보다 문서 읽어보는 시간이 더 오래 걸렸던것 같습니다. 링크를 타고타고 들어가야 확인할 수 있는 것들이 많다보니..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무튼 로컬환경에서 잘 돌아가는 것까지 확인 하고 개발에 올려 테스트를 해보니 애플리케이션이 정상적으로 실행되지 못하는 현상이 확인되었습니다. 왜 그런가 봤더니 jar 파일명이 이상하게 바뀌어있었습니다. 끝에 -plain postfix가 붙은 파일명이 배포된 것을 확인했고 이게 뭔가 싶어 구글링을 해보니 release note 에서 설명을 찾아볼 수 없었지만(내가 못 본 걸수도?) 2.5버전부터 발생하는 현상이었고 gradle 설정에서 jar task를 비활성화 시키거나 배포파일을 만드는 task 에서 해당 파일을 exclude 처리하면 되는 문제였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매일 반복되는 특별하지 않은 업무들만 하다가 처음으로 해본 프레임워크 업그레이드 작업은 너무 재미있었고 좋은 경험이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내년에는 java 17 + SpringBoot 3 기반의 신규 프로젝트를 하나 만들어야 하는데 벌써부터 기대되고 현재 사용중인 java 11 에서 17까지 어떤 변화들이 있었는지 확인하는 시간을 가져야 할 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>  Programming</category>
      <category>framework upgrade</category>
      <category>springboot upgrade</category>
      <category>스프링부트2.5</category>
      <category>시스템업그레이드</category>
      <category>업그레이드</category>
      <author>케이치</author>
      <guid isPermaLink="true">https://keichee.tistory.com/479</guid>
      <comments>https://keichee.tistory.com/479#entry479comment</comments>
      <pubDate>Fri, 29 Dec 2023 13:13:59 +0900</pubDate>
    </item>
  </channel>
</rss>