Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/shoucheng3/spring-cloud__spring-cloud-config_cve-2020-5410_2-1-8-release
Authentication & AuthorizationEncryption/Decryption ToolsConfiguration AuditingCloud SecurityDevSecOpsAPI Security
GitHubshoucheng3/spring-cloud__spring-cloud-config_cve-2020-5410_2-1-8-release

spring-cloud__spring-cloud-config_CVE-2020-5410_2-1-8-RELEASE

분산 시스템을 위한 중앙화된 구성 서버로, HTTP API, Git 기반 스토리지, 속성 암호화/복호화, Vault, JDBC, 로컬 파일시스템과의 통합을 제공합니다.

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
71년 전아직 검토되지 않음

//// 이 파일을 편집하지 마십시오. 자동 생성되었습니다. 이 파일에 대한 수동 변경은 다시 생성될 때 손실됩니다. 대신 src/main/asciidoc/ 디렉토리의 파일을 편집하십시오. ////

image::https://circleci.com/gh/spring-cloud/spring-cloud-config/tree/master.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-cloud/spring-cloud-config/tree/master"] image::https://codecov.io/gh/spring-cloud/spring-cloud-config/branch/master/graph/badge.svg["Codecov", link="https://codecov.io/gh/spring-cloud/spring-cloud-config/branch/master"] image::https://api.codacy.com/project/badge/Grade/f064024a072c477e97dca6ed5a70fccd?branch=master["Codacy 코드 품질", link="https://www.codacy.com/app/Spring-Cloud/spring-cloud-config?branch=master&utm_source=github.com&utm_medium=referral&utm_content=spring-cloud/spring-cloud-config&utm_campaign=Badge_Grade"]

Spring Cloud Config는 분산 시스템에서 외부화된 구성을 위한 서버 측 및 클라이언트 측 지원을 제공합니다. Config Server를 사용하면 모든 환경에 걸쳐 애플리케이션의 외부 속성을 중앙에서 관리할 수 있습니다. 클라이언트와 서버의 개념은 Spring Environment 및 PropertySource 추상화와 동일하게 매핑되므로 Spring 애플리케이션에 매우 잘 맞지만 모든 언어로 실행되는 모든 애플리케이션에서 사용할 수 있습니다. 애플리케이션이 개발에서 테스트, 프로덕션으로의 배포 파이프라인을 거치면서 해당 환경 간의 구성을 관리할 수 있으며 마이그레이션 시 애플리케이션이 실행에 필요한 모든 것을 가지고 있음을 확신할 수 있습니다. 서버 스토리지 백엔드의 기본 구현은 git을 사용하므로 구성 환경의 레이블 버전을 쉽게 지원할 수 있을 뿐만 아니라 콘텐츠 관리에 다양한 도구를 사용할 수 있습니다. 대체 구현을 쉽게 추가하고 Spring 구성을 통해 연결할 수 있습니다.

== 기능

=== Spring Cloud Config Server

Spring Cloud Config Server는 다음과 같은 이점을 제공합니다:

  • 외부 구성을 위한 HTTP 리소스 기반 API (name-value 쌍 또는 동등한 YAML 콘텐츠)
  • 속성 값 암호화 및 복호화 (대칭 또는 비대칭)
  • @EnableConfigServer를 사용하여 Spring Boot 애플리케이션에 쉽게 내장 가능

=== Spring Cloud Config Client

특히 Spring 애플리케이션의 경우 Spring Cloud Config Client를 사용하면 다음을 수행할 수 있습니다:

  • Config Server에 바인딩하고 원격 속성 소스로 Spring Environment를 초기화합니다.
  • 속성 값 암호화 및 복호화 (대칭 또는 비대칭).
  • 구성 변경 시 재초기화하려는 Spring @Beans를 위한 @RefreshScope.
  • 관리 엔드포인트 사용: ** /env - Environment 업데이트 및 @ConfigurationProperties 및 로그 레벨 재바인딩. ** /refresh - @RefreshScope 빈 새로 고침. ** /restart - Spring 컨텍스트 재시작 (기본적으로 비활성화). ** /pause 및 /resume - Lifecycle 메서드 호출 (ApplicationContext의 stop() 및 ).

== 빠른 시작

