Tumgik
bkcarmada-blog · 6 years
Text
git command
파일 관리 차원에서 알아야 할 개념
Tracked / Untracked  ( Tracked : git 이 추적하며 버전관리를 하고 있는것 )
Stage / Unstage  ( Stage : Commit 직전 머무르는 영역 )
Working directory / Stage(Index) / HEAD
( HEAD : Stage에 머무르던 파일들이 Commit 명령으로 local에 최종 기록)
——————————————————————————————-
폴더가 있다.  Working directory 이다. 아무것도 없다.
m0.txt,  m1.txt,  m2.txt  파일 세개를 만들었다. 이 파일들은
Untracked & Unstage 상태이다.
세 파일들을 add 시켰다.  세 파일들은
Tracked &  Stage 상태이다.
세 파일들을 commit 시켰다. 세 파일들은
Tracked &  HEAD 상태이다.
m0.txt 의 내용이 없었는데 “000″을 기입하고 저장했다. 이 파일은
Tracked &  Unstage 상태이다.
m0.txt 파일을 add 시켰다.  이 파일은
Tracked &  Stage 상태이다.
m0.txt 파일을 commit 시켰다.  이 파일은
Tracked &  Head 상태이다.
——————————————————————————————-
clone
git clone 저장소주소( git clone https://github.com/***.git )
status
git status (작업 경로 내의 파일 상태를 보여준다.)
add
git add 파일명.확장자 ( git add rm1.txt )
반대로 Unstage 하려면
git reset HEAD 파일명.확장자 (  git reset HEAD rm0.txt )
revert 
내용 변경을 취소하고 최신 커밋 버전으로 돌아가고 싶을 때
git checkout – 파일명.확장자 ( git checkout – rm0.txt )
remove
git rm 파일명.확장자
하게 되면 파일이 지워지고 tracked 상태고 해제되고 Stage 상태가 된다.
이를 취소하기 위해서는 
git reset HEAD 파일명.확장자 사용해 Unstatge 상태로 만들고
git checkout – 파일명.확장자 로 revert 해준다
삭제는 하나 파일을 local에 남겨두고 싶을때
git rm –cached 파일명.확장자
여러 개의 파일이나 디렉토리를 한꺼번에 삭제
git rm log/\*.log ( log 폴더 안의 *.log 파일 모두 삭제)
git rm \*~  ( ~로 끝나는 것 모두 삭제)
commit
git commit -m “커밋 시 남길 로그 내용”
git commit -m “커밋 시 남길 로그 내용” -a
-a 는 tracked 상태인 파일들을 자동으로 stage에 넘기고 커밋.
push
 git push origin master
remote
git remote -v( 리모트 저장소 확인 )
git remote add 단축이름 url ( 리모트 저장소 추가 )
git fetch 단축이름
기타
git mv 파일명 파일명 ( 이름변경 )
git remote -v( 리모트 저장소 확인 )
git remote add 단축이름 url ( 리모트 저장소 추가 )
1 note · View note
bkcarmada-blog · 6 years
Text
git remote repogitory
생성
0 notes
bkcarmada-blog · 6 years
Text
git command
파일 관리 차원에서 알아야 할 개념
Tracked / Untracked  ( Tracked : git 이 추적하며 버전관리를 하고 있는것 )
Stage / Unstage  ( Stage : Commit 직전 머무르는 영역 )
Working directory / Stage(Index) / HEAD
( HEAD : Stage에 머무르던 파일들이 Commit 명령으로 local에 최종 기록)
-------------------------------------------------------------------------------------------
폴더가 있다.  Working directory 이다. 아무것도 없다.
m0.txt,  m1.txt,  m2.txt  파일 세개를 만들었다. 이 파일들은
Untracked & Unstage 상태이다.
세 파일들을 add 시켰다.  세 파일들은
Tracked &  Stage 상태이다.
세 파일들을 commit 시켰다. 세 파일들은
Tracked &  HEAD 상태이다.
m0.txt 의 내용이 없었는데 “000″을 기입하고 저장했다. 이 파일은
Tracked &  Unstage 상태이다.
m0.txt 파일을 add 시켰다.  이 파일은
Tracked &  Stage 상태이다.
m0.txt 파일을 commit 시켰다.  이 파일은
Tracked &  Head 상태이다.
-------------------------------------------------------------------------------------------
clone
git clone 저장소주소( git clone https://github.com/***.git )
status
git status (작업 경로 내의 파일 상태를 보여준다.)
add
git add 파일명.확장자 ( git add rm1.txt )
반대로 Unstage 하려면
git reset HEAD 파일명.확장자 (  git reset HEAD rm0.txt )
revert 
내용 변경을 취소하고 최신 커밋 버전으로 돌아가고 싶을 때
git checkout -- 파일명.확장자 ( git checkout -- rm0.txt )
remove
git rm 파일명.확장자
하게 되면 파일이 지워지고 tracked 상태고 해제되고 Stage 상태가 된다.
이를 취소하기 위해서는 
git reset HEAD 파일명.확장자 사용해 Unstatge 상태로 만들고
git checkout -- 파일명.확장자 로 revert 해준다
삭제는 하나 파일을 local에 남겨두고 싶을때
git rm --cached 파일명.확장자
여러 개의 파일이나 디렉토리를 한꺼번에 삭제
git rm log/\*.log ( log 폴더 안의 *.log 파일 모두 삭제)
git rm \*~  ( ~로 끝나는 것 모두 삭제)
commit
git commit -m “커밋 시 남길 로그 내용”
git commit -m “커밋 시 남길 로그 내용” -a
-a 는 tracked 상태인 파일들을 자동으로 stage에 넘기고 커밋.
push
 git push origin master
remote
git remote -v( 리모트 저장소 확인 )
git remote add 단축이름 url ( 리모트 저장소 추가 )
git fetch 단축이름
기타
git mv 파일명 파일명 ( 이름변경 )
git remote -v( 리모트 저장소 확인 )
git remote add 단축이름 url ( 리모트 저장소 추가 )
1 note · View note
bkcarmada-blog · 6 years
Text
Astar
준비사항
전체 Map은 2차원 행렬로 구성
출발점(S), 목표지점(D)
openList , closeList 구성.
openList 는 길(Path)의 경로 중 하나가 될 가능성이 열려 있다는 뜻
closeList 는 반대로 이건 더이상 볼 필요 없다는 뜻
맵과, 출발점S, 도착점D, 중앙에 세개의 장애물 존재
Tumblr media
출발점을 우선 closeList에 추가한다.
그리고 8방향을 따져봤을때 다 갈수 있음을 알 수 있다.
이 8방향의 부모노드를 출발점으로 세팅해준다.
Tumblr media
출발점으로 부터 8방향으로 이동하는 비용을 계산
수직, 수평 이동할 경우 10, 대각선 이동 할 경우 14를 적용한다.
이유는 말하지 않아도 알수있으리라(루트2 == 1.41414....)
비용을 사각 영역 왼쪽 아래에 기록( 이 비용을  R이라고 함 )
또 다른 비용 계산
8방향 각각으로 부터 D까지의 비용을 계산
이번엔 장애물의 존재 여부는 고려치 않고 수직,수평 이동만을 고려해서 계산
(대각이동은 없는 것으로 간주)
비용을 사각 영역 오른쪽 아래에 기록( 이 비용을  H 라고 함 )
Tumblr media
총비용 F = R + H 으로 계산
사각 영역 왼쪽 상단에 기록
Tumblr media
openList에 들어있는 지점들 중 총 비용이 가장 적은 곳을 선택
이 빨간 지점 중심으로 방금 한 일을 수행할 것이기 때문에
openList에서 제거하고 closeList에 넣는다.
8방향 체크해 보니 새롭게 openList에 넣어야 할 지점이 없다.
이동 불가의 장애물,
closeList에 속한 지점,
이미 openList에 속한 지점 들 뿐이다.
그러나 한가지 확인해야 할 것이 있다.
이미 openList에 속한 지점 중에서 현재 중심이 되고 있는 빨간 지점을 거쳐서 갈 경우
기존의 R값 보다 더 적은 값이 나오는지를 확인해 봐야 한다.
만약 빨간 지점을 경유했을때 더 적은 R값이 나왔다면 기존의 부모노드를 버리고
빨간 지점을 부모노드로 설정해 준다.
Tumblr media
여기까지 작업했다면 새로운 중심점을 다시 선택하고 했던 작업을 반복한다.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
목표지점 D가 openList에 들어있는 것을 확인하는 순간 길은 찾아진 것이 된다.
지점D의 부모노드의 부모노드의 부모노드로 거쳐서 올라가다 보면
출발점이 나오기 때문이다.
Tumblr media
0 notes
bkcarmada-blog · 6 years
Text
라디안(Radian)
이 포스트를 쓰는 이유는
라디안 이라는 3.14...(ㅠ) 이라는 값을
진심으로 각도로 인식 할 수 있는
수학적 사고를 해보자는 취지이다.
라디안은 각도를  몇˚ 가 아닌 
실수로 표현하기 위해 고안된 단위 이다. 
어렵지 않다
즉 180˚  를 3.14....... 로 표현 하겠다는 것 뿐이다.
그리고 3.14... 의 소수점이 끝이 없기에 ㅠ 로 대체 하겠다는 것이다.
Tumblr media
라디안의 정의
반지름과 호의 길이가 같을 때의 각도를 실수 1로 나타낸 것
여기까지는 그런가 보다 할 수 있다.
그런데 여기서 ㅠ(파이) 라는 라디안 값을 설명 해보라 한다면?
그냥 3.14... 인가? 어디에 써먹는 것인가?
ㅠ(파이) 란 원주율이다
바로 원의 지름에 대한 비율이다.
원의 지름이 몇 이든 ㅠ를 곱해주면 원의 둘레가 나온다는 것이다.
즉 원의 지름이 1일때 원의 둘레는 3.14... 이라는 것이다.
우리가 흔히 알고 있는 원의 둘레를 구하는 공식
2ㅠr 은  2r(지름) * ㅠ(3.14)에서 온 것이다.
여기서 체크해야 할 점은
라디안(호도법)의 출반점은 반지름 이고
원주율  ㅠ(파이)의 출발점은 지름 이라는 것이다.
이번엔  2ㅠr 에서 반지름을 지름으로 만드는 대신 반지름을 유지하고
ㅠ를 두배 시켜 보겠다
반지름 곱하기 2ㅠ(3.14... * 2) 가 원의 둘레가 된다.
다시 말해 반지름 곱하기 6.28... 가 원의 둘레가 된다.
이같은 결과는 라디안 이라는 개념 없이 그저  2ㅠr 이라는 공식과
ㅠ는 3.14... 라는 것에서 착안한 것이다.
그렇다면 이제 라디안 개념을 끌어와 보겠다.
반지름 곱하기 6.28... 가 원의 둘레 라면
1라디안 곱하기 6.28... 은 어떻게 될까?
결과를 말하자면 1라디안 곱하기 6.28... 은 각도로 따지면 360˚ 가 된다.
1라디안에 대응하는 호의 길이는 반지름 이다
3*라디안 일때의 호의 길이는 3*반지름 이다
라디안 곱하기 6.28... 가 나타내는 각도가 그려내는
원호의 길이가 반지름 곱하기 6.28...  의 길이와 같은 것이다.
이것이 라디안을 이해하는 키가 된다.
원의 반지름의 길이가 1인 경우 
원주 자체가 그냥 라디안 수치인 것이다.
참고로 3.14.. 라는 값은 원주율이지만
180도 만큼 돌아간 경우의 ���호의 길이 즉 원주의 반에 해당하는
길이이다.
따라서 호도법 라디안이라는 수치는 원주(둘레)를 그려내는
각도라고 생각하면 되는 것이다.
0 notes
bkcarmada-blog · 6 years
Text
Vector 에 관하여
Normalize ( 정규화? 규격화? )
 (1, 2, 3) 이라는 3차원 백터를 노말라이즈 하는 과정
 1. 백터의 힘을 구한다
  vectorForce = sqrt(1*1 + 2*2 + 3*3)
  vectorForce = 3.74.... 정도가 나온다. 이것이 백터가 가진 힘(길이)!
 2. 이제 이 힘으로 각 원소를 나누어준다
  x = 1 / vectorForce
  y = 2 / vectorForce
  z = 3 / vectorForce
해서 나오는 (x, y, z) 가 노말라이즈 된 백터이다
(0.267, 0.534, 0.801) 라는 백터가 나온다
이 백터의 힘을 구해본다면 그 힘(길이)이 1이 나올 것
방향은 유지하고 힘(길이)을 1로 맞추는 과정이 Normalize
Dot Product ( 내적 )
두 백터를 가지고 계산하여 나오는 실수 값
내적의 활용도는 무궁무진, 그 이유는?!
1. 내적의 계산 방법
v1 = (a, b, c)
v2 = (x, y, z)
내적의 표기는 ->  v1 · v2 ( 가운데 점이다. 그래서 dot product )
계산법 (  각 원소를 같은 위치의 원소들과 곱하고 그것들을 모두 더한다 )
 1) v1 · v2 = a*x + b*y + c*z
 2) v1 · v2 = v1Force *  v2Force * cos(theta) 
