반응형

git 캐시를 삭제 후 다시 프로젝트를 PUSH 해줍니다.

 

git rm -r --cached .
git add .
git commit -m "DELETE git cached"

 

추가적으로 .gitignore에 파일이 등록되어 앞으로 파일이 repository에 안 올라가도 히스토리를 통해서 기존 파일 확인이 가능합니다.

중요한 정보가 노출되는 불상사를 막기 위해서는 히스토리도 삭제를 해줘야 합니다.

 

설정 파일인 yml 파일의 히스토리를 삭제해 보도록 하겠습니다. 

--ignore-unmatch 파일 경로( git repository 기준의 경로값)

 

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch *.yml" --prune-empty --tag-name-filter cat -- --all
git push origin master --force

 

이상으로 git 캐시 삭제와 히스토리 삭제를 알아보았습니다!

728x90
반응형

'Git' 카테고리의 다른 글

[Git] Mac SSH키 생성  (0) 2022.03.12
[Git] 기존 프로젝트 Git Repository 연결  (0) 2021.06.06
[Git] push 했는데 잔디가 안 심어질 때..  (0) 2021.05.09
[Git] SSH키 설정  (0) 2020.12.12
반응형

토이 프로젝트로 혼자서 클라우드 서비스를 이용하여 웹 개발부터 배포까지 온 과정을 경험해 보았습니다.

이 과정을 단계별로 나누어서 정리해 보려고 합니다.!

많은 피드백은 감사합니다!

 

목차 

STEP 01) NCP 서버 

STEP 02) AWS RDS, S3

STEP 03) Web Application 개발

STEP 04) Jenkins pipeline 배포

STEP 05) Domain 등록

 

 


 

* Web Application 개발은 앞에서 살펴보았던 AWS 서비스를 사용하는 방법만 소개하도록 하겠습니다.

 

개발 환경

 - SpringBoot 2.6.6

 - Mariadb 2.7.5

 - Gradle 7.4.1

 

1. RDS 연결(yml 설정)

  - 이전 RDS 설정 확인

spring:
  datasource:
    url: jdbc:mariadb://rds end point 주소 + prot + schema name
      예) jdbc:mariadb://rds.amazonaws.com:3306/rdstest
    driver-class-name: org.mariadb.jdbc.Driver
    username: admin
    password: 패스워드

 

2. S3 연결

  - 이전 S3 설정 확인

1.  spring cloud starter 의존성 추가

  - build.gradlew

implementation 'io.awspring.cloud:spring-cloud-starter-aws:2.3.1'

 

2. yml 설정

cloud:
  aws:
    credentials:
      access-key: access key
      secret-key: secret key
    s3:
      region: ap-northeast-2
      endpoint: s3-bucket

 

  - access key, secrey key 새 액세스 키 만들기로 생성

 

 

- region, endpoint 작성

  endpoint는 :::뒤에 복/붙

 

AwsS3Config.java

 

package com.bumblebee.dailyspecial.domain.aws;

import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author bumblebee
 */
@Configuration
public class AwsS3Config {

    @Value("${cloud.aws.credentials.access-key}")
    private String accessKey;

    @Value("${cloud.aws.credentials.secret-key}")
    private String secretKey;

    @Value("${cloud.aws.s3.region}")
    private String region;

    @Bean
    public AmazonS3Client amazonS3Client() {
        BasicAWSCredentials awsCreds = new BasicAWSCredentials(accessKey, secretKey);
        return (AmazonS3Client) AmazonS3ClientBuilder.standard()
                .withRegion(region)
                .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
                .build();
    }

}

 

AwsS3Service.java

 

package com.bumblebee.dailyspecial.domain.aws;

import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.bumblebee.dailyspecial.domain.comutils.CommonUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;

/**
 * @author bumblebee
 */
@Slf4j
@RequiredArgsConstructor
@Service
public class AwsS3Service {

    private final AmazonS3Client amazonS3Client;

    @Value("${cloud.aws.s3.endpoint}")
    private String bucketName;

    public String uploadFileV1(String category, MultipartFile multipartFile) {
        validateFileExists(multipartFile);

        String fileName = CommonUtils.buildFileName(category, multipartFile.getOriginalFilename());

        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setContentType(multipartFile.getContentType());

        try (InputStream inputStream = multipartFile.getInputStream()) {
            amazonS3Client.putObject(new PutObjectRequest(bucketName, fileName, inputStream, objectMetadata)
                    .withCannedAcl(CannedAccessControlList.PublicRead));
        } catch (IOException e) {
//            throw new FileUploadFailedException();
        }

        return amazonS3Client.getUrl(bucketName, fileName).toString();
    }

    private void validateFileExists(MultipartFile multipartFile) {
        if (multipartFile.isEmpty()) {
//            throw new EmptyFileException();
        }
    }

}

 

AwsS3Config class에 amazonS3Client 메소드를 @Bean으로 등록합니다.

파일을 업로드가 필요한 로직에 AwsS3Service class에서 uploadFIleV1 메소드를 이용해서 S3에 업로드 합니다.

예)

awsS3Service.uploadFileV1("Img", multipartFile);

 

그 외 다운로드 및 다중 업로드 기능도 제공하고 있습니다.

 

참조

  - Springboot로 S3 파일 업로드하기

728x90
반응형
반응형

SSH 키 생성 

1. 터미널 실행 후 아래 명령어 실행

    - cat ~/.ssh/id_rsa.pub 

 

2. 기존에 SSH키가 있다면 위에 명령어로 SSH 키 출력된다.

 