이 빠른 시작에서는 Spring Cloud Config Server의 서버와 클라이언트를 모두 사용하는 과정을 안내합니다.

먼저, 다음과 같이 서버를 시작합니다:


$ cd spring-cloud-config-server $ ../mvnw spring-boot:run

서버는 Spring Boot 애플리케이션이므로 선호하는 경우 IDE에서 실행할 수도 있습니다 (메인 클래스는 ConfigServerApplication입니다).

다음으로 다음과 같이 클라이언트를 시도합니다:


$ curl localhost:8888/foo/development {"name":"foo","label":"master","propertySources":[ {"name":"https://github.com/scratches/config-repo/foo-development.properties","source":{"bar":"spam"}}, {"name":"https://github.com/scratches/config-repo/foo.properties","source":{"foo":"bar"}} ]}

속성 소스를 찾기 위한 기본 전략은 git 저장소 (spring.cloud.config.server.git.uri에 위치)를 복제하고 이를 사용하여 미니 SpringApplication을 초기화하는 것입니다. 미니 애플리케이션의 Environment는 속성 소스를 열거하고 JSON 엔드포인트에 게시하는 데 사용됩니다.

HTTP 서비스는 다음 형식의 리소스를 제공합니다:


/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties

여기서 application은 SpringApplication의 spring.config.name으로 주입되며 (일반 Spring Boot 앱에서 일반적으로 application), profile은 활성 프로파일 (또는 쉼표로 구분된 속성 목록), label은 선택적 git 레이블입니다 (기본값은 master).

Spring Cloud Config Server는 원격 클라이언트를 위해 다양한 소스에서 구성을 가져옵니다. 다음 예제는 git 저장소 (제공되어야 함)에서 구성을 가져옵니다:

[source,yaml]

spring: cloud: config: server: git: uri: https://github.com/spring-cloud-samples/config-repo

다른 소스로는 JDBC 호환 데이터베이스, Subversion, Hashicorp Vault, Credhub 및 로컬 파일 시스템이 있습니다.

=== 클라이언트 측 사용법

애플리케이션에서 이러한 기능을 사용하려면 spring-cloud-config-client에 의존하는 Spring Boot 애플리케이션으로 빌드할 수 있습니다 (예시는 config-client의 테스트 케이스 또는 샘플 애플리케이션 참조). 의존성을 추가하는 가장 편리한 방법은 Spring Boot 스타터 org.springframework.cloud:spring-cloud-starter-config를 사용하는 것입니다. Maven 사용자를 위한 부모 pom 및 BOM (spring-cloud-starter-parent)과 Gradle 및 Spring CLI 사용자를 위한 Spring IO 버전 관리 속성 파일도 있습니다. 다음 예제는 일반적인 Maven 구성을 보여줍니다:

[source,xml,indent=0] .pom.xml

root@kitploit:~
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>{spring-boot-docs-version}</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>{spring-cloud-version}</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

<dependencies>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-config</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>

<build>
	<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
	</plugins>
</build>

<!-- repositories also needed for snapshots and milestones -->

이제 다음과 같은 HTTP 서버와 같은 표준 Spring Boot 애플리케이션을 생성할 수 있습니다:


@SpringBootApplication @RestController public class Application {

root@kitploit:~
@RequestMapping("/")
public String home() {
    return "Hello World!";
}

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

}

이 HTTP 서버가 실행되면 기본 로컬 구성 서버 (실행 중인 경우)에서 포트 8888의 외부 구성을 가져옵니다. 시작 동작을 수정하려면 bootstrap.properties를 사용하여 구성 서버의 위치를 변경할 수 있습니다 (애플리케이션 컨텍스트의 부트스트랩 단계를 위한 application.properties와 유사). 다음 예제와 같습니다:


spring.cloud.config.uri: http://myconfigserver.com

기본적으로 애플리케이션 이름이 설정되지 않은 경우 application이 사용됩니다. 이름을 수정하려면 다음 속성을 bootstrap.properties 파일에 추가할 수 있습니다:


spring.application.name: myapp

NOTE: ${spring.application.name} 속성을 설정할 때 앱 이름 앞에 예약어 application-을 접두사로 사용하지 마십시오. 올바른 속성 소스를 확인하는 데 문제가 발생할 수 있습니다.

