Github Page

레이블이 IDE-VS Code인 게시물을 표시합니다. 모든 게시물 표시
레이블이 IDE-VS Code인 게시물을 표시합니다. 모든 게시물 표시

9/16/2025

VSCode Github 의 계정 2개 설정 (Window)

1. VS Code 의  Github 2개 계정 설정 

Github의 인증은 예전부터 SSH Key기반으로 제공을 해주고 있었으며, 서비스가 강화되면서 더 보안이 높은 인증들이 지원이 되고 있다. 

Linux에서 설정 한다고 하면, 사실 어렵지 않을 거라고 생각되어지며, Window 개발 환경이라면, 매번 제약이 따른다. 
사실 Linux에서 개발하는 게 가장 편하지만, 어쩔 수 없이 Window 기반으로 설정에 대해 정리하다.

  •  Github의 SSH Key 기반 2개 계정 설정 
Github 의 연결되는 거의 기본 인증 방식으로 SSH기반으로 사용하며  크게 어렵지는 않다. 
인터넷에 뒤져 보면 쉽게 가능하며, Github 의 신 기능들을 사용하는데, 많은 제약이 따른다.
SSH 기반으로 한다면, 기본 기능만 사용한다고 생각하면 될 것 같다. 

  •  Github의 SSH Key 추측 과 결론 
Github SSH Key로만 인증하여 할 경우, Github Action 와 Github Project 연결도 되려나 처음 생각했으나, 이것은 나중에 보니 다 나의 멍청한 의심인 것 같다. 
SSH기반으로 하면, Github Action 에 제한 있을 줄 알았는데, 별도 PAT(Personal Acess Tokens) 발급 받아서 하면, 제한된 기능이 동작이 된다.
Github Action (Secret) 
Github Project or Action 에서 관련 관련 정보들이 필요할 경우가 있다. 

  • Github Action 
처음 Github Action 기능 출시 할 때만 해도 영문 Manaul로 삽질 무지 했는데, AI(ChatGPT)가 너무 좋아져서 구지 이걸 작성을 직접 해야 하나 의문이 든다. 


  • Github HTTP PAT(Personal Acess Tokens)
PAT나온 지는 꽤 되었으며, 나도 사용한 지가 꽤 되었는데 매번 사용 설정이 좀 헷갈린다. 
PAT 기반 설정하는 방법은 
          Github 의 우측 프로필 아이콘-> Settings -> Developer Settings

말 그대로 PAT는 Token 이며, Hash 값이며  Password 사용하는 기능이다. 
발행 시 한번 만 복사할 기회가 주며, 그 다음에는 볼 수가 없다. 
그렇다고 너무 겁먹을 필요도 없는 게,  실수를 해도 다시 발행하면 되니 문제 없다. 

PAT 토큰, API Key 값과 비슷하며,  Password 사용되어진다. 

  • PAT(Personal Access Tokens)
  1. Fine-grained tokens  :  보안이 더 강화 되어 일일이 다 설정을 해야 하며 까다롭다.
  2. Tokens( Classic) : 일단 간단하게 쉽게 사용 가능 --> 가능하면, 이걸 선택 
    •  repo : Git 각 Respository 접근 
    •  gist : GIST
    •  project : Project 기능
    •  workflow : Github Action
이외 본인이 더 추가 할게 있다면, 읽어보고 더 선택하자 (추가적으로 변경도 가능하다)
Codespace 같은 경우는, Web broswer에서 직접 VS Code가 실행이 되어진다.
기간은 Custom으로 한 1년 설정하면 될 듯하다.



1.1 Window 의 자격 증명  (PAT 1개 설정) 

일단 HTTPS 기반의 PAT로 1개의 계정을 설정을 해보자.

  • Window 자격 증명 관리자( 실행 후 1개 계정 추가 ) 

  1.   제어판(Control Panel) → 사용자 계정(User Accounts) →자격 증명 관리자(Credential Manager)
  2.   우측 Window 자격 증명 (Credential Manager)
  3.   아래 일반 자격 증명 추가 

    •  인터넷 또는 네트워크 주소: git:https://github.com 
    •  사용자 이름: name
    • 패스워드: Token






1.2 각 Git System 설정(Config) 확인  

상위처럼 설정하고 아래와 같이 설정하면, 상위 1 개로 모두 관리가 되어진다.

  • Repository Git 의 설정 확인 
  1.  Resository Git 설정(config) 확인 : 
    1. gitconfig 분석:  각 아래로 gitconfig 분리되면서, 각 차이 구분 
      1. system : Git 설치되면서 설정  git/etc/gitconfig 
      2. global : 이 계정에 적용되어진 .gitconfig  
      3. local : 각 Respository 설정 .git/config 
    2. user.name
    3. user.email
    4. remote.xxxx 확인 
  2. .gitconfig 위치 확인 :  global 기반으로 확인 
    1. .gitconfig 파일의 위치 파악하고 변경 사항 확인 과 Backup 
    2. 본인이 직접 설정을 하고, 원하는 대로 확장 분리해서 설정  

> git config -h   // git config 관련 명령어들 확인
> git config --list // git config 설정된 것 확인
git config --list --show-origin --show-scope // globla/system 위치 확인


  • .gitconfig 위치 확인 과 각 설정 확인 
>   git config --list --show-origin --show-scope //system 보단 global에서 설정변경
```
system  file:C:/Program Files/Git/etc/gitconfig filter.lfs.required=true
system  file:C:/Program Files/Git/etc/gitconfig http.sslbackend=openssl
system  file:C:/Program Files/Git/etc/gitconfig http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt        
system  file:C:/Program Files/Git/etc/gitconfig core.autocrlf=true
system  file:C:/Program Files/Git/etc/gitconfig core.fscache=true
system  file:C:/Program Files/Git/etc/gitconfig core.symlinks=false
system  file:C:/Program Files/Git/etc/gitconfig pull.rebase=false
system  file:C:/Program Files/Git/etc/gitconfig credential.helper=manager-core
system  file:C:/Program Files/Git/etc/gitconfig credential.https://dev.azure.com.usehttppath=true
system  file:C:/Program Files/Git/etc/gitconfig init.defaultbranch=master
global  file:C:/SPB_Data/.gitconfig     core.autocrlf=true
global  file:C:/SPB_Data/.gitconfig     
...
```


  • Repository Git 의 설정 변경 
global 옵션이 들어가면, 거의 default 사용 생각하면 된다. 

# (중요) 자격 증명 의 Respository 마다 저장되는 것 방지 하고 상위 1개의 기반으로 사용

