본문 바로가기

전체 글

(291)
[Git 06] Alias Git에는 많은 명령어가 존재한다. 특정 명령어 라인은 매우 자주 사용되지만 해당 명령의 길이가 길어 사용할 때마다 작성하는 것이 부담스러운 경우가 있는데, 이 경우에 명령어에 대한 별칭을 붙여주는 것이 alias 이다. alias 는 단순히 config를 통해 선언함으로써 사용 가능하다. alias로 선언되면, 일반적인 명령어처럼 작동하게 된다. 이때 코드의 작성은 기존 명령에서 git 만 제거하고, 따옴표로 덮으면 된다. git config alias. "" git config --global alias.lb "log --graph --pretty='[%h] %an %ad\n: %s'" //그래프를 보여주면서, 짧은 해시 및 저자의 이름, 작성 시간, 코드를 보여준다. git config alias...
[Git 05] remote Git은 로컬 영역에서 버전을 관리하는 시스템이다. 따라서 협업이나 코드의 공유 목적으로 원격(remote) 서버를 이용하는데, 이때 외부 서버의 내용과 내부 Git 시스템을 연결하기 위한 명령어가 remote 이다. 또한 이런 원격 서버 중 가장 잘 알려져 있는 것이 Github이다. 프로그래머들은 외부 서버를 이용하여 동일 코드를 유지하면서 각자의 코드를 작성할 수 있다. 이때 외부 서버를 지칭하기 위해 이름 및 주소가 필요하며, 해당 주소를 통해 다른 프로그래머들은 동일 코드에 접근할 수 있다. 저장소 목록 보기 git remote // 단순히 이름만 출력 git remote -v // 이름과 경로 출력 저장소 등록 git add // address를 name으로 등록 //origin 등의 이름을 ..
[Git 04] commit commit에는 '~을 적어두다' 는 뜻이 있다. Git에서 사용되는 commit은 파일의 수정 내역을 .git Repository에 기록하는 것으로, 원 단어의 뜻과 의미가 통한다. Git에서는 파일들의 기록을 커밋이라는 스냅샷 단위로 저장한다. 이때 이전 버전에 비해 수정된 내역만이 저장되므로, 파일시스템을 통해 버전관리를 할때 발생하는 코드의 중복이 발생하지 않는다. 깃 폴더 생성 git init 깃 파일 상태 확인 git status 파일 등록 untracked 파일을 tracked로 등록할 때, unstaged 파일을 staged 상태로 전환할 때 모두 add 명령어 사용 git add git add . // 모든 파일 등록 파일 등록 취소 //01. tracked 상태 파일을 untracked..
[Git 03] .gitignore 파일 모든 파일이 Git의 관리 대상이 되어야 하는 것은 아니다. 단순한 로그 파일, 프로그램 빌드에 의한 부산물 등 프로그램 코드와 관련없는 파일들은 보통 일관성을 유지할 필요가 없으며, sql 서버에 대한 ID 및 비밀번호 정보를 기록해둔 파일은 오히려 Git을 통해 관리하면 보안상 문제를 발생시키므로 Git으로 관리해서는 안된다. 물론 파일을 그냥 untracked 상태로 두면 해당 파일에 대한 버전 관리를 수행할 일은 없다. 그러나 해당 파일에 대한 조회가 된다는 것 자체가 실수를 유발할 수 있으므로, 더 명확한 방법이 필요하다. Git은 위와 같은 상황에서 특정 파일을 완전히 무시하기 위해 제외하고 싶은 파일의 이름을 정의해두는 파일을 따로 두었는데, 이것이 .gitignore 파일이다. .gitig..
[Git 02] 깃 저장소와 파일의 상태 Git은 사용자의 이름이나 이메일 주소 등의 정보를 커밋시 함께 보낸다. 따라서 이런 정보를 기록해둬야 한다. 이런 종류의 정보 혹은 사용자 커스텀 명령어들을 저장할 때는 config 명령을 이용한다. git config --global user.name "blaxsior" git config --global user.email "blabla@tistory.com" --global 옵션을 주면, 해당 설정은 현재 사용자의 모든 저장소 설정에 적용된다. 만약 현재 저장소에 대해 다른 옵션을 주고 싶다면, 해당 저장소 폴더에서 --global 옵션 없이(자동으로 --local이 적용) 설정하면 된다. 깃 폴더 특정 폴더에 대해 Git 시스템을 이용하기 위해서는 init 명령어를 이용한다. git init /..
[Git 01] 버전관리 시스템 프로그램을 개발할때 우리는 수없이 많이 코드를 변경하고 테스트한다. 이 과정에서 코드는 불안정한 상태와 안정된 상태를 반복하게 된다. 이런 수많은 상태들은 이전과는 다르지만, 비슷한 형태를 유지할 것이다. 이런 개념이 버전이다. 버전은 이전과 다른 변화를 구분하는데 사용된다. 버전을 관리하는 사람에 따라 다양한 방식으로 이름지을 수 있으며, 동일 버전 속에서도 작은 변화를 구분하는 서브 버전도 사용될 수 있다. 이때 버전에 이름을 부여할 때 일련의 규칙이 있는 편이 좋으며, 어느 정도 큰 변화가 있을 때 버전을 구분하는 것이 바람직하다. 처음 코드에서 수없이 수정되는 코드들은 프로그램의 완성까지 여러번 반복하여 수정된다. 그런데, 수정 및 테스트되는 코드가 항상 안정적이라고 말할 수 없고, 일부 에러나 ..
[Rust] 변수 변수의 선언 러스트의 변수는 let을 이용하여 선언한다. 대부분의 경우 각각의 타입을 명시해도 되고, 명시하지 않아도 된다. 이때 대부분의 프로그래밍 언어와는 달리 러스트에서의 변수는 기본적으로 "불변"의 성질을 띈다. 만약 변수를 가변적이도록 선언하고 싶다면, mut를 덧붙이면 된다. let x:i32 = 5; x = 14; // 안된다 let mut y:f64 = 17.3; y = y + 12; // 불변형이 아니므로, 된다. 잘못 생각하면 let으로 선언한 변수를 타 언어의 const 변수, 즉 상수와 헷갈릴 수도 있는데, 이 것이 상수는 아니다. 보통 상수의 경우 값을 변경할 수 없으며, 재할당이 불가능한게 대부분이다(언어마다 차이가 있다). 러스트에서의 상수 역시 이러한 부분에서 let으로 선언..
[수치해석 09] 비구속 최적화 비구속 최적화(Unconstrained Optimization) 는 특정 독립변수가 가질 수 있는 범위가 제한되지 않은 상태에서 이루어지는 최적화 방식을 의미한다. 반대의 개념으로 구속 최적화(Constrained Optimization) 이 있다. 최적화(Optimization) 최적화는 함수의 최소값 및 최대값을 구하는 것이다. 특정 함수에서의 최적점은 곡선 위의 평탄한 점으로, 도함수 f'(x) = 0 이 되는 지점에 해당한다. 이때 2차 도함수 f''(x) 0 이면 최소값이 된다. 따라서, 최적화를 위해서는 미분 함수인 f'(x) = 0 의 근을 구해 최적점을 얻어야 한다. 1차원 및 다차원에서의 최적화 문제 1차원의 문제는 한 개의 독립변수에 의존하는 함수에..