부트스트랩 속성은 /env 엔드포인트에 높은 우선순위 속성 소스로 표시됩니다. 다음 예제와 같습니다:


$ curl localhost:8080/env { "profiles":[], "configService:https://github.com/spring-cloud-samples/config-repo/bar.properties":{"foo":"bar"}, "servletContextInitParams":{}, "systemProperties":{...}, ... }

```configService:<원격 저장소 URL>/<파일 이름>이라는 속성 소스는 값이 bar인 foo` 속성을 포함하며 가장 높은 우선순위입니다.

NOTE: 속성 소스 이름의 URL은 git 저장소이지 구성 서버 URL이 아닙니다.

=== 샘플 애플리케이션

https://github.com/spring-cloud/spring-cloud-config/tree/master/spring-cloud-config-sample[여기]에서 샘플 애플리케이션을 찾을 수 있습니다. Spring Boot 애플리케이션이므로 일반적인 메커니즘 (예: mvn spring-boot:run)을 사용하여 실행할 수 있습니다. 실행되면 http://localhost:8888 (구성 가능한 기본값)에서 구성 서버를 찾으므로 서버도 실행하여 함께 작동하는 것을 볼 수 있습니다.

샘플에는 구성 서버도 동일한 JVM (다른 포트 사용)에서 시작되고 테스트는 git 구성 저장소의 환경 속성이 있는지 확인하는 테스트 케이스가 있습니다. 구성 서버의 위치를 변경하려면 bootstrap.yml (또는 시스템 속성 및 기타 위치)에서 spring.cloud.config.uri를 설정할 수 있습니다.

테스트 케이스에는 동일한 방식으로 서버를 실행하는 main() 메서드가 있습니다 (로그에서 포트 확인). 따라서 단일 프로세스에서 전체 시스템을 실행하고 조작할 수 있습니다 (예: IDE에서 main() 메서드 실행). main() 메서드는 git 저장소의 작업 디렉토리로 target/config를 사용하므로 로컬에서 변경하고 실행 중인 앱에 반영되는 것을 확인할 수 있습니다. 다음 예제는 테스트 케이스를 조작하는 세션을 보여줍니다:


$ curl localhost:8080/env/sample mytest $ vi target/config/mytest.properties .. change value of "sample", optionally commit $ curl localhost:8080/refresh ["sample"] $ curl localhost:8080/env/sample sampleValue

Refresh 엔드포인트는 "sample" 속성이 변경되었음을 보고합니다.

== 빌드

:jdkversion: 1.7

=== 기본 컴파일 및 테스트

소스를 빌드하려면 JDK {jdkversion}을 설치해야 합니다.

Spring Cloud는 대부분의 빌드 관련 활동에 Maven을 사용하며, 관심 있는 프로젝트를 복제하고 다음을 입력하면 빠르게 시작할 수 있습니다.


$ ./mvnw install

NOTE: Maven (>=3.3.3)을 직접 설치하고 아래 예제에서 ./mvnw 대신 mvn 명령을 실행할 수도 있습니다. 이렇게 하는 경우 로컬 Maven 설정에 Spring 사전 릴리스 아티팩트에 대한 저장소 선언이 없으면 -P spring을 추가해야 할 수도 있습니다.

NOTE: MAVEN_OPTS 환경 변수를 -Xmx512m -XX:MaxPermSize=128m과 같은 값으로 설정하여 Maven에 사용 가능한 메모리 양을 늘려야 할 수도 있습니다. 우리는 .mvn 구성에서 이를 처리하려고 노력하므로, 빌드를 성공시키기 위해 이를 수행해야 하는 경우 설정이 소스 제어에 추가되도록 티켓을 제출해 주십시오.

프로젝트 빌드 방법에 대한 힌트는 .travis.yml 파일이 있으면 확인하십시오. "script" 및 "install" 명령이 있어야 합니다. 또한 로컬에서 실행해야 하는 서비스가 있는지 "services" 섹션을 확인하십시오 (예: mongo 또는 rabbit). "before_install"에서 찾을 수 있는 git 관련 부분은 git 자격 증명 설정과 관련되어 있으며 이미 가지고 있으므로 무시하십시오.