> git config --global credential.useHttpPath false


# GCM(Git Credential Manager) 통일 (자격증명)

> git config --global credential.helper manager-core




# (Global) 본인 User 설정 

> git config --global user.email "xxxx"

> git config --global user.name  xxxx


# (Global) 본인 User 확인

>  git config user.email

>  git config user.name 




  • Git의 기본 설정 값 (.gitconfig) 확인 과 변경 
.gitconfig  설정확인 (단일구성)
global로 설정되면, .gitconfig에 다 저장되어 관리되어지며, 이곳에서 직접 설정해도 좋다 

```
[user]
    name = xxx
    email = xxxx

[credential]
useHttpPath = false
helper = manager-core
```

  • Remote 정보 확인 및 설정 
> git remote -v
> git remote set-url origin https://github.com/<org>/<repo>
> git remote set-url origin https://github.com/<user>/<repo>


  • 실제 Respository 사용할 경우 
> git fetch 
> git pull origin main
> git clone  ssh:// or https:// 
> git push 



2. Window 의 자격 증명 (PAT 2개 구성 설정) 

일단 HTTPS 기반의 PAT로 2개의 계정을 설정을 해보자.

  • 자격 증명 관리자 2개 추가 

  1.   제어판\사용자 계정\자격 증명 관리자
  2.   우측 Window 자격증명 
  3.   아래 일반 자격 증명 추가 

    •  인터넷 또는 네트워크 주소: git:https://github.com 
    •  사용자 이름: name
    • 패스워드: Token







2.1 Git 의 설정(.gitconfig)  재구성  

나의 경우, 각 Directory 마다 다르게 설정이 되게 원해서 아래와 같이 설정 구성.
우선 상위에서 찾은 global .gitconfig 파일 위치를 찾아서,  
기존 파일(.gitconfig) 1개의 단일 구성이 아니라, 2단계 재구성하자 

  • Git 의 기본 설정(.gitconfig) 값 파일 구성 
  1. .gitconfig  : 전체 설정으로 동일하게 적용 
    1. .gitconfig-personal : 특정 Direcoty 의   나의 프로젝트에만 부분 적용 
    2. .gitconfig-company: 특정 Directory 의  회사 프로젝트에만 부분 적용 

  • .gitconfig 설정 구성 
```
# 공통
[core]
    autocrlf = true

# Github 계정-1  HTTPS+PAT
[includeIf "gitdir/i:D:/Works/Project_personal/**"]
    path = C:/SPB_Data/.gitconfig-personal

# Github 계정-2 HTTPS+PAT
[includeIf "gitdir/i:D:/Works/Project/**"]
    path = C:/SPB_Data/.gitconfig-company

# useHttpPath False 가 2개의 User를 제공못함
[credential]
useHttpPath = false
helper = manager-core

```

  • .gitconfig-company
```
[user]
    name = xxxx
    email = xxxxx
```

  • .gitconfig-personal
```
[user]
    name = xxxx
    email = xxxxx
```

  • Git의  설정 재 확인 
.gitconfig 위치 와 .gitconfig-company 와 .gitconfig-personal 각 확인 
git config --list --show-origin --show-scope


처음에 상위처럼 하면, 될 줄 알았으며, 될 거라고 생각을 했다. 
하지만, 보안 이슈로 상위처럼 2개의 계정으로만, 쉽게 자격 증명이 되어지지는 않는다.
1개의 계정일 경우는 크게 문제가 없지만, 2개부터는 httppath false 로는 안되어지는 것을 알았다.

즉 상위처럼, 간단히 2개 설정으로 관리 할 수 없다. 

  • HTTPS 통해 SSH 연결 
이 방법도 생각을 해보았으나, Username 분리가 되지 않아 이 부분 포기~


2.2 Git 기본 설정 값 보완 

HTTPS 기반의 PAT로 사용을 2개 이상 사용하고 싶다면, credential.useHttpPath true 옵션설정하면,
HTTPS PAT로 2개의 계정 이용은 가능하지만, 자격 증명 관리하기가 너무 힘들어 이 방법은 그냥 포기했다. 

  • Git의  설정 재 확인 

# "Repo 경로까지 쓰는 저장" true 만

> git config --global credential.useHttpPath true



매번 Repository가 자격 증명에 등록되는 구조로 자격 증명을 보면, 모든 Repository 등록되어, 관리가 힘들다

안 쓰기로 결정함 



3. Window 의 계정 2개 (PAT 1개 + SSH 1개 혼합 구성)

  • 자격 증명 관리자 2개 추가 

  1.   제어판\사용자 계정\자격 증명 관리자
  2.   우측 Window 자격증명 
    1. 기존 2개에서 1개 삭제 







  • 나의 결론 
현재 이 방법으로 사용하고 있으며,  분리해서 잘 동작을 전체 확인을 하였다. 
SSO까지는 별도로 언급을 안 하겠으며,  잘 동작하여 이걸로 사용하기로 최종 결정하였다.
더불어, 구지 2개가 아니라, SSH이므로 여러 개로도 설정 가능하다 


3.1 Git 의 설정(.gitconfig)  재구성  


우선 상위에서 찾은 global .gitconfig 파일 위치를 찾아서,  
기존 파일(.gitconfig) 1개의 단일 구성이 아니라, 2단계 재구성하자  

  • Git 의 기본 설정 값 파일 구성 
  1. .gitconfig  : 전체 설정으로 동일하게 적용 
    1. .gitconfig-personal : 특정 Direcoty 의   나의 프로젝트에만 부분 적용 
    2. .gitconfig-company: 특정 Directory 의  회사 프로젝트에만 부분 적용 

  • .gitconfig 설정 구성 
```
# 공통
[core]
    autocrlf = true

# Github 계정-1  SSH
[includeIf "gitdir/i:D:/Works/Project_personal/**"]
    path = C:/SPB_Data/.gitconfig-personal

# Github 계정-2  HTTPS+PAT
[includeIf "gitdir/i:D:/Works/Project/**"]
    path = C:/SPB_Data/.gitconfig-company

```

  • .gitconfig-company
HTTPS 이므로 관련 부분 설정 
```
[user]
    name = xxxx
    email = xxxxx

[credential]
useHttpPath = false
helper = manager-core

```

  • .gitconfig-personal
SSH로 연결이 잘 안되어, 아래와 같이 직접 Core에 sshCommand 주어 진행 
```
[user]
    name = xxxx
    email = xxxxx

[core]
    sshCommand = C:/Windows/System32/OpenSSH/ssh.exe -F C:/Users/jhlee/.ssh/config
```



