vscode 포맷팅 없이 저장하기

  • F1 > File: Save without Formatting

  • format on save 를 사용할 때,

  • 크기가 큰 json 파일이 있을 수 있다

  • 처음에는 // prettier-ignore을 최상단에 두어서 포맷팅 하지 않게 하였는데
  • 주석을 넣으면 json파일을 읽지 못하게 되었다
  • 그래서 명령 팔레트 열고 save 쳐보니까 포맷팅 없이 저장하는 방법이 있었다!

참고

내가 사랑하는 vscode 단축키, 명령, 확장도구 모음

  • vscode 관련 글을 여럿 썼는데, 검색해서 찾기에 조각조각인 내용들이 있어
  • 하나의 글에 정리하려고 한다

cli

terminal
1
2
3
4
5
# 현재 디렉터리에서 code 열기
code .

# 현재 디렉터리를 vscode현재창에서 열기
code . -r

단축키

  • F1 ; show all commands ; 명령 팔레트 열기
  • ctrl p ; go to file ; 파일 열기
  • ctrl alft arrow ; move editor into next group ; 분할창 이동
  • F2 ; rename symbol ; 변수명 변경
  • ctrl shift \ ; go to bracket ; 괄호로 이동
  • ctrl shift r ; refactor ; 리팩토링
  • shift alt rifhtarrow ; expand selection ; 확장 선택
  • shift alt leftarrow ; shrink selection ; 축소 선택
  • shift alt i ; add cursors to line ends ; 선택영역의 라인마다 개별 커서
  • ctrl rightarrow ; cursor word end right ; 다음 단어로 이동
  • ctrl leftarrow ; cursor word left ; 이전 단어로 이동
  • ctrl shift v ; markdown preview ; 마크다운 미리보기
  • ctrl d ; add selection to next find match ; 현재 커서와 동일한 키워드들을 찾아서 선택
  • F12 ; go to definition ; 선언부로이동
  • ctrl leftclick ; go to definition ; 선언부로이동
  • alt F12 ; peek definition / peek references ; 선언, 참조 보기
  • ctrl 0 ; focus into side bar ; 사이드바 포커스
  • ctrl 1 ; focus editor group ; 에디터 포커스
  • ctrl shift . ; focus breadcrumbs ; 브레드크럼 포커스
  • ctrl t ; go to symbol in workspace ; 심볼로 바로가기 (범위 ; 워크스페이스 전체)
  • ctrl shift o ; go to symbol in editor ; 심볼로 바로가기 (범위 ; 현재 포커스된 파일)
  • ctrl ` ; toggle terminal ; 터미널뷰 토글
  • ctrl g ; go to line/colum ; 커서이동 ; 라인번호,칼럼번호

확장도구

  • ⭐ prettier ; 코드 포매터

  • ⭐ eslint ; 린트

  • ⭐ shell-launcher ; 여러 터미널 구성

  • ⭐ code-settings-sync ; vscode setting 클라우드 저장

  • ⭐ JavaScript (ES6) code snippets ; 코드 스니펫, 자동완성 도구

  • ⭐ TabOut ; 탭키로 괄호 탈출

  • vscode-pandoc ; md to word

  • live share ; 실시간 멀티유저 코드 편집

  • vscode-sql-formatter ; sql 포매터

  • ascii tree generator ; 디렉터리 트리 스트링 생성

  • auto rename tag ; html 태그 자동 리네임

  • bracket pair colorizer ; 괄호색 구분

  • indent-rainbow ; 들여쓰기 색 구분

  • ⭐ live server

  • ⭐ material icon theme

  • ⭐ remote - ssh

  • path intellisense

  • rest client

좋은 사용자

사용자

  • 이론에 대해 잘 몰라도 사용은 할 수 있다
  • 사용해보면서 이 이론, 개념이 어떤 일을 할 수 있는지 알게 된다
  • 그 이론, 개념이 내부적으로 어떻게 동작하는지 모르지만
  • 컴퓨터 덕분에 복잡한 것을 쉽게 사용, 경험해 볼 수 있다
  • 그래픽 도구로 이미지를 편집할 때에도
  • 클릭 몇 번이면 멋진 효과를 줄 수 있다
  • 내부적으로 어떻게 동작하는지 모르지만
  • 이 도구를 사용하면 어떤 결과가 나오는지 알 수 있다
  • 그러면서 이 도구를 어떻게 만들었는지 궁금해지고
  • 그 원리에 대해 궁금해질 때도 있다
  • 또는 이 도구를 사용했을 때 이런 결과가 나오니까
  • 적절히 응용해서 더 멋진 결과를 만들어 낼 수도 있다
  • 프로그램은 보통 내부적으로 어떤 일을 하는지 사용자는 알 수 없고, 딱히 알 필요도 없다
  • 나는 OOP에서 추상화와 캡슐화가 이런 의미도 포함한다고 생각한다
  • 좋은 사용자, 또 좋은 사용자를 만드는 사람이 되자

참고

aws credentials 여러개

  • 여러개의 자격 증명 프로필을 가질 수 있다
  • 이 경우에 aws cli, aws sam cli 등 커맨드라인을 사용할 때
  • 프로필을 지정해 줘야한다

프로필 추가

terminal
1
2
# aws configure --profile {profile name}
aws configure --profile newprofile

AWS Access Key ID [None]: new
AWS Secret Access Key [None]: newkey
Default region name [None]:
Default output format [None]:

  • aws configure --profile {profile name} 명령을 치면 위 처럼 나오는데
  • 여기에 키아이디와 키를 입력한다
%USERPROFILE%/.aws/credentials
1
2
3
4
5
6
7
[default]
aws_access_key_id = xxxxxxxxxxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

[newprofile]
aws_access_key_id = new
aws_secret_access_key = newkey
  • %USERPROFILE%/.aws/credentials 파일을 열어보면 위처럼 [default] 프로필 아래에
  • 새로운 프로필이 등록되었을 것이다

프로필 스위치

  • 나는 두 가지 방법을 써봤다

방법 1; AWS_PROFILE 환경 변수 설정

  • 환경 변수 AWS_PROFILE을 원하는 프로필명으로 설정한다
  • set AWS_PROFILE {profilename}
  • setx AWS_PROFILE {profilename}
  • 이렇게 2가지를 사용할 수 있다
  • set은 해당 터미널에서만 적용된다. 해당 터미널이 닫히면 같이 날라간다
  • setx는 모든 터미널에서 적용된다
  • setx의 경우 모든 터미널을 닫았다가 열어야 적용된다. vscode 전부 닫았다가 켜야 적용된다
1
2
3
4
5
# bash
echo $AWS_PROFILE

# cmd (windows)
echo %AWS_PROFILE%
  • 환경 변수 적용 확인을 꼭하자
  • 방법 1은 가장 자주 쓰는 프로필을 지정할 때 좋을 것 같다

방법 2; 옵션 사용

  • 환경변수 세팅 말고,
  • aws cli를 사용할 때 --profile옵션을 줄 수 있다
  • aws cli를 사용하다 보면 옵션을 주지 않아도 프로필이 한 개가 아니면 명령을 실행하다가도 어떤 프로필을 사용할지 물어본다
  • 근데 실수로 다른 계정에 배포를 할 수 있으니까.. --profile 옵션을 쓰는 게 좋을 것 같다
  • sam cli의 경우 deploy 할 때 sam deploy --profile newprofile 이런 식으로 할 수 있겠다

방법 3 (번외?); config file 사용 (aws-sdk)

  • cli에 적용되는 것은 아닌데, nodejs app에서 aws sdk 자격 증명하는데 json 파일을 쓸 수 있다
  • 로컬에서 개발하고 클라우드 환경으로 올릴 때, 그 환경마다 aws configure 하는 게 귀찮다
config.json
1
2
3
4
5
{
"accessKeyId": "xxxxxxxxxxxxxxxxxxxx",
"secretAccessKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"region": "ap-northeast-2"
}
example.js
1
2
3
import AWS from 'aws-sdk';
import path from 'path';
AWS.config.loadFromPath(path.join(__dirname, './config.json'));
  • json 파일로 자격 증명할 수 있다

참고

aws lambda에서 git쓰기

arn:aws:lambda:us-east-1:553035198032:layer:git-lambda2:8

상황

  • 람다에서 git 명령을 사용하고 싶다

레이어 추가

1
2
3
4
5
6
7
8
9
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
CodeUri: hello-world/
Handler: app.lambdaHandler
Runtime: nodejs14.x
Layers:
- 'arn:aws:lambda:us-east-1:553035198032:layer:git-lambda2:8' # 여기를 추가!!
  • sam template.yaml에서는 위와 같이 추가한다
  • 또는 aws console로 직접 해당 람다에 가서 추가해 줄 수 있다

람다에서 깃 쓸 때 고려사항

  • 람다에서는 가급적 가벼운 일을 해야 한다
  • git clone 한다면 /tmp 디렉터리에서 한다 (clone 옵션을 살펴서 최대한 필요한 것만 가져오자)
  • 인증은 Personal access tokens을 사용했다
    • 토큰이 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 이렇게 있을 때,
    • https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/{레포 오너}/{레포 명}.git
    • 이렇게 사용할 수 있다

참고