'전체 글'에 해당되는 글 120건

  1. 2019.02.26 로그(log)란 무엇인가?
  2. 2019.02.08 Git commit --amend로 마지막 커밋 수정하기
  3. 2019.02.08 git submodule이란?
posted by 귀염둥이채원 2019. 2. 26. 11:46

로그함수는 지수함수의 역함수이며, 대수함수라고도 하고, log라는 기호를 사용한다.

로그는 실수 영역으로 확장된 지수에서 등장하는 새로운 무리수 개념이다.


# 로그의 뜻

로그는 지수를 표현하기 위해서 만들어졌다. 

예를 들어, 2를 몇제곱해야 8이 될까? 3제곱해야 8이 된다. (23=8) 그리고 2는 4제곱해야 16이 된다. (24=16)

그렇다면 2를 10으로 만드는 지수는 몇일까? 3보다는 크고 4보다는 작은 수이다.

그 수를 표현할 수 없어서 로그로 log210이라고 표현하기로 했다.

즉,  log210은 2에 붙여서 10을 만드는 지수가 되는 것이다.

x = logab 를 정의하자면, a를 b로 만드는 지수는 x라는 것이다.

%5Ccombi%20%5E%7B%20x%20%7D%7B%20a%20%7D%3Db%5Cquad%20%5Cquad%20%5Cquad%20%5CLeftrightarrow%20%5Cquad%20%5Cquad%20%5Cquad%20x%3Dlog_%7B%20a%20%7D%5Ccombi%20%7B%20b%20%7D%20


# 로그의 조건

로그 바로 옆에 오는 아랫첨자의 작은 수는 '밑'이라고 표현하고, 옆에오는 큰 숫자는 '진수'라고 표현한다. 

여기의 수는 모두 조건이 있다. 로그는 지수의 표현이므로 지수의 조건이 따라오는 것이다.

 

logab

i) 밑조건 : 밑은 1이 아닌 양수(a≠1, a>0)

ii) 진수조건 : 양수(b>0)


※ 밑에 1이 오게 되면 성립하지 않게 된다. 예를 들어, log15는 1에 붙여서 5를 만드는 수인데, 그런 수는 존재하지 않는다. 

따라서, 밑과 진수조건은 수학적으로 의미가 있는 최소한의 조건이다.


# 상용로그 의미

일반적으로 숫자는 10진법을 사용한다. 로그의 밑은 진법과 관련이 있기 때문에, 밑이 10인 로그를 제일 많이 사용한다.

일반적인 숫자에서 10진법이라는 것을 생략하는 것처럼 상용로그의 밑이 10일 경우 밑을 생략해도 된다.

log_%7B%2010%20%7D%5Ccombi%20%7B%20x%20%7D%5Cquad%20%3D%5Cquad%20logx%20


# 상용로그 값

i) 진수가 10의 거듭제곱

진수가 10의 거듭제곱 일 때, 상용로그의 값은 정수가 되며 로그의 성질을 이용하여 간단하게 구할 수 있다.

하지만 좀 더 신속하게 계산하기 위해서는 0의 개수만큼 정수가 나온다는 것만 기억하다.

(단, 1보다 크면 양수, 1보다 작으면 음수)


      ···

log1000 = 3​

log100 = 2

log10 = 1

log1 = 0

log0.1 = -1

log0.01 = -2

log0.001 = -3​

       ···

​⇒ 진수의 자리수가 로그값의 정수부분에 영향을 준다.

⇒ 로그값의 정수부분은 진수의 자리수를 결정한다.​

ii) 진수가 10의 거듭제곱이 아닐 때

진수가 10의 거듭제곱이 아닐 때, 상용로그의 값은 무리수가 나오게 된다.

그러나 진수의 자리수만 보고 상용로그의 값은 예측할 수 있어야 한다. (자리수에 1을 뺀 값이 나온다.)


ex)

log1000 = 3​

log999 = 2.xx

log500 = 2.xx

log101 = 2.xx​

log100 = 2

log20 = 1.xx​

log10 = 1

log6 = 0.xx​

log1 = 0

log0.55 = -0.xx ​

log0.1 = -1

log0.0684 = -1.xx​

log0.01 = -2

log0.003 = -2.xx​

log0.001 = -3​

 

역시나

​⇒ 진수의 자리수가 로그값의 정수부분에 영향을 준다.

(진수가 1보다 크면 상용로그값은 양수, 0과 1사이면 음수를 가진다.)



###################################################################



라는 지수함수가 있을 때, 그 역의 관계를 로그함수를 사용하여 로 나타낸다

 

: a를 몇(y)제곱해야 x가 되는가?


다음과 같은 지수 식을 보게 되면, 

같은 의미를 가지는 로그식으로 변환을 해 줄 수도 있을 것입니다.


a%5E%7B%20x%20%7D%3DN%5Cquad%20%5Cquad%20%5Cquad%20%5CLeftrightarrow%20%5Cquad%20%5Cquad%20%5Cquad%20x%3Dlog_%7B%20a%20%7DN%5Cquad%20%5Cquad%20%5Cquad%20(%EB%8B%A8%2C%5Cquad%20a%3E0%2C%5Cquad%20a%5Cneq%201%2C%5Cquad%20N%3E0)%20

-> x는 a를 밑으로 하는 N의 로그

-> a를 거듭제곱하여 N이 되게 하는 지수 x => 로그 a의 N


가장 흔한 밑의 값으로는 2, 10과 이 있다.