3.2 SSH의 Key 생성 과 Github 설정 

Window에서 Github 설정을 위해서 SSH 관련 설정을 진행하자. 

새 SSH 키 생성 및 ssh-agent에 추가

GitHub 계정에 새 SSH 키 추가

  • SSH key 생성 과 확인 
ECDSA or RSA 도 다 괜찮으니, 본인 원하는 것으로 생성 

>  ssh-keygen -t ed25519 -C "your_email@example.com" -f "$env:USERPROFILE\.ssh\id_ed25519"  // 엔터 2번 

> cd $env:USERPROFILE\.ssh\


  • Github에 Public Key 등록 
id_ed25519.pub


상위 Github Manual 더 자세히 나오므로 그곳을 참조 하시길~ 


3.3 SSH Config 설정 


상위에서 만든 Key 기반으로 Github 설정 .ssh/conifg  추가하여 설정하자. 

  • SSH 동작 확인 
> ssh -V                                                              
OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2

  • .ssh/config 
파일 수정 후, 권한을 쓰기 권한을 없애자
```
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
```

  • SSH 기본 테스트 
상위 .ssh/config 권한 쓰기 제거 확인 후

> ssh -T -v git@github.com      // 상위 .ssh/config -> hostname 
....
Hi JeonghunLee! You've successfully authenticated, but GitHub does not provide shell access.

SSH 연결 테스트


3.4 Git의 설정 확인 및 테스트 

상위에서 우선 .gitconfig 위치를 찾아 아래와 같이 1개의 구성이 아니라 단계 별로 구성해보자 
본인의 Respository로 가서, 이제 각 Git 의 동작들 을 확인을 해보자 

  • Git의  설정 재 확인 
  1. .gitconfig 
    1. .gitconfig-company
    2. .gitconfig-personal 
상위 부분 다 적용되었는지 확인 
git config --list --show-origin --show-scope


  • Git의  기존 SSH 설정 삭제 (나는 사용)
상위 .gitconfig-personal 의 설정 이며, 상위 설정대로 함 
>  git config --unset core.sshCommand


  • Git 의 Remote 정보 확인 및 설정 (HTTPS -> SSH변경) 
> git remote -v
> git remote set-url origin ssh://github.com:<user>/<repo>  // 상위 .ssh/config hostname  
> git remote set-url origin github.com:<user>/<repo>  // 상위 .ssh/config hostname  


  • Git Remote 접근 가능 확인 
> git ls-remote origin


  • Git 의 TEST
> git fetch 
> git pull origin main

11/17/2023

Github 최근 변화사항 정리

1. Github 변화사항 정리   

최근에 Github을 많이 사용하면서, 이전과 많이 변화 되어 진게 많아 각 부분을 간단히 정리한다.
사실 생기지는 다 오래되어진 기능이나, 최근에 변화를 많이 느끼는 것 같아 각 부분을 정리한다. 
또한 Github Setting 역시 이전과는 많이 변경되어졌다. 


Github Docs
설명서도 한글지원 된다. 


1.1 Github 의 보안인증강화 

  • Github 의 인증 2 단계인증 
나의 경우는 Beta일 때 부터 Google OTP를 이용하여 사용하였는데, 이제 거의 사용을 해야 하는 듯 하다. 
그리고, Android App 이름도 Google OTP에서 이제 Google Authenticator으로 변경되어졌다. 

Github 인증 


1.2 Github 의 Web-IDE 기능제공 

간단하게 Web Browser에서 VS Code 같은 IDE를 사용가능하며, 이외 다양한 IDE 확장제공을 해주고 있다. 
기능은 점점 확장되어지는 것으로 보여지며, 돌아가는 원리는 Web Browser에서 동작하는 Node-RED 생각하면 될 것 같다.  
내가 현재 좋아하는 Node.js로 구성을 했을 것 같다. 
(Node-RED 블로그 글도, 마무리해야하는데, 게을러서 못하고 있음)


  • Github의 Codespace 기능제공 
Cloud Web 기반의 Github에서 IDE Program인, VS Code를 사용할 수 있지만, 아직 초기단계라 거의 많이 지원이 안되어지며, 
자꾸 Web VS Code가 죽으며, 아직 VS Code Extension 도 너무 제한적이다. 
현재 시점이 지나서 좀 나아진 다음에 사용해도 안 늦을 것 같다. 

Github의 Codespace
Github에서 Cloud 기반으로 Virtual Machine 위에서 상위 VS Code 및 각 IDE를 제공해줌 
  
Github의 Web VS Code IDE 
VS Code 역시 node.js로 된걸로 알고 있으며, 이 것 역시 아마 Node.js 기반으로 돌아 갈것이라고 생각되어진다.

Github의 Web JetBrain IDE
사실이게 뭔지 몰라서, 사용해보고 있는데, 왠지 괜찮을 것 같다.
Jetbrain Site가면 각 IDE Tool 존재하여 나의 경우, CLion 사용했지만, 상위처럼 연결을 못함  


최근에는 Jupyter역시 많이 변경되어진 것 같으며, 이부분도 나중에 다시 확인해보도록 하겠다.

  • Github Codespace -> VS Code 
본인 Repository에 가서 우측 Code 버튼 -> Codespace에서 처음 한번 생성 한 후, VS Code 처럼 이용가능  
사용할때마다 더 VS Code가 개선되어지며, Extensions의 Program도 Upgrade되기 때문에 현재 그나마 좋음 

주의해야 할 것은 Cloud기반으로 하므로, 무료는 여러개를 동시에 사용이 안되어지는 것 같으며, 
Local VS Code와도 동기화가 된다고 한다.(이부분은 아직 못함) 
  

Github VS Code 세부내용 



1.3 Github 의 DevOps-CI/CD 기능확장 

  • Github Action 확장지원
옛날에는 Circle CI 기반으로 Webhook을 이용하여 사용했는데, 이제 Webhook 거의 필요가 없을 듯하다
각 Git Event도 Script 하나로 해결되어지니, 얼마나 편한가? (하지만 또 필요할지도?)

Github Action 기능에 많이 놀랬으며, 이거 가지고도 장난칠 게 너무 많다.
내가 원하면, 내가 원하는 Github Action도 확장하여 작성가능한 걸로 보일 뿐만 아니라, 
각 다른 언어들로 Github Action을 구성하여 만들 수 있는 걸로 보인다.
더불어 Docker 역시 맘대로 사용 가능한 것으로 보인다.   

