분류 전체보기 검색 결과

178개 발견
  1. 미리보기
    2020.04.06 - mr.november11

    [node.js] AWS SDK사용하여 S3 버킷에 업로드하기

  2. 미리보기
    2020.04.03 - mr.november11

    메이븐(maven) 빌드 시 "Source option 5 is no longer supperted." 에러가 발생할 경우 해결 방법

  3. 미리보기
    2020.03.31 - mr.november11

    [React] Github Pages로 리액트 프로젝트 무료 호스팅하기

  4. 미리보기
    2020.03.31 - mr.november11

    [git] VS Code 편집기를 git diff 툴로 활용하기

  5. 미리보기
    2020.03.19 - mr.november11

    [AWS] Aurora RDS에서 ' Too many connections' 에러 발생 시 원인과 해결방법

  6. 미리보기
    2020.03.17 - mr.november11

    git에서 파일, 폴더명에 대소문자 구분이 안 될 때

  7. 미리보기
    2020.03.12 - mr.november11

    git 에서 신규 브랜치 생성 후 checkout 이 안 될 때

  8. 미리보기
    2020.03.03 - mr.november11

    [AWS] RDS 데이터 백업 및 복구 방법

참고 사이트 : https://aws.amazon.com/ko/sdk-for-node-js/

예제 코드 

aws-sdk 라이브러리를 활용하여 파일 경로에 해당하는 파일을 s3 로 업로드한다. 

AceessKey 는 s3 upload 권한을 가져야 한다. 

const AWS = require('aws-sdk');
const fs = require('fs');
const path = require('path');

const accessKeyId = '<ACCESS_KEY>';
const secretAccessKey = '<SECRET_ACCESS_KEY>';
const region = 'ap-northeast-2';
const bucket = '<BUCKET_NAME>';
const s3 = new AWS.S3({accessKeyId, secretAccessKey, region});

const fileName = <FILE_NAME>;

const fileStream = fs.createReadStream(fileName);
fileStream.on('error', function(err) {
  console.log('File Error', err);
});

const uploadParams = {
  Bucket: bucket,
  Key: path.basename(fileName),
  Body: fileStream,
};

s3.upload(uploadParams, function(err, data) {
  if (err) {
    console.log('Error', err);
  }
  if (data) {
    console.log('Upload Success', data.Location);
  }
});

 

 

다른 카테고리의 글 목록

node.js 카테고리의 포스트를 톺아봅니다

현상

메이븐(maven) 빌드 시 "Source option 5 is no longer supperted." 에러가 발생할 경우

해결방법

프로젝트 내 pom.xml 파일에 다음과 같이 properties를 추가한다. 

 <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring.version>5.0.0.RC2</spring.version>
</properties>

sping.version은 원래 pom.xml에 있던 프로퍼티다.

maven.compiler.source, maven.compiler.target 만 추가하면 된다.  

다른 카테고리의 글 목록

Spring 카테고리의 포스트를 톺아봅니다
참고 사이트 : https://reactgo.com/deploy-react-app-github-pages/

리액트로 생성한 정적 웹페이지는 AWS의 S3, Heroku, Github Pages 등을 사용하여 무료 또는 저렴한 가격으로 호스팅할 수 있습니다.

Heroku의 경우에는 한국 Region을 지원하지 않기 때문에 접속 시 해외망을 경유하여 속도가 매우 느립니다. 

AWS S3의 경우에는 소액이지만 S3 공간에 대한 금액이 발생합니다. 

 

따라서 무료로 사용 가능한 Github Pages를 활용하여 리액트 프로젝트를 호스팅 해보겠습니다. 

Github Page는 Github에서 제공하는 웹 호스팅 서비스로 무료로 사용하기 위해서는 Gibhub 리포지터리를 공개형(Public)으로 설정해야 합니다. 보안상 소스 공개가 불가능한 프로젝트라면 AWS S3를 추천드립니다. 

 

이번 튜토리얼은 gh-pages라는 라이브러리를 활용하며 다음과 같이 진행합니다. 

 

1. CRA로 테스트용 리액트 프로젝트 생성

$ npx create-react-app github-pages-test
$ cd github-pages-test
$ code . (MacOS로 VS Code 사용 시)

 

2. Github repo 생성 (Github pages를 사용하기 위해서는 Public으로 repo를 생성해야 합니다.) 

3. 테스트용 프로젝트 Github 세팅

echo "# github-pages-test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/november11th/github-pages-test.git
git push -u origin master

 

4. Github 프로젝트 repo 내 Settings로 이동 

    - GitHub Pages 메뉴에서 Source를 master branch로 지정하여 웹사이트 URL을 확인합니다.

       예제에서는 https://november11th.github.io/github-pages-test/ 입니다. 

5. 프로젝트 내 package.json 파일에 homepage 프로퍼티 설정

 

6. 프로젝트 내 gh-pages 모듈 설치 

yarn add gh-pages

 

7. 프로젝트 내 package.json 파일에 다음 predeploy, deploy 스크립트 명령어 추가

"scripts":{
 "predeploy": "react-scripts build",
 "deploy": "gh-pages -d build",
}

 

8. 프로젝트에서 yarn deploy 실행

$ yarn deploy                                                                                                            1 ↵
yarn run v1.21.1
$ react-scripts build
Creating an optimized production build...
Compiled successfully.

File sizes after gzip:

  39.4 KB  build/static/js/2.389e231c.chunk.js
  787 B    build/static/js/runtime-main.85847e19.js
  654 B    build/static/js/main.17df9291.chunk.js
  547 B    build/static/css/main.5f361e03.chunk.css

The project was built assuming it is hosted at /github-pages-test/.
You can control this with the homepage field in your package.json.

The build folder is ready to be deployed.