미들웨어가 필요한 프로젝트는 일반적으로 docker-compose.yml을 포함하므로 https://docs.docker.com/compose/[Docker Compose]를 사용하여 Docker 컨테이너에서 미들웨어 서버를 실행하는 것을 고려하십시오. https://github.com/spring-cloud-samples/scripts[scripts 데모 저장소]의 README에서 mongo, rabbit 및 redis의 일반적인 경우에 대한 구체적인 지침을 참조하십시오.

NOTE: 다른 모든 방법이 실패하면 .travis.yml의 명령으로 빌드하십시오 (일반적으로 ./mvnw install).

=== 문서

spring-cloud-build 모듈에는 "docs" 프로파일이 있으며, 이를 활성화하면 src/main/asciidoc에서 asciidoc 소스를 빌드하려고 시도합니다. 해당 프로세스의 일부로 README.adoc을 찾고 모든 include를 로드하여 처리하지만 구문 분석이나 렌더링 없이 ${main.basedir} (기본값은 ${basedir}, 즉 프로젝트 루트)로 복사합니다. README에 변경 사항이 있으면 Maven 빌드 후 수정된 파일로 올바른 위치에 나타납니다. 커밋하고 변경 사항을 푸시하기만 하면 됩니다.

=== 코드 작업

IDE 선호 사항이 없는 경우 코드 작업 시 https://www.springsource.com/developer/sts[Spring Tools Suite] 또는 https://eclipse.org[Eclipse]를 사용하는 것이 좋습니다. Maven 지원을 위해 https://eclipse.org/m2e/[m2eclipse] Eclipse 플러그인을 사용합니다. 다른 IDE 및 도구도 Maven 3.3.3 이상을 사용하는 한 문제 없이 작동합니다.

==== m2eclipse로 Eclipse에 가져오기

Eclipse 작업 시 https://eclipse.org/m2e/[m2eclipse] Eclipse 플러그인을 권장합니다. 아직 m2eclipse를 설치하지 않은 경우 "Eclipse marketplace"에서 사용할 수 있습니다.

NOTE: 이전 버전의 m2e는 Maven 3.3을 지원하지 않으므로 프로젝트를 Eclipse로 가져온 후 m2eclipse에 프로젝트에 맞는 올바른 프로파일을 사용하도록 알려야 합니다. 프로젝트의 POM과 관련된 여러 가지 오류가 표시되면 최신 설치가 있는지 확인하십시오. m2e를 업그레이드할 수 없는 경우 settings.xml에 "spring" 프로파일을 추가하십시오. 또는 부모 pom의 "spring" 프로파일에서 저장소 설정을 settings.xml로 복사할 수 있습니다.

==== m2eclipse 없이 Eclipse에 가져오기

m2eclipse를 사용하지 않으려면 다음 명령을 사용하여 Eclipse 프로젝트 메타데이터를 생성할 수 있습니다:

[indent=0]

root@kitploit:~
$ ./mvnw eclipse:eclipse

생성된 Eclipse 프로젝트는 file 메뉴에서 import existing projects를 선택하여 가져올 수 있습니다.

=== JCE

"Illegal key size"로 인한 예외가 발생하고 Sun의 JDK를 사용하는 경우 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files를 설치해야 합니다. 자세한 내용은 다음 링크를 참조하십시오:

https://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html[Java 6 JCE]

https://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html[Java 7 JCE]

https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html[Java 8 JCE]

JCE 파일을 사용 중인 JRE/JDK x64/x86 버전의 JDK/jre/lib/security 폴더에 압축을 풉니다.

== 기여

:spring-cloud-build-branch: master

Spring Cloud는 제한이 없는 Apache 2.0 라이선스로 출시되며, 매우 표준적인 Github 개발 프로세스를 따릅니다. 이슈는 Github tracker를 사용하고 풀 리퀘스트는 master에 병합합니다. 사소한 것이라도 주저하지 말고 기여해 주시기 바랍니다. 아래 지침을 따라 주십시오.

=== 기여자 라이선스 계약 서명

중요하지 않은 패치나 풀 리퀘스트를 수락하기 전에 https://cla.pivotal.io/sign/spring[기여자 라이선스 계약]에 서명해야 합니다. 기여자 계약에 서명한다고 해서 메인 저장소에 대한 커밋 권한이 부여되는 것은 아니지만, 기여를 수락할 수 있으며 수락 시 작성자 크레딧을 받게 됩니다. 활동적인 기여자는 핵심 팀에 합류하여 풀 리퀘스트를 병합할 수 있는 권한을 부여받을 수 있습니다.

