1. pom.xml 추가
<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud</artifactId>
  <version>0.20.3-alpha</version>
</dependency>

2. source 코드
String token  = null;
        try {
            
            File file = new File(KEY_DIR + SEPARATOR + "your key file.json"); # 서비스 계정 Json 파일 명시
            InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
            GoogleCredential credential= GoogleCredential.fromStream(inputStream);

            List<String> COMPUTE_SCOPES =Collections.singletonList(ComputeScopes.COMPUTE);
            if (credential.createScopedRequired()) {
                credential = credential.createScoped(COMPUTE_SCOPES);
            }
            
            credential.refreshToken();
            token = credential.getAccessToken();
            Assert.assertNotNull(token);
                
        } catch (IOException e) {
            Assert.assertNotNull(token);
        }

실제 서비스 계정이 존재 하지 않는다면 token 값에 NULL이 떨어진다.


공통 모듈 형상 참고 사이트

https://github.com/DISID/disid-proofs/tree/master/spring-boot-multimodule




부모가 되는 spring-boot-multimodule 프로젝트의 pom.xml 내부를 확인 하면 모듈 들이 존재 한다.


    <modules>

      <module>model</module>

      <module>repository</module>

      <module>service-api</module>

      <module>service-impl</module>

      <module>application</module>

    </modules>


해당 모듈들은 각 하위 프로젝트의 이름들이 명시 되어 있어야 한다.


<packaging>pom</packaging>

또한 packaging을 jar가 아닌 pom으로 선언 되어있어야 한다.






하위 프로젝트 application의 pom을 확인하면

    <parent>

        <groupId>sample.multimodule</groupId>

        <artifactId>sample.multimodule</artifactId>

        <version>0.0.1-SNAPSHOT</version>

    </parent>


<parent> 태그 안에 부모가 되는 프로젝트의 groupId, artifactId, version을 선언 해야 한다.

자기 자신은의

<packaging>war</packaging>

packaging은 배포 파일 >> war, jar로 선언해야 한다.


저의 경우 공통 컨트롤러 프로젝트 하나에 여러개의 서비스 프로젝트를 모듈화 하였는데 만약 core 프로젝트가 필요하다면

      <!-- Project modules -->

      <dependency>

        <groupId>sample.multimodule</groupId>

        <artifactId>sample.multimodule.service.impl</artifactId>

        <version>${project.version}</version>

      </dependency>

core 프로젝트를 dependency하여 주면 된다.


최종적으로 선언하고 maven 빌드 해주시면 각 프로젝트끼리 배포 된 jar, war파일을 바라보며 서비스가 실행 된다.


pom.xml에서의 다른 패키지들과 플러그인들을 선언 할 경우 가장 최상위 부모 pom에 선언하면 다른 프로젝트는 부모의 라이브러리를 참조 한다.













        

SDK란 무엇인가?

Software Development Kit 의 약자로 API와 비슷한 의미를 가진다. 
SDK는 원래 API를 사용하여 프로그램을 개발하는 마이크로소프트사에서 제공하는 윈도우즈용 프로그램 개발킷을 의미 
하지만 지금은 의미가 전용되어 API와 거의 같은 뜻으로 쓰인다.


1. AWS SDK Maven

       <dependency>

            <groupId>com.amazonaws</groupId>

            <artifactId>aws-java-sdk</artifactId>

            <version>1.11.119</version>

        </dependency>

        <dependency>

            <groupId>com.google.code.typica</groupId>

            <artifactId>typica</artifactId>

            <version>1.3</version>

        </dependency>


AWS에서는 하루에 기능이 3개 이상 개발 된다고 한다.

AWS SDK를 가장 최신 버전으로 사용하게 되면 버전이 하나라도 올라 갈 수록 메소드의 기능, 설정 값들이 지속적으로 변경 되기 때문에 이전에 사용했던 메소드나 변수를 사용 못 할 경우가 있다.


가장 최신의 메이저 버전을 선택 후 개발 하는 것이 현명 한 방법인 것 같다.


AWS SDK 깃 주소 https://github.com/aws/aws-sdk-java

+ Recent posts