Find out more about deployment here:

  bit.ly/CRA-deploy

$ gh-pages -d build
Published
✨  Done in 15.57s.

yarn deploy가 문제 없이 실행 되었다면 Github repo 내 gh-pages 브랜치가 추가 생성되었습니다.

 

 

9. 다시 Github 프로젝트 repo 내 Settings로 이동하여 GitHub Pages 메뉴에서 Source를 변경합니다.
    이번에는 master가 아닌 방금 생성된 gh-pages 브랜치를 지정합니다. 

 

10. 이제 https://november11th.github.io/github-pages-test/로 접속하면 다음과 같이 CRA로 생성한 테스트 웹사이트가 화면상에 출력됩니다. 이후 코드가 변경될 시에는 yarn deploy로 변경사항을 바로 Gitub pages에 배포할 수 있습니다. 

다른 카테고리의 글 목록

React 카테고리의 포스트를 톺아봅니다

[git] VS Code 편집기를 git diff 툴로 활용하기

2020. 3. 31. 19:41 - mr.november11

1. ~/.gitconfig 파일 내 diff 관련 설정을 추가한다(또는 수정한다).

[diff]
    tool = vscode
[difftool "vscode"]
    cmd = code --wait --diff $LOCAL $REMOTE

2. git difftool <branch 이름> 명령어로 diff 를 실행한다. 

 

3. VS Code 왼쪽 상단 아이콘을 클릭하여 CHANGES 파일 리스트를 확인하고 변경된 소스 코드 내역을 비교한다. 

다른 카테고리의 글 목록

리뷰/기타 카테고리의 포스트를 톺아봅니다

문제 현상

DBeaver로 RDS 접속 시 아래와 같은 에러 메시지가 발생하며 SQL 쿼리 실행이 불가능한 상황이 발생했다. 

 Too many connections

 

분석

CPU 나 메모리 상으로는 큰 부하가 없는 상태이며 DB 연결은 45개에 근접한 상태이다. 

확인 결과 현재 사용중인 Amazon Aurora DB의 max connection 제한에 근접하여 발생한 문제였다. 
(db.t2.small 타입의 인스턴스 기준으로 최대 45개)

Instance Class

max_connections Default Value

db.t2.small

45

db.t2.medium

90

db.r3.large

1000

db.r3.xlarge

2000

db.r3.2xlarge

3000

db.r3.4xlarge

4000

db.r3.8xlarge

5000

RDS 설정 확인 시 max_connections 파라미터의 값은 아래와 같은 계산식을 통해 도출된다. 

GREATEST({log(DBInstanceClassMemory/805306368)*45},{log(DBInstanceClassMemory/8187281408)*1000})

해결방법

문제 해결을 위해 DB 클러스터 파라미터 그룹과 일반 파라미터 그룹의 max_connections의 값을 현재 값인 45에서 90으로 상향했다.

상향 후에는 connection 문제 없이 SQL 쿼리에 성공한다. 

 

AWS Console 상에서 수정한 max_connection 값은 아래 쿼리로 확인할 수 있다. 

show variables like 'max_connections'; 

관련 문서 : https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Performance.htm

'AWS' 카테고리의 다른 글

NestJS에서 AWS S3로 파일 업로드하기  (0) 2022.01.09
[AWS] RDS 데이터 백업 및 복구 방법  (0) 2020.03.03

다른 카테고리의 글 목록

AWS 카테고리의 포스트를 톺아봅니다

git 에서 git에서 파일, 폴더명에 대소문자 구분이 안 되어 문제가 발생하는 경우가 있다. 
아래 명령어를 사용하면 간단하게 문제를 해결할 수 있다. 

git config core.ignorecase false

 

git 파일 리스트는 아래 명령어로 확인할 수 있다. 

$ git ls-files                                                                                                           ✔
App.css
App.js

다른 카테고리의 글 목록

Etc 카테고리의 포스트를 톺아봅니다

git checkout newBranch 명령어로 브랜치 전환이 안 되는경우

$ git checkout newBranch                                                                                     
error: pathspec 'newBranch' did not match any file(s) known to git

git repo의 정보 갱신이 필요하다.

git remote update  
$ git checkout newBranch                                                                                     
Branch 'newBranch' set up to track remote branch 'newBranch' from 'origin'.

다른 카테고리의 글 목록

Etc 카테고리의 포스트를 톺아봅니다

[AWS] RDS 데이터 백업 및 복구 방법

2020. 3. 3. 16:19 - mr.november11

진행하다보면 

 

ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

ERROR 1215 (HY000) at line 239: Cannot add foreign key constraint.

 

등 자잘한 에러가 많이 발생하는데요.

 

관련 에러들이 발생하지 않는 검증된 명령어로 정리했습니다. 

 

- 백업 명령어 

mysqldump \                                                                                                                                             
--host= <백업할 Host> \
--column-statistics=0 \
--user=<유저 아이디> --password=<패스워드> \
--default-character-set=utf8mb4 --set-charset \
--compact --extended-insert --quick --hex-blob \
--single-transaction \
--events --routines --triggers \
--databases <데이터베이스> --set-gtid-purged=OFF > <덤프 파일명>

- 복구 명령어

mysql -u <유저 아이디> -h <복구할 Host> -p -D <데이터베이스> < <덤프 파일명>

 

RDS 복구 시 아래와 같이 SUPER 권한 문제가 발생할 수 있습니다. 

 

ERROR 1227 (42000) at line 2: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

 

이 경우 RDS 의 파라미터 설정에서 log_bin_trust_function_creators 값을 1로 설정한 후 변경 사항을 저장해야 합니다.

 

다른 카테고리의 글 목록

AWS 카테고리의 포스트를 톺아봅니다