=== 행동 강령

이 프로젝트는 기여자 규약 https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc[행동 강령]을 준수합니다. 참여함으로써 이 강령을 준수해야 합니다. 허용되지 않는 행동은 [email protected]로 신고해 주십시오.

=== 코드 규칙 및 관리

이 중 어느 것도 풀 리퀘스트에 필수 사항은 아니지만 모두 도움이 됩니다. 또한 원래 풀 리퀘스트 후 병합 전에 추가할 수 있습니다.

  • Spring Framework 코드 형식 규칙을 사용하십시오. Eclipse를 사용하는 경우 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring Cloud Build] 프로젝트의 eclipse-code-formatter.xml 파일을 사용하여 포맷터 설정을 가져올 수 있습니다. IntelliJ를 사용하는 경우 https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter Plugin]을 사용하여 동일한 파일을 가져올 수 있습니다.
  • 모든 새 .java 파일에는 최소한 사용자를 식별하는 @author 태그와 클래스의 용도에 대한 최소 한 단락의 간단한 Javadoc 클래스 주석이 있어야 합니다.
  • 모든 새 .java 파일에 ASF 라이선스 헤더 주석을 추가하십시오 (프로젝트의 기존 파일에서 복사).
  • 상당히 수정하는 .java 파일 (외관상 변경 이상)에 자신을 @author로 추가하십시오.
  • Javadoc을 추가하고 네임스페이스를 변경하는 경우 XSD 문서 요소를 추가하십시오.
  • 몇 가지 단위 테스트도 큰 도움이 됩니다. 누군가는 해야 합니다.
  • 다른 사람이 브랜치를 사용하지 않는 경우 현재 master (또는 메인 프로젝트의 다른 대상 브랜치)에 대해 리베이스하십시오.
  • 커밋 메시지를 작성할 때는 https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[이 규칙]을 따르고, 기존 이슈를 수정하는 경우 커밋 메시지 끝에 Fixes gh-XXXX (XXXX는 이슈 번호)를 추가하십시오.

=== Checkstyle

Spring Cloud Build에는 checkstyle 규칙 세트가 함께 제공됩니다. spring-cloud-build-tools 모듈에서 찾을 수 있습니다. 모듈에서 가장 주목할 만한 파일은 다음과 같습니다:

.spring-cloud-build-tools/

└── src    ├── checkstyle    │   └── checkstyle-suppressions.xml <3>    └── main    └── resources    ├── checkstyle-header.txt <2>    └── checkstyle.xml <1>

<1> 기본 Checkstyle 규칙 <2> 파일 헤더 설정 <3> 기본 억제 규칙

==== Checkstyle 구성

Checkstyle 규칙은 기본적으로 비활성화되어 있습니다. 프로젝트에 checkstyle을 추가하려면 다음 속성과 플러그인을 정의하기만 하면 됩니다.

.pom.xml

true <1> true <2> true <3> <4> io.spring.javaformat spring-javaformat-maven-plugin <5> org.apache.maven.plugins maven-checkstyle-plugin
root@kitploit:~
<reporting>
    <plugins>
        <plugin> <5>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
        </plugin>
    </plugins>
</reporting>
---- <1> Checkstyle 오류 발생 시 빌드 실패 <2> Checkstyle 위반 발생 시 빌드 실패 <3> Checkstyle이 테스트 소스도 분석함 <4> Spring Java Format 플러그인 추가 - 대부분의 Checkstyle 형식 규칙을 통과하도록 코드를 재구성합니다. <5> 빌드 및 보고 단계에 checkstyle 플러그인 추가

일부 규칙을 억제해야 하는 경우 (예: 줄 길이가 더 길어야 하는 경우) ${project.root}/src/checkstyle/checkstyle-suppressions.xml에 억제 내용을 포함하는 파일을 정의하는 것으로 충분합니다. 예:.projectRoot/src/checkstyle/checkstyle-suppresions.xml

----