밑이 2인 로그 -> 이진로그(binary log) -> lb x로 표현

밑이 10인 로그 -> 상용로그(common log) -> lg x로 표현

밑이 e인 로그 -> 자연로그(natural log) -> ln x로 표현


밑이 없는 는 상용로그일 수도 있고 자연로그일 수도 있으니까 문맥에 따라 구별해야 한다.



# 참고 사이트

https://terms.naver.com/entry.nhn?docId=3536995&cid=58577&categoryId=58577

https://blog.naver.com/jihyoseok/221155205577

https://junhyuk7272.blog.me/220566139299

https://junhyuk7272.blog.me/220567977846

posted by 귀염둥이채원 2019. 2. 8. 18:19

마지막 커밋을 수정하는 것이 가장 자주 발생한다.

* 커밋 메시지를 수정하는 경우

* 파일 목록을 수정하는 경우


$ git commit --amend


이 명령은 자동으로 텍스트 편집기를 실행시켜서 마지막 커밋 메시지를 열어준다. 

여기에 메시지를 수정하고 편집기를 닫으면 편집기는 수정한 메시지로 마지막 커밋을 수정한다.


커밋하고 나서 새로 만들었거나 다시 수정한 파일을 마지막 커밋에 포함할 수 있다. 

기본적으로 방법은 같다. 

파일을 수정하고 git add 명령으로 Staging Area에 넣거나 git rm 명령으로 파일 삭제한다.

그리고 git commit --amend 명령으로 커밋하면 된다. 


이 명령어는 기존의 커밋을 수정하는 것이 아니고 새로운 커밋을 만들어냅니다.

만약 이미 해당 커밋이 push가 되어 있는 상황이라면 다른 사람들의 히스토리를 꼬이게 만들 수 있으므로 되도록 지양해야 합니다.

'Tool > git' 카테고리의 다른 글

파일 및 디렉토리 삭제: git rm --cached  (0) 2019.03.11
git submodule이란?  (0) 2019.02.08
git commit --amend 오류  (0) 2019.01.24
posted by 귀염둥이채원 2019. 2. 8. 17:26

프로젝트를 수행하다 보면 다른 프로젝트를 사용해야 하는 경우가 종종 있다.

보통 사용할 프로젝트들은 독립적으로 개발된 라이브러리들이다.


Git의 서브모듈은 이런 문제를 다루는 도구다. 

Git 저장소 안에 다른 Git 저장소를 디렉토리로 분리해 넣는 것이 서브모듈이다.

다른 독립된 Git 저장소를 Clone 해서 내 Git 저장소 안에 포함할 수 있으며 각 저장소의 커밋은 독립적으로 관리한다.


# submodule 추가하기

$ git submodule add https://github.com/chaconinc/DbConnector

Cloning into 'DbConnector'...

remote: Counting objects: 11, done.

remote: Compressing objects: 100% (10/10), done.

remote: Total 11 (delta 0), reused 11 (delta 0)

Unpacking objects: 100% (11/11), done.

Checking connectivity... done.


# submodule을 포함한 프로젝트 Clone

$ git clone --recurse-submodules https://github.com/chaconinc/MainProject

Cloning into 'MainProject'...

remote: Counting objects: 14, done.

remote: Compressing objects: 100% (13/13), done.

remote: Total 14 (delta 1), reused 13 (delta 0)

Unpacking objects: 100% (14/14), done.

Checking connectivity... done.

Submodule 'DbConnector' (https://github.com/chaconinc/DbConnector) registered for path 'DbConnector'

Cloning into 'DbConnector'...

remote: Counting objects: 11, done.

remote: Compressing objects: 100% (10/10), done.

remote: Total 11 (delta 0), reused 11 (delta 0)

Unpacking objects: 100% (11/11), done.

Checking connectivity... done.

Submodule path 'DbConnector': checked out 'c3f01dc8862123d317dd46284b05b6892c7b29bc'


# submodule 삭제하기

우선 서브디렉토리를 그냥 지우고 바로 서브모듈을 추가한다면 오류가 나타난다.

$ rm -Rf CryptoLibrary/

$ git submodule add https://github.com/chaconinc/CryptoLibrary

'CryptoLibrary' already exists in the index

위와 같은 오류를 해결하려면 우선 CryptoLibrary 디렉토리를 관리대상에서 삭제하고 나서 서브모듈을 추가한다.


$ git rm -r CryptoLibrary

$ git submodule add https://github.com/chaconinc/CryptoLibrary

Cloning into 'CryptoLibrary'...

remote: Counting objects: 11, done.

remote: Compressing objects: 100% (10/10), done.

remote: Total 11 (delta 0), reused 11 (delta 0)

Unpacking objects: 100% (11/11), done.

Checking connectivity... done.


# 참고 사이트

https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-%EC%84%9C%EB%B8%8C%EB%AA%A8%EB%93%88

https://blog.powerumc.kr/449

https://confluence.curvc.com/pages/viewpage.action?pageId=35586154

https://ohgyun.com/711

http://blog.naver.com/PostView.nhn?blogId=tommybee&logNo=220840604103&parentCategoryNo=&categoryNo=90&viewDate=&isShowPopularPosts=true&from=search


'Tool > git' 카테고리의 다른 글

파일 및 디렉토리 삭제: git rm --cached  (0) 2019.03.11
Git commit --amend로 마지막 커밋 수정하기  (0) 2019.02.08
git commit --amend 오류  (0) 2019.01.24