2) 번 식이 상당히 중요함. 왜냐하면  cos 과 theta 개념이 탑재 되어 있기 때문
위 식에 나온  theta 는 v1 과 v2 의 사이각을 의미한다.
그렇다 그 사이각의 변화에 따라 내적값이 변경 된다.
아 내적은 두 백터의 관계가 수치로 표현 되는 것이구나!!
그렇다면 이 관계? 로 부터 어떤 수치가 나오는걸까?
이를 알아보기 위해 우선 2번 식을 간소화 해보자
위에서 언급한 Normalize 를 이용하면 v1Force 와 v2Force 를
1로 만들 수 있다는 것에 착안한다.
v1 과 v2 의 내적을 구하기 전에 각각을 normalize 하고 2번 식을 구성해보자
그러면  v1 · v2 = 1 *  1 * cos(theta) 이런 식으로 나오게 되고
결국은  v1 · v2 = cos(theta) 이렇게 되는것이다.
실제로 내적은 대부분 노말라이즈된 백터를 가지고 수행하는 것이 원칙이다.
결국 내적의 값은 코사인 함수에 그 사이각을 라디안 으로 대입하면 나오는
값이다. 
이제 코사인 곡선을 그려보자
Tumblr media
이 그래프를 잘 보면
cos() 의 괄호 안에 들어가는 라디안으로 표기 각도값에 따라
cos()  의 값이 1 과 -1 사이를 오르락 내리락 한다.
그렇다 내적은 -1 과 1 사이 값을 가진다.
사이각이 0, 즉 같은 방향의 백터들은 내적값이 1이고
사이각이 180도, 즉 반대 방향인 백터들의 내적은 -1
사이각이 직각을 이루는 경우는 0 이다.
내적 값은 알았고 반대로 theta 값 즉 두 백터의 사이각을 구하려면
어떻게 해야 할까
v1 · v2 = cos(theta) 을 바탕으로 양변에 acos를 곱해준다
acos( v1 · v2 ) = theta 가 된다
참고로 각도와 라디안 변화식은
180 가  π  라는 것을 기억한다면
1° = π / 180°
180° ->    180°  x  (π / 180) ->  π
0.5 rad -> 0.5 x (180 / π) -> 90 / π
Cross Product ( 외적 )
외적의 경우 계산후 실수값이 아닌 
두 백터에 모두 수직인 백터가 나온다
1. 외적의 계산 방법
v1 = (a, b, c)
v2 = (x, y, z)
외적의 표기는 ->  v1 x v2 ( 가운데 x이다. 그래서 cross product )
0 notes