${spring-cloud-build.rootFolder}/.editorconfig와 ${spring-cloud-build.rootFolder}/.springformat을 프로젝트에 복사하는 것이 좋습니다. 그러면 몇 가지 기본 서식 규칙이 적용됩니다. 다음 스크립트를 실행하여 복사할 수 있습니다:```bash $ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/.editorconfig -o .editorconfig $ touch .springformat

root@kitploit:~
=== IDE 설정

==== Intellij IDEA

Intellij를 설정하려면 코딩 컨벤션, 검사 프로필을 가져오고 Checkstyle 플러그인을 설정해야 합니다. 다음 파일들은 https://github.com/spring-cloud/spring-cloud-build/tree/master/spring-cloud-build-tools[Spring Cloud Build] 프로젝트에서 찾을 수 있습니다.

.spring-cloud-build-tools/
----
└── src
    ├── checkstyle
    │   └── checkstyle-suppressions.xml <3>
    └── main
        └── resources
            ├── checkstyle-header.txt <2>
            ├── checkstyle.xml <1>
            └── intellij
                ├── Intellij_Project_Defaults.xml <4>
                └── Intellij_Spring_Boot_Java_Conventions.xml <5>
----
<1> 기본 Checkstyle 규칙
<2> 파일 헤더 설정
<3> 기본 억제 규칙
<4> 대부분의 Checkstyle 규칙을 적용하는 Intellij 프로젝트 기본값
<5> 대부분의 Checkstyle 규칙을 적용하는 Intellij 프로젝트 스타일 컨벤션

.코드 스타일

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-code-style.png[Code style]

`File` -> `Settings` -> `Editor` -> `Code style`로 이동합니다. `Scheme` 섹션 옆의 아이콘을 클릭합니다. 그 다음 `Import Scheme` 값을 클릭하고 `Intellij IDEA code style XML` 옵션을 선택합니다. `spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml` 파일을 가져옵니다.

.검사 프로필

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-inspections.png[Code style]

`File` -> `Settings` -> `Editor` -> `Inspections`로 이동합니다. `Profile` 섹션 옆의 아이콘을 클릭합니다. 그 다음 `Import Profile`을 클릭하고 `spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml` 파일을 가져옵니다.

.Checkstyle

Intellij에서 Checkstyle을 사용하려면 `Checkstyle` 플러그인을 설치해야 합니다. 또한 `Assertions2Assertj` 플러그인을 설치하여 JUnit assertion을 자동 변환하는 것이 좋습니다.

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-checkstyle.png[Checkstyle]

`File` -> `Settings` -> `Other settings` -> `Checkstyle`로 이동합니다. `Configuration file` 섹션에서 `+` 아이콘을 클릭합니다. 그런 다음 checkstyle 규칙을 어디서 가져올지 정의해야 합니다. 위 이미지에서는 클론한 Spring Cloud Build 저장소에서 규칙을 가져왔습니다. 그러나 Spring Cloud Build의 GitHub 저장소를 가리킬 수도 있습니다(예: `checkstyle.xml`의 경우 `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml`). 다음 변수를 제공해야 합니다:

- `checkstyle.header.file` - 클론한 저장소에 있는 `spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` 파일 또는 `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL을 가리키십시오.
- `checkstyle.suppressions.file` - 기본 억제 파일입니다. 클론한 저장소에 있는 `spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` 파일 또는 `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` URL을 가리키십시오.
- `checkstyle.additional.suppressions.file` - 이 변수는 로컬 프로젝트의 억제 파일에 해당합니다. 예를 들어 `spring-cloud-contract`에서 작업 중이라면 `project-root/src/checkstyle/checkstyle-suppressions.xml` 폴더를 가리킵니다. `spring-cloud-contract`의 예시는 다음과 같습니다: `/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml`.

중요: `Scan Scope`를 `All sources`로 설정해야 합니다. 왜냐하면 프로덕션 및 테스트 소스 모두에 checkstyle 규칙을 적용하기 때문입니다.
도구 다운로드
start()
  • 부트스트랩 애플리케이션 컨텍스트: 주 애플리케이션의 상위 컨텍스트로, 원하는 모든 작업을 수행하도록 구성할 수 있습니다 (기본적으로 Config Server에 바인딩되고 속성 값을 복호화합니다).