가장 막강하게 변화되어진걸로 생각되어진다. 
누구나 쉽게 Cloud 기반으로 DevOps CI/CD를 이용하도록 하자.

Github Action CI/CD 구성 

Github Action 시작

Github Action 기반으로 Package 작업

Github Action 요금제

이부분은 누구나 쉽게 배울 수 있어, 추후 별도로 나중에 더 자세히 기술하겠다. 
현재 개인들에게는 무료로 제공을 해주는 것 같다 (현재 무료로 이용중이니)

Github Action 덕분에 최근 Circle CI를 들어가보니, 왠지 이거 때문에 Circle CI가 많은 변화가 있는 것 같다.
이제 Circle CI는 사용만 골치아플 뿐이지만, 추후 또 사용할 일 있다면 그때 다시 확인하자.


1.4 Github 의  Code 자동생성 

ChatGPT도 있는 마당에 내가 가장 기대하는 기능이지만, 무서운 기능으로 생각되어지며, 나중에 회사돈으로 사용할 일 있다면,
그때 사용하겠다. 

  • Github  Copilot 지원 
가장 기대되는 기능으로, 자동으로 Code를 작성해주는 기능으로  현재 무료가 아닌 것 같아, 함부로 사용을 못하지만,
현재 ChatGPT가 있으나, 궁금하기는 하다. 

Github Copilot 

Copilot 가격정책 



1.5 Github 의 기술블로그 및 Website 운영 

나의 경우는 별로 선호하지 않는 기능이며, 지금도 계속 변화 중이니, 나중에 다시 확인해보도록 하겠다. 
나도 대충하나 만들어놨으며, 별로 사용안한다. 

  • Github 의 Pages 기능확장 
각 기술블로그를 만들수 있으며, 사실 나는 선호하는지 않는다. 

Github Pages



1.6 Github 의 Project 관리와 문서관리  

  • Github 의 Project 기능제공  
Github 기반으로 Kanban 보드 부터 거의 JIRA 처럼 제공해주고 있으며, 지금도 계속 변화 중이다. 
현재는 지속적으로 사용안하지만, 개인적으로는 JIRA 만큼 기능제공해주고, 계속 변화 중이라,
나는 만족하며, 이전것은 Classic 이라고 하고, 또 새로운 버전 나왔다.  
각 기능은 아래 Manaul로 알아 보도록 하자. 

Github Project 
기본적으로 Project을 만들고 나서 아래 것들을 사용해야하며, 각 Issue와 label 및 Milestone도 별도로 사용가능하다. 

Github Issues
지속적으로 변경 중이며, 계속 Manual을 보도록~~~ (거의 JIRA처럼 사용가능)

Label 으로 구분 및 Milestone 기능확장 
꽤 괜찮은 것 같으며, 구분하기에 좋다 


  • Github 의 docs 와 wiki 문서관리 
Github에서 기본적으로 각 Repository에 README.md 기반으로 docs directory  만들어 각 Markdown기반으로 문서관리가 가능하다.  
이 뿐만 아니라, Wiki 와 이 Markdown의 확장부분을 보면되겠다. 
사실 사용하기가 좀 불편하기는 하지만, 무료로 사용한다는 점에서 강점이라고 생각되어진다.


Markdown 문서관리 
Github README.md 기반으로 docs 내부로 확장작성하여 문서작성가능. 

Markdown 기반으로 Diagram(Mermaid) 뿐만아니라 계속 다양하게 확장 중. 

이외 README.md에 Badge기능도 있으며, 이를 통해 각 연결된 Interface Website 결과도 쉽게 알수 있다. 

Github Wiki 
Github에서 Wiki를 지원 (요즘 거의 다 지원되니) 


Readthedoc 사용 
상위 docs Directory를 이용하여 쉽게 Readthedoc기반으로 문서관리 


1.7 Github 의 요금정책 

지속적으로 변경되어지니, 각 부분을 반드시 확인하도록 하자. 난 Free 요금제 

Billing and Plans

9/14/2022

VS Code Extension

1. VS Code Extension 

이전에 VS Code 와 관련해서 사용했던 것들을 아래와 같이 링크 

  • VS Code 기본사용 및 Extension 추천 
이전에 설치하여 주로 사용하던 걸로 Remote Development 관련설명 

  • VS Code Extension 저장장소 (본인계정에 저장)
C:\Users\jhlee\.vscode\extensions 저장되어짐 
** 만약 설치시 문제 생기면 상위부분에 가서 각 extensions 직접 삭제

각각의 VS Code extensions program들이 존재 및 설정값도 직접확인 가능 


1.1 VS Code Extension Tools

VS Code Extension 이 2020 과 2022년 비교를 하면 많이 달라졌으며, 현재 내가 주로 사용하고있는 Extension List들을 표시한다. 
그리고, VS Code Extension Program이 계속 Update 되고 사용법도 매번 조금씩 변경되므로, 각 세부사항은 Manaul을 반드시 참조 

  • VS Code Extension- Remote Package 필수사용  
MS사에서 제공하는 Remote Package로 요즘 한꺼번에 다 설치를 해줌(이전과 다름)

  • VS Code Extension- Markdown 관련사항 
Markdown 쉽게 작성하기 위해서 사용 

  • VS Code Extension- Hex File 볼 경우 

  • VS Code Extension- Git 관련사항 

  • VS Code Extension- Cmake 관련사항 
흐음 필요사항을 아직 모름

  • VS Code Extension- C/C++ 관련사항 
C/C++ 관련것으로 소스 분석용 설치 


1.2 VS Code Extension Tools for Comments

주석(Comments)에 관련부분들은 따로 분류하여 링크를 한다. 

Better Comments
가장 많이 사용되어지는 Tool로 현재 나는 Disable 
간단한 사용법은 아래이며, 실제 사이트에서 가서 Update가 되므로 상위에서 확인  