3. No such file or directory 문구가 나온 경우 아래 명령어 실행

     - ssh-keygen

 

4. 비밀번호 설정

     - Enter키로 기본 값 그대로 생성 권장

 

 

 * github ssh 등록은 다음글에서 확인

    - https://gyucheolk.tistory.com/9?category=828085

 

[Git] SSH키 설정

GitHub을 사용하면서 매번 push 할 때마다 로그인하는 게 힘들어서.. 찾아보던 중 ssh 설정에 대해서 알게 되었습니다. 1. cmd 창에 ssh-keygen를 입력해서 ssh키를 생성한다.  - id_rsa, id_rsa.pub 파일 두개가

gyucheolk.tistory.com

 

 

 

 

 

 

728x90
반응형

'Git' 카테고리의 다른 글

Spring git .gitignore 적용 안될 때  (0) 2022.10.06
[Git] 기존 프로젝트 Git Repository 연결  (0) 2021.06.06
[Git] push 했는데 잔디가 안 심어질 때..  (0) 2021.05.09
[Git] SSH키 설정  (0) 2020.12.12
반응형

1. GitHub NEW repository 생성

 

2. HTTPS 주소 복사

 

3. Terminal, git bash 접속 후 해당 프로젝트 폴더로 이동

 

4. git init

5. git remote add origin HTTPS 주소 붙여넣기

5. git remote -v (연결된 주소 확인)

* git remote 삭제

git remote remove origin

 

연결 끝!

6. git add .

7. git commit -m "First Project"

8. git push origin master

9. 원격 레포지토리 확인

 

 

* gitignore 파일에 적용 안될 때 git 캐시 삭제 후 다시 commit -> push

git rm -r --cached .
728x90
반응형

'Git' 카테고리의 다른 글

Spring git .gitignore 적용 안될 때  (0) 2022.10.06
[Git] Mac SSH키 생성  (0) 2022.03.12
[Git] push 했는데 잔디가 안 심어질 때..  (0) 2021.05.09
[Git] SSH키 설정  (0) 2020.12.12
반응형

어느 날 갑자기 노트북이(삼성 노트북) 무한 부팅되는 현상을 겪고 이를 해결하기 위해서 포맷을 진행했다.. 후.. 

다음에는 삼성 노트북 안 써야지.. 

새로운 마음으로 각종 Tool들 설치하고 개발환경 세팅 진행하고 개인 프로젝트도 다시 git이랑 연동해서 열심히 잔디를 심고 있다고 생각을 했는데..(웬걸.. 코드가 merge는 되고 있었으나 잔디는 심어지지 않고 있었다.. )

부랴부랴 구글링.. 

사용자 정보가 다르면 이런 경우가 발생할 수 있다고 한다.

 

내 git 설정 확인

  - git config --list

 

 

 혹여 (END)가 나와서 빠져나갈 수 없는 상황이라면 q를 누르자

 

사용자 변경

  - git config --global user.name "name"

  - git config --global user.email "이메일@gmail.com"

 

자신의 git 계정에 맞게 설정을 변경하면 다시 잔디가 심어진다~

다시 풍성한 잔디를 위하여~

 

728x90
반응형

'Git' 카테고리의 다른 글

Spring git .gitignore 적용 안될 때  (0) 2022.10.06
[Git] Mac SSH키 생성  (0) 2022.03.12
[Git] 기존 프로젝트 Git Repository 연결  (0) 2021.06.06
[Git] SSH키 설정  (0) 2020.12.12
반응형

GitHub을 사용하면서 매번 push 할 때마다 로그인하는 게 힘들어서..
찾아보던 중 ssh 설정에 대해서 알게 되었습니다.

 

 

1. cmd 창에 ssh-keygen를 입력해서 ssh키를 생성한다.

   - id_rsa, id_rsa.pub 파일 두개가 생성됩니다. 

   - id_rsa 파일은 private key로 내 컴퓨터에만 저장되어 있고 누구에게도 공유되어서는 안됩니다.

   - id_rsa.pub 파일은 public key로 접속하고자 하는 원격 컴퓨터에 copy해서 저장합니다.

   - id_rsa key를 가지고 있는 사람은 id_rsa.pub key를 가지고 있는 사람의 컴퓨터에 접속할 수 있다는 약속

 

아래부터는 Git Bash를 사용하였습니다. 위 과정도 Git Bash를 사용하셔도 무관합니다.

 

2. cat id_rsa.pub 입력 후 출력되는 key를 복사합니다.(※오차 없이 복사해야 합니다.)

3. GitHub에 들어가셔서 오른쪽에 Settings를 클릭합니다.

 

4. SSH and GPG keys를 클릭 후 New SSH key를 선택합니다.

 

5. 원하는 Title를 작성하시고 2번에서 복사한 key 값을 아래 Key에 붙여 넣고 Add SSH key 버튼을 클릭합니다.

  -  git 원격 조장소에 public key를 저장이 됐습니다.

 

6. Git Repository를 생성 후 SSH 주소를 clone하면 끝!

 

7. 저는 기존에 사용하고 있던 Repository에 SSH인증 추가가 필요해서 GitBash에서 해당 파일 위치로 이동한 후
git config remote.origin.url (ssh 주소) 등록하였습니다.

 

 

참고 

opentutorials.org/module/2676/15433

 

로그인 없이 원격 저장소 이용하기 (Github) - 지옥에서 온 Git

수업소개 여기서는 ssh의 자동 로그인 기능을 통해서 편리하게 git을 사용하는 방법을 배웁니다. 수업

opentutorials.org

728x90
반응형

+ Recent posts