척박한 국내 .net개발 환경 탓에 국내 기술 블로그를 통한 문제 해결이 쉽지 않다. 따라서 stackoverflow.com이나 구글링을 통해 문제를 해결해야 하는데 기본 셋팅인 한국어 오류로는 검색이 불가능하다. 따라서 영어 버전으로 visual studio 2022를 셋팅하여 사용해야 한다.
먼저 Visual Studio Installer를 실행한다.
수정을 누르면 아래와 같은 화면이 나타나는데 언어팩 탭메뉴를 선택 후 영어 체크박스를 체크해준다.
그리고 우측 하단의 수정버튼을 클릭하면 다운로드와 함께 언어패키지가 설치됨을 확인할 수 있다.
이제 Visual Studio 2022를 실행 후
도구 > 옵션 (단축키 alt + t, o) > 환경 > 국가별 설정에서 언어를 한국어에서 English로 바꿔주고 확인 버튼 클릭 후 수동으로 프로그램을 재시작 해주면
문제 없이 진행했다면 좌측 REMOTES아래에 HelloHell이 나타남이 확인될 것이다.
여기까지가 가장 기본인 로컬과 리모트 저장소 생성방법이었다. 이제부턴 파일을 실제로 리모트 환경인 git으로 올려보겠다. 화면을 Source Tree(좌), 로컬저장소(우상단), github.com(우하단) 이렇게 3개를 한번에 캡쳐 떠 보았다. 로컬저장소에 파일을 아무거나 만들고 Source Tree에서 가만히 기다리거나 F5를 누르면 추가한 파일이 나타난다.
Unstaged files 윈도우 영역에서 우측의 + 버튼을 누르면 Staged files 윈도우 영역으로 파일이 올라가고 좌상단의 Commit 을 눌러 Commit을 시도하면 하단의 Commit 윈도우에 적당한 문장을 작성할 수 있다. 난 First Commit이라 작성했다. Commit버튼을 눌러 Commit을 실행한다.
그럼 이렇게 History에 First Commit 문구와 함께 로컬 저장소의 master로 파일이 저장된것을 확인할 수 있다.
그럼 이제 리모트 환경인 github.com으로 동기화 작업을 진행해 보겠다. 상단 메뉴의 Push를 누르면 창이 하나 뜨는데 체크박스가 있다. 이걸 체크해주자.
그러면 git에 master가 보여지고 Push를 누르면 git으로 전송되어 동기화가 일어난다.
동기화가 이루어진 결과다. 우측 하단에 보면 FirstHell.txt의 모습을 확인할 수 있다.
하는김에 하나 더 해보자. 이번엔 SecondHell.txt를 만들어 아까처럼 Unstaged files의 파일리스트 +버튼을 눌러 staged files윈도우로 보내고 또 Commit를 하면
아까와 조금 다르게 Push에 숫자1 뱃지가 표시됨을 확인할 수 있다.
여기까지가 기본적인 로컬과 리모트 환경의 동기화였다.
그럼 이제 조금 더 나아가보자 git활용법 중 정책이란게 있다. master만 운영하면 나중에 개발할 때 master로 동기화를 무턱대고 해버리게 되면 버그가 발생하고 난리가 난다. 그래서 정책을 설정하는데 일반적인 dev도 있고 긴급한 오류 수정인 hotfix도 있고 각 상황에 맞게 각 회사들마다의 정책이 있을 것이다. 이것까지 논하기엔 주제가 너무 나가버리니 그냥 난 서비스인 master와 개발 환경인 dev두개로만 정책을 설정했다 치겠다. 즉 개발로 모든 작업이 끝나면 master로 덮어 쓰는 구조정도로 이해하면 되겠다.
github.com에서 아래처럼 새로운 정책으로 dev를 만든다. dev라 입력하고 Create branch:dev from 'master'를 누르면 된다.
그리고 이번엔 Dev로만 보내기 위해 DevHell.txt란 파일을 로컬에 만든 후
Source Tree에서 Unstaged files에서 +버튼을 눌러 Staged files로 보낸 후 마찬가지로 Commit를 시킨다.
다 되었으면 이제 Push를 해야 하는데 이상하다. remote branch 콤보박스 컨트롤에 dev가 나타나지 않는다. master만 보인다.
이럴 땐 그냥 dev라고타이핑 하면 된다. source tree가 잘 만든 툴이지만 버그들이 좀 보인다. -_-
dev 입력 후 push를 누른 후 github로 이동해서 보면 dev에만 DevHell.txt가 동기화 된 것이 확인된다.
이동하면 Fine-grained tokens방식과 Tokens(classic)방식이 있는데 대충 두개 차이는 베타버전인 Fine이 좀 더 수월하고 뭐 그런것 같은데 난 그냥 classic 버전을 선택했다. 선택하면 토큰이 사용될 Note와 토큰 만료일을 대충 설정하고 가장 중요한 repo에 체크를 반드시 한 후 스크롤을 내려 녹색 generate 버튼을 눌러 토큰을 생성하자.
생성한 토큰은 Source Tree의 상단 메뉴의 우측을 보면 설정(톱니아이콘)이 있는데 여길 누르면 저장소 설정화면이 뜨고 원격 저장소 경로를 더블클릭하거나 편집을 누르면 아래와 같이 원격 저장소 정보 화면으로 이동된다. 여기에 아까 생성한 토큰을 URL에 넣어주면 되는데 방식은 이렇다. 빨강색은 불변 주황색은 앞서 생성한 토큰 파랑색은 각자 계정과 레파지토리명 https://생성한토큰@github.com/내계정/레파지토리
좀 기괴하다 만든놈이 이렇게 입력하라니 어쩔 수 없다만 내가 만들었다면 토큰입력항목과 내계정 그리고 레파지토리를 각각 따로 입력하는 UI를 제공했을것이다.
중국 앱들 때문에 애플에서 특단의 조치를 취한지 어언 석달이 지났나? 클립보드에 내용이 있는 상태에서 금융앱들을 실행하면 붙여넣기를 허용하겠느냐라는 짜증나는 안내창이 반겨준다. 이번 패치에 해결됐나 싶었는데 여전히 해당 증상이 나타나길래 애플넘들 정신 못차리고 있구나 싶었는데 설정에서 해결할 수 있는 방법이 있었다.
먼저 환경설정 톱니바퀴 아이콘을 터치해서 설정으로 들어간 후 짜증나는 붙여넣기 허용 안내가 뜨는 앱들을 일일이 들어가서 (뭔 카카오 시리즈가 이리 많냐 ㅡㅡ)
참고로 나는 설정 > 토스를 선택했다. 토스 설정으로 들어가면 다른 앱에서 붙여넣기가 기본 묻기 상태로 되어 있다.
이를 선택하면 묻기, 거부, 허용이 있는데 허용을 선택해준다.
이제 앱에서 다시는 허용하겠느냐라는 안내창을 볼 일이 없다. 중국은 참 여러모로 대단하다. 우한 폐렴 (코로나 19)도 그렇고 앱에서 개인정보 탈취하는 것도 그렇고 보이스피싱에 도대체 인류에 도움이 되는 일이 있기나 하는 것인지
흔히 부르는 햄버거 메뉴를 눌렀을 때 이벤트 감지를 알려주는 강좌를 보고 따라 했음에도 햄버거 메뉴가 동작 자체를 안하는 문제를 발견했다. leading: IconButton( icon: Icon(Icons.menu), onPressed: () { print("Menu Call!!!!"); }, ), 강좌에서 동작했던 코드인데 아래처럼 해야만 동작했다. leading: Builder( builder: (context) => IconButton( icon: new Icon(Icons.settings), onPressed: () => Scaffold.of(context).openDrawer(), ), ),