Doxygen Documentation Generator
Doxygen 과 Comment를 쉽게 생성하는방법 
소스위치에서 ( /** 만 입력한 후 엔터 ) 입력하며, Function 위/ File 맨위 각 다르게 생성 

Auto Comment Blocks
주석을 자동으로 Blocking 관리 ( /** or /*!  입력한 후 엔터) 입력 
상위를 이용하면 불필요

TODO Highlight
주석(Comment) 에 TODO/FIXME 쉽게 파악 

이외 Google Translate를 이용하여 주석 자동으로 번역해주는 기능을 비롯하여 다양하다.

1.3 VS Code Extension ESP-IDF

  • VS Code Extension (ESP-IDF 설치)
ESP-IDF 설치 
이전과 변경되어있으며, 쉽게 IDF를 설치를 진행한다.

최근꺼는 MS 의 Email 기반으로도 VS Code Extesion을 Sync를 맞출수 있는 것으로 보여진다.

Espressif IDF VS Code Extension (Node.js 소스)

VS Code Extension 설치위치 
  C:\Users\jhlee\.vscode\extensions


2. VS Code Extension 사용법


이전에 내가 작성한 VS Code Extension Tools 사용법들을 아래에 링크 


2.1 VS Code Remote Package 

VS Code에서 Remote에 있는 Linux Server or WSL를 연결하여 사용하는 법 

VS Code 에서 Remote X11 연결방법 
현재 필요 WSL을 사용하면 필요가 없어보이며, 외부에서 사용할 경우에만 필요 

VS Code 에서 WSL 설치 후 Remote 진행 


2.2 VS Code Git 사용 

VS Code는 기본적으로 Git Package가 없으므로 반드시 먼저 Git을 먼저 설치 한후 사용진행 
세부내용은 아래링크 확인 
 
VS Code에서 Git 사용법 

VS Code VersionControl 


2.3 VS Code JTAG 설정 및 Debug

이 부분은 매번 조금씩 변경되어왔으므로, 만약 더 최신버전을 사용한다면, 반드시 Manaul 참조


ESP32의 OpenOCD 관련설정 (거의 유사하지만 쉽게 설정가능)

  • launch.json
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "ESP32 Debugger",
            "type": "espidf", 
            "request": "launch",
            "gdbinitFile":"${workspaceFolder}/.vscode/gdbinit",    
                    
        }
    ]
}  

상위와 같이 ${workspaceFolder} 변수 이용 

  • settings.json 
{
// ESP-IDF 기반으로 개인적으로 생성하여,설정한 설정값들 (불편한것은, 직접 Setting.json에서 변경해야함)     
    "idf.RS485Port": "COM8",     
    "idf.RS485Baudrate": "921600",  
    "idf.RS485ResponseTimeout": "0.100", //0.050 -> 0.100
    "idf.RS485MaxUnit": "5",       
    "idf.RS485TimerInterval": "1", 
    "idf.RS485TesTimeHour": "10",      
    
//ESP-IDF 설치 후 환경설정 값들 (VS Code의 아래 버튼으로 변경가능)     
    "idf.adapterTargetName": "esp32",  
    "idf.flashType": "UART",
    "idf.portWin": "COM3",                  
    "idf.svdFilePath": "${workspaceFolder}/esp32.svd",  //OpenOCD를 위해서 Register Map을 보기 위한 도구 https://github.com/espressif/svd
    "idf.openOcdConfigs": [                             //OpenOCD의 설정 이부분이 이해가 안된다면, OpenOCD를 참조 
        "interface/ftdi/esp32_devkitj_v1.cfg",
        "target/esp32.cfg"
    ]
} 

상위 설정된 값은 tasks.json의 command에서 사용가능하며, template으로 숨겨진 설정값도 존재한다. 

VS Code에 Espressif IDF 포함된 Template 으로 좀 더 다양하게 확인가능 
Command가 Window/Linux 지원해야하므로, 두개로 분리 운영 

상위 소스는 C:\Users\jhlee\.vscode\extensions\espressif.esp-idf-extension-xxxx\\templates\.vscode 존재하며, 나의 경우 직접 수정해서 사용함 

  • gdbinit
target remote :3333
set remote hardware-watchpoint-limit 2
symbol-file ./build/xxxxx.elf
mon reset halt
flushregs
thb app_main
c

2.4 VS Code Task 설정 및 사용법  

각 Project 마다 본인의 Task를 만들어서 TEST Program들을 쉽게 설치하고, Chainging도 가능하므로, 각 자동화도 가능하다. 

우선 내부적으로 사용되어지는 환경변수 및 VS Coe Extesion Tools 내부에서만 사용하는 환경변수들을 알아 두면 좋다. 
또한 dependson을 이용하여 다른 Task 와 Chaining도 가능하다. 

  • tasks.json (Window용)
아래와 같이 자동화 및 Window에서도 Powershell을 이용하여 다양하게 확장가능하다.
만약 Linux/Window 같이 사용하고 자하면 command 위에 별도의 window용을 별도로 설정
{
// See task.json Manual in VSCode
// for the documentation about the tasks.json format
// 아래의 예제들은 내가 간단하게 사용하는 예제 중 일부를 가져온 것이며, 나의 경우, TEST Task가 너무 많아 이를 Chain해서 사용한다. 

    "version": "2.0.0",
    "tasks": [
        {
            "label": "IP Config",
            "type": "shell",
            "command": "ipconfig"
        }, 
// 기본 실행되는 위치가 workspaceFoder가 아닐 경우, 
//다음과 같이 Command를 연속해서 실행가능하며,아래와 같이 ; 세미콜론을 사용하자 (PowerShell Script는 관련 Manaul 참조하도록)   
        {
            "label": "TEST Release",
            "type": "shell",
            "command": "cd ${workspaceFolder}/release; ./makeFirmware.ps1"
        },          
        {
            "label": "ESP-IDF Erase ALL",
            "type": "shell",
            "command": "${userHome}/.espressif/python_env/idf4.2_py3.8_env/Scripts/python.exe ${userHome}/esp/esp-idf/components/esptool_py/esptool/esptool.py -p ${config:idf.portWin}  -b 460800 --before default_reset --after hard_reset --chip ${config:idf.adapterTargetName} erase_flash"
        },       
//아래와 같이 dependson을 사용하여 각 Command의 Label로 적어 Macro로 형식으로, Chain하여 사용하자
//아래처럼 실행하하면, TEST Release -> ESP-IDF Erase ALL -> ESP-IDF WRITE ALL        
        {
            "label": "ESP-IDF WRITE ALL",
            "type": "shell",
            "command": "${config:idf.pythonBinPathWin} ${userHome}/esp/esp-idf/components/esptool_py/esptool/esptool.py -p ${config:idf.portWin} -b 460800 --before default_reset --after hard_reset --chip ${config:idf.adapterTargetName} write_flash --flash_mode dio --flash_freq 80m --flash_size detect 0x070000 ${workspaceFolder}/release/firmware/mxx610-app.bin 0x1000 ${workspaceFolder}/release/firmware/bootloader.bin 0x10000 ${workspaceFolder}/release/firmware/partition-table.bin 0x15000 ${workspaceFolder}/release/firmware/ota_data_initial.bin 0x17000 ${workspaceFolder}/release/firmware/phy_init_data.bin 0x39000 ${workspaceFolder}/release/firmware/storage_data.bin",       
            "dependsOrder": "sequence",
            "dependsOn": ["TEST Release", "ESP-IDF Erase ALL", "ESP-IDF WRITE ALL"]
        
        },
//아래의 경우, 상위 내가 정의한 변수를 이용하여 각각 Python TEST Program을 Jenkins 처럼 사용하고 있다. 
        {
            "label": "TEST MODBUS-CHK-EventGR",
            "type": "shell",
            "command": "& D:/Tools/python/python-3.7.5-embed-amd64/python.exe ${workspaceFolder}/main/module/modbus/modbus_test_check_rspevent_general.py -p ${config:idf.RS485Port} -b ${config:idf.RS485Baudrate}  "
        },
        {
            "label": "TEST MODBUS-CHK-EventBT",
            "type": "shell",
            "command": "& D:/Tools/python/python-3.7.5-embed-amd64/python.exe ${workspaceFolder}/main/module/modbus/modbus_test_check_rspevent_burst.py -p ${config:idf.RS485Port} -b ${config:idf.RS485Baudrate}  -r ${config:idf.RS485ResponseTimeout}  -u ${config:idf.RS485MaxUnit}  -i ${config:idf.RS485TimerInterval} -t ${config:idf.RS485TesTimeHour}  "
        },
        {
            "label": "TEST MODBUS-CHK-SystemInfo",
            "type": "shell",
            "command": "& D:/Tools/python/python-3.7.5-embed-amd64/python.exe ${workspaceFolder}/main/module/modbus/modbus_test_check_systeminfo.py -p ${config:idf.RS485Port} -b ${config:idf.RS485Baudrate}  -r ${config:idf.RS485ResponseTimeout}  -u ${config:idf.RS485MaxUnit}  -i ${config:idf.RS485TimerInterval} -t ${config:idf.RS485TesTimeHour}  "
        },
        
//나의 경우는 다양하게 최대한 편한게 사용하도록 하고 있으며, Jenkins가 없이 쉽게 Task로 모든 TEST 가 가능하다 
        {
            "label": "TEST MQTT ONLY Subscribe",
            "type": "shell",
            "command": "& D:/Tools/python/python-3.7.5-embed-amd64/python.exe ${workspaceFolder}/main/module/mqtt/mqtt_only_subscribe.py"
        },
        {
            "label": "TEST MQTT General Publish",
            "type": "shell",
            "command": "& D:/Tools/python/python-3.7.5-embed-amd64/python.exe ${workspaceFolder}/main/module/mqtt/mqtt_publish_general.py"
        },
        {
            "label": "TEST MQTT RSPSetup Publish",
            "type": "shell",
            "command": "& D:/Tools/python/python-3.7.5-embed-amd64/python.exe ${workspaceFolder}/main/module/mqtt/mqtt_publish_rspsetup.py"
        },    
        
//다만 현재 Window인데, Embedded Python으로 설치해서 사용해야 다른 이에게 동일한 환경을 전해줄 수 있으므로, 추천         
// Linux에서도 VS Code가 사용가능한데, 좀 더 화려하게 사용가능하다. (grep.xargs,sed/awk 비롯하여 tee 등)  Python venv 기반으로 추천  
// EPS-IDF는 Window or Linux 이건 Python은 venv되어있지만, Window에서는 좀 venv를 사용하기가 좀 귀찮다. (export.ps1) 
        {
            "label": "TEST Python List",
            "type": "shell",
            "command": "& D:/Tools/python/python-3.7.5-embed-amd64/python.exe -m pip list  "
        },      
        
// 아래와 같이 Powershell에서 Linux의 Pipe를 비롯하여 간단한 명령어 비롯하여, tee 역시 지원가능하다, 
// Powershell이 매번 Upgrade 될때마다, 매번 Linux Command를 좀 더 다양하게 지원해주는 것 같다.              
        {
            "label": "TEST Shell",
            "type": "shell",
            "command": "echo Hellow | tee ${workspaceFolder}/test.log  "
        }           
     ]
}

모든예제를 기록할 수 없지만, 아래의 predefined 변수(variable)을 비롯하여, Powershell 변수(variable) 이외 외부 설정된 변수 (variable)가능 
더불어 조금 더 고급스럽게 사용하고자 한다면, Node.js는 필수인것 같다. 
이 부분은 추후 다시 사용하도록 하자 

참고로 VS Code도 계속 업그레이드 중이며, Task 내부 Command도 업그레이드 되면서 새로 추가된 것이니, 추후에도 계속 VS Code Manual는 봐야한다.
앞으로 계속 추가되어 변경되어질테니 ㅋㅋㅋ (나중에 Jenkins 없이 자동화로 해도 되겠다)

  • 상위 Tasks.json 과 launch.json 에 사용되어지는 내부환경변수(predefined)
  1. ${workspaceFolder}  : Project PATH
  2. ${userHome} : User Home PATH
VS Code에서 predefined-variables 내부변수로 반드시 확인 
각 값들은 기본으로 알아두도록하자 

  • Tasks.Json 세부 구성방법 
세부사항은 VS Code도 항상 업데이트 되므로 아래 사이트에서 사용방법과 구조를 확인
매번 VS Code가 업데이트 될때 마다 조금씩 변경됨 (Node.js도 지원됨) 
  1. version
  2. configurations
  3. tasks
  4. inputs

  • PowerShell 변수 사용법 
PowerShell에서 사용하는 변수를 동일하게 사용가능 

  • Tasks.json에서 외부 설정된 변수값 (settings.json) 사용법 
VS Extension에 이미 설정되어진것의 값 or settings.json 에서도 변수 값 가져와 tasks.json에서 사용가능하다.

예를들면 VS Code의 extension인 ESP-IDF를 설치하면, 아래에서 각 값들을 찾을수 있다. 
or VS Code의 각 Extension manual을 보면 각 값의 용도 설명을 알려준다. 

ESP-IDF 의 vscode-esp-idf-extension Github
설사 상위 Manual이 없다고 해도 .vscode/extensions/xxxxx 관련부분을 본인이 직접 분석하면된다. 

외부의 환경변수 값을 사용할 경우, 
아래와 같이 ${config:xxxxx} 로 형태로 사용하면된다.  
  1. ${config:idf.portWin} : 현재 settings.json 설정된 Port
  2. ${config:idf.adapterTargetName}: 현재 settings.json 설정된 Target
  3. ${config:idf.pythonBinPathWin} : ESP-IDF Python PATH

ESP-IDF ${config:xxxxx} 의 다양한 예제 
VS Extension에는 이미 숨겨진 환경값도 많으니, 관련사항을  찾아 보도록 하자
더불어 Task도 depends on을 이용하여 Chaining도 가능  


  • Tasks.json에서 Command들 간의 종속연결(depends) 
Tasks.json에서 Command를 많이 만들 경우, 한꺼번에 연속으로 실행하여, 자동화를 하고 싶을 경우가 많을 것이다.  
이 때 사용하는게 dependsOrder dependson 이며 이를 이용하여 쉽게 각 Command들을 종속연결하여 실행가능하다  
상위와 같이 간단히 자동화를 할수 있다. 

  • VSCode JSON 기본사용법 
JSON의 기본문법으로 어떻게 사용하는지 확인 



3. VS Code Tips Update 

주로 사용하는 것이 멀티커서 에디팅이며 다른 Tips들도 알아두도록하자. 

VS Code의 사용 Tips 관련사항 

VS Code Multi Cursor
좌측으로 이동정렬: Shift+Tab
우측으로 이동정렬: Tab



VS Code Markdown View

VS code Search / Modify (Regular Expression)

VS Code에서 diff 기능 

3/21/2022

VS Code Git 사용법 및 Merge

1. VS Code에서 Git 사용법 및 Merge  

VS Code기반으로 개발을 하다보니, Git도 자연스럽게 VS Code로 전부 해야 할 것 같아 관련자료들을 수집해보고, 테스트 해본다. 
VS Code에서 보면 주로 Source Control 와 GitLens로 이용하여 Git을 Control 하고 사용하는 것 같다. 

개인적으로 보면 GitLens는 잘 동작해서 좋기는 한데, 복잡해서 별로 사용하고 싶지가 않다.
난 소스트리 처럼 간단하고 심플한 기능으로 쉽게 동작되는 것이 너무 좋다. 
그래서 가능하다면, VS Code의 기본기능인 Source Control 이 GitLens보다 더 심플해서 이 기반으로 정리하려고 한다.  
항상 느끼지만, Git을 사용하다가 사용안하면 자꾸 명령어도 까먹는다. 


1.1 VS Code Version 기본 사용법  

  • VS Code 의 Source Control 준비 
VS Code의 Source Control 이동 후 Remote도 확인 가능하도록 아래와 같이 View를 확장 

아래그림 A. 버튼을 눌러 아래와 같이 Remote/Local 을 동시보도록 확장설정
  1. Source Control Repositories:  사실 Local 정보, 전체 Repository 를 Control, Remote Repostory를 쉽게 확인가능 
  2. Source Control: Local Source Git 정보, 주로 현재 소스 Control을 함 


상위그림 B. Git Graph: 각 Commit된 것을 Graph로 보여줌
상위그림 C. Branch:  Remote의 Branch로 정확하게 Checkout 기능


주의사항
상위 C. Branch를 선택하면 다른 Branch 와 tag가 나오는데, 이를 변경시 Checkout이 되어 소스가 변경되어진다. 


1.2 Git Checkout 방법 및 주의사항

  • Git Checkout 하기전 확인
상대방이 나 몰래 Remote에 Push를 했을 경우, 현재 나의 Local에는 이게 반영이 안되었으므로, 
반드시 Git Pull or Git Sync(Git Pull and Push)를 해줘야한다. 
그래야 SOURCE CONTROL REPOSITORIES 가 항상 Remote 와 동일해진다. 
Git 항상 다른 사람과 같이 작업하므로 이부분은 모든 부분에서 확인해야함 

  • Git Checkout 이란?
현재 수정 중 혹은 수정완료 후, 갑자기 다른 Commit or Branch 소스로 변경해서 각 소스를 확인해야 하는 경우가 발생한다. 
이때 다른 Git Commit or Git Branch으로 Local 소스변경하는 것이 Git Checkout이다. 


보통 VS Code에서 CheckoutGit Graph 기반상위 C.Branch 를 이용하여 사용하는 것이  가장 편한걸로 생각되어진다.

이때 새로 생성된 폴더와파일은 제거가 되지 않는 경우가 많으므로, 주의하도록 하자 


  • 방법-A  상위그림 C.Branch 선택시 할 경우 
Checkout 동일한 기능이지만, (Branch/Tag) 단위로만 이동되어지며, 쉽게 해당 Local 소스 변경되어진다. 
이전에 소스수정중이라면 반드시 주의해야하며 Backup용으로 새로받아 진행해도 된다. 

  • 방법-B  상위그림 B. Git Graph 기반의 만약 Commit 단위로 Checkout 
상위 B. Git Graph를 실행하여, 해당 원하는 Commit으로 찾아가 오른쪽 메뉴로 Checkout  현재 Local 소스변경하여 확인한다. 
이 역시 소스 수정중이라면 반드시 주의해야한다.   
 


이외에도 다양한 방법이 있겠지만, 나의 경우는 이게 편하다. 

1.3 Git Stash 기능 

Checkout을 하여 다른 것을 보고 싶은데, 현재 Commit을 해야할 File들이 있다면 이때 Git Stash를 이용하자.
이 임시파일들을 Git의 Stash에 저장하고, Checkout하고 나서 변경되어진 Commit or Branch에 이를 적용가능하다. 

  • Git Stash 의 예
내가 소스를 수정중인 File들을 임시적으로 저장하는 기능이 바로 Git Stash 기능이며, 나의 경우 
주로 Git checkout 을 한 다음 그 Version 이 Git Stash이를 이용하여 적용을 한다. 
VS Code에서 사용할 경우, STASHES라는 곳에서 확인가능 


2. VS Code에서 Git Merge 방법정리  

  • Git Merge 하기전 확인
상대방이 Remote에 Push를 했을 경우, 현재 나의 Local에는 이게 반영이 안되었으므로, 
반드시 Git Pull or Git Sync(Git Pull and Push)를 해줘야한다. 
그래야 SOURCE CONTROL REPOSITORIES 가 항상 Remote 와 동일해진다. 
Git 항상 다른 사람과 같이 작업하므로 이부분은 모든 부분에서 확인해야함 

  • Git Merge 방법 
Git Merge에도 방법이 있으며, 아래와 같이 간단히 정리한다.  
  1. 현재 Branch의 특정 Commit들만 (Cherry-pick)적용하여 다른 Branch에 Merge 적용 
  2. 현재 Branch 와 다른 Branch Merge   (각 Branch 단위로 Merge 진행)

2.1 VS Code 에서 특정 Commit 만 Merge 방법 

git cherry-pick command를 사용하며 특정 Commit 만 Merge방법 

Cherry Pick Merge라고 하며아래와 같이 특정 Commit만 찾아 Merge를 진행. 
  • 좌측 release branch  : 
    • develop branch에서 필요한 것만 가져와서 최종 Release 할것 
  • 우측 develop branch : 
    • Commit F  : 넘어감 
    • Commit E  : 이것만 반영  
    • Commit D : 넘어감 
    • Commit C : 원래 Commit C 반영할 차례(빨간색)지만, Commit E만 반영할 예정 
    • Commit B : 이미 Release 반영 
    • Commit A : 이미 Release 반영 

Commit D는 생략 
Commit E 만 release 에 merge 하고 싶을 경우 아래와 같이 cherry-pick 사용 


https://geekwebcast.com/git-cherry-picking-with-vs-code-part-1/


https://geekwebcast.com/git-cherry-picking-with-vs-code-part-1/


상위그림 B. Git Graph 화면으로이동 
  1. Branch Show All
  2. Show Remote Branches 체크 확인  
  3. Refresh Button (Sync)  

만약 특정 Branch만 보고자 하면 해당 Branch만 선택

  • Git Graph 에서 원하는 Commit을 찾기  
    1. 상위 Git Graph를 두군데서 확인가능 (Remote 와 Local)
    2. 항상 현재 사용중인 Branch가 맨 좌측에 위치 (현재 develop)
    3. Local 와 Remote 의 Commit History가 다르다면, Synchronize Change를 맟춰줘서 동일하게 보도록한다.
Git Graph에서도 항상 Current Branch가 맨 왼쪽에 나옴  

  1. Git Graph에서 원하는 Develop Branch에서 원하는 Commit을 찾음 
  2. 우측 눌러 Cherry-pick 선택 


Cherry Pick 선택하면 Yes Cherry Pick 선택 후 진행 (옵션무시)


조건사항-1. Cherry Pick Merge를 진행하는데, 소스상에서 겹치는 부분이 없다면, 
아래와 같이 Sync Changes 2 (Cherry Pick 갯수) 확인 
바로 자동으로 Merge진행 



조건사항-2. Merge를 진행하는데, 소스상에서 겹치는 부분이 있다면,
아래 Branch Merge와 거의 동일 


모든 기준은 상위에서 설정한 Current Branch기준 
Current Branch에 Merge 된 것을 확인 


세부내용 출처 (아래 링크 참조) 


2.2 VS Code Branch Merge 방법 

Git Merge를 할 경우, 
Bracn Merge 이든, Cherry-Pick 이든, 1개 File에서 기존 것 과 새로운 것이 겹치면 항상 선택을 해야한다. 
Merge Changes-> 각 파일  
  1. Accept Current Change: 기존 그대로 유지 
  2. Accept Incoming Change: 새로 적용된 것으로 변경 
  3. Accept Both Change: 두개를 다 적용 
  4. Comare Changes: 변경사항 비교 
    

1. Merge Changes 확인 



2. Merge Changes -> .gitignore 확인 
  1. 대부분 새로운것을 대체하여 사용하므로 Accept Incoming Change로 변경
  2. 기존것을 유지하고자 하면 Accept Current Change 진행  



3. Github 의 Release 방법(Tag) 

VS Code에서 Tag를 할수도 있겠지만, 나의 경우는 Github를 사용할 경우, 직접 Github에서 Tag를 하는 것을 선호하는 편이다.
이유는 Release시 Git에서 Tag하는 것 보다 편하며, 직접 필요한 파일도 추가가능할 뿐아니라, 추후 수정관리하기도 좋다.
 
최종 Release 할 경우, Target Branch을 선택하여 정해야 하므로 
미리 VS Code에서 본인의 Git History(View Graph로 확인)

  • Github Release Menu
  1. Github의 소스에서 Release로 이동 
  2. 우측 draft a new releae 선택 

  • Draft a new release Menu
  1. 좌측 choose a tag 버튼선택  
  2. choose a tag 의 빈공간 (Find or Create a new tag)
    1. release/v1.xxxx or v1.xxxx 새로이름 Tag 생성
  3. Target 선택 (release 할 branch or commit 위치) 
  4. Release Title 작성
    1.  Release v1.x.x 
  5. 내용은 Markdown이 되므로 되도록 Markdown Rule로 적용가능
    1. ** v1.x.x **

    2. ** Features and Enhancements **
    3.    A. updated something 
    4.    B. added new function related to something

    5. **Fix Bugs **
    6.    A. fixed the bug related to something 
  6. Preview로 반드시 확인  
    1. 상위 작성된 Markdown Preview 확인 
  7. Attach binaries  (옵션)
    1. 기본으로 Assets 에 Source는 zip 과 tar.gz 제공
    2. 이외 Binary를 추가로 넣을 경우, Releae Binary 와 OTA Binary  



Asset (Target기반으로 Source Code zip/tar.gz 파일제공 ) 

상위 내용은 추후  Release 후에도 수정도 가능하므로 실수해도 괜찮다.  


4. Git 기반의 기타기능들 

VS Code 기본 메뉴에서 Explorer 에서 각 File을 우측클릭메뉴 기능 

  • VS Code File 우측 메뉴
일반 File 과 비교할 경우 
  1. compare with selected 
  2. select for compare 
Git 관련 Command 
  1. commit changes  (다른 commit 과 branch와 비교) 
  2. open file history  ( File 변경사항들만 있는 Commit 전부확인)
  3. open Timeline  (Commit 과 File Save History까지 확인가능)
  4. Git: View File History ( 전체를 쉽게 보지만, Git Graph를 더 추천)



5. VS Code의 필요기능정리  


VS Code를 사용하면 , 많은기능들이 제공하는데, 보통 단축키로 제공으로만 제공해주는 것들이 많은 것 같다. 
매번 까먹어서 다시 링크로 넣어두도록 한다. 

  • VS Code 관련 단축키 확인 
Code 정렬시 사용하며, 좌측/우측 (가장많이 사용)
Line Shift   ( Ctrl+[ , Ctrol+] )

  • VS Code 의 laucnch.json 사용법
VS Code의 Run and Debug에 연결하여 사용가능하다.
.vscode 안에 넣어두면된다. 

  • VS Code의 Task.json 사용법
Powershell 기반으로 이용가능하므로 이용하도록하자.