본문 바로가기

전체 글156

집합 & 불 자료형 집합 (set) 집합은 파이썬 2.3부터 지원하기 시작하여 set 키워드를 사용해 만들 수 있다. set 키워드에 리스트 형식으로 선언하거나, 문자열을 입력하면 중복을 제거하여 변수에 저장되게 된다. >>> s1 = set([1,2,3]) >>> s1 {1, 2, 3} >>> s2 = set("Hello") >>> s2 {'e', 'H', 'l', 'o'} 집합 자료형은 크게 두 가지 특징을 가진다. 요소 간의 중복을 허용하지 않는다. 요소 간의 순서가 없다 집합 자료형은 순서가 존재하지 않기 때문에 인덱싱을 통해 요소를 검색하거나 수정할 수 없다. 그렇다면 집합 자료형을 인덱스로 접근하려면 어떻게 해야할까? 정답은 리스트나 튜플로 변환한 후 인덱싱을 통해서 검색하면 된다. ✰ 중복을 허용하지 않는 특징.. 2021. 7. 21.
Git (9) : 병합 충돌 & n way-merge Branch 충돌 해결 branch 간 merge 병합 중 충돌이 일어날 수 있는 상황은 같은 branch가 동일한 파일에 대해 같은 부분을 수정할 경우 일어납니다. 먼저 성공적인 병합의 예제로 아래 사진을 보면 각각의 master와 exp branch에는 자신의 이름을 가진 txt파일을 저장한 뒤에 commit하였습니다. 이제 이 파일들을 병합해보면 성공적으로 병합하여 Merge branch 'exp'로 master branch에 exp의 파일 내용들이 합쳐진 것을 확인할 수 있습니다 그 후 log 파일을 살펴보면 새롭게 병합된 commit이 생성된 것을 확인 할 수 있고 커맨드 창에서 파일 리스트를 살펴보면 master branch에서 exp branch에서 만들어졌던 exp.txt파일이 생성된 것을.. 2021. 7. 20.
문자열 & 리스트 문자열 (STRING) 문자열 선언 방식 1. 큰따옴표로 양쪽을 둘러싸는 방식 “hello” 2. 작은 따음표로 양쪽을 둘러싸는 방식 ‘hell’ 3. 큰따옴표 3개를 연속으로 양쪽 둘러싸기 “”“hello hell””” 4. 작은따옴표 3개 연속 양쪽 둘러싸기 ‘’’hello hell’’’ 큰,작은 따옴표가 활용되는 이유는 문장 사이에 따옴표가 사용될 때 다른 따옴표를 통해 문자열을 선언할 수 있기 때문이다. 다른 방법으로는 백슬래시를 앞에 추가하여 사용할 수 있다. ex) ‘ Python\’s very easy’ 여러 줄의 문자열을 변수에 대입하기 \n을 활용하기 ‘’’ ‘’’, “”” “””를 사용하기 줄을 구분하여 저장 가능하게 한다. 이 때 백스페이스를 활용하여 코드를 사용하는 것을 이스케이프 .. 2021. 7. 20.
튜플 & 딕셔너리 튜플 ( Tuple ) - ( ) 으로 둘러 싼 후 선언한다. - 리스트는 그 값의 생성, 삭제, 수정이 가능한 mutable객체고, 반대로 튜플은 변경 가능한 객체로 immutable객체이다. >>> t1 = () >>> t2 = (1,) >>> t3 = 1, 2, 3 >>> t4 = ('a', 'b', ('ab', 'cd')) 선언 부분에서 튜플은 리스트와 비슷한 모습을 띄고 있지만, 2가지 차이점을 보인다. 1. t2에서 처럼 하나의 요소를 가지는 튜플은 요소 뒤애 반드시 콤마(,)를 붙여야 한다. 2. t3처럼 괄호를 생략해도 튜플로 인식되어 변수에 저장된다. 리스트와 튜플의 구별되는 가장 큰 특징은 값의 변화가 가능하냐 불가능하냐이다. 즉 리스트의 항목 값은 변경 가능하고, 튜플의 항목 값은 변.. 2021. 7. 20.
Git (8) : stash (임시저장) Stash branch의 작업 내용을 마치지 못하고 다른 branch로 checkout하기 위해서는 현재 작업을 commit해야한다. 이 때 Stash를 사용하면 이 때까지의 작업 내용을 숨겨둘 수 있다. Stash는 명시적으로 삭제하지 않는 이상 숨김 처리로 스택에 보관되어진다. 하지만 조건이 있는데, git stash 명령을 사용하기 위해서는 working directory에서 수정한 파일들만 저장가능하다. 즉 untracked되어진 파일들은 저장되지 않는다. 따라서 stash에는 수정되어진 Tracked 파일, 수정되어 staging area에 위치하는 파일 등이 저장된다. 작업 임시 저장하기 ( git status or git staus save ) 현재 f2.txt라는 modified된 untr.. 2021. 7. 18.
Git (7) : branch & merge git의 기본 분기 및 병합 ( 참고 : https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging ) git의 분기에는 fast forward 분기(빨리감기) , recurcive merge 분기로 나눌 수 있다. 먼저 C0 ~ C2까지 master branch에서 커밋하며 작업을 수행했다고 가정하자 이 때 어떤 문제를 해결 하기 위해서 새로운 분기점 즉 새로운 branch를 만들고 동시에 전환하여서 그 branch에서 작업을 수행하려고 합니다. $git branch iss53 $git checkout iss53 그 후 문제에 대해서 해결하기 위해서 "iss53" 분기에서 커밋을 생성해가면서 작업을 진행합니다. $ git commi.. 2021. 7. 17.
Git (6) : branch branch 원본 파일에 수정을 진행하면서 f_ver1 -> f_ver2 처럼 버전을 관리하다가 특정 상황에서 목적에 따라 버전이 2가지 이상으로 나누어질 때가 있을 수 있다. 예를 들어서 고객전용 파일, 개발자 전용 파일등으로 나누어서 관리한다고 가정하자 그렇다면 위의 그림과 같이 2가지 파일의 버전을 따로 관리해야 한다. 이렇게 다른 목적에 의해 원본 파일이 분기되고 수정되어 관리되는 과정을 git에서 branch라고 한다. 추가로 두 가지 파일을 합쳐서 새로운 버전을 만드거나 버전을 통합시켜서 다시 관리할 수 있는 상황도 발생할 수 있다. 용어를 정리하면 , 한 원본 파일이 2가지 이상으로 분기되는 현상을 branch를 만든다고 하고 각 branch는 새로운 branch와 원래부터 유지하던 작업은 .. 2021. 7. 12.
Git (5) : Reset , Revert 기초 버전 관리 git log에는 다양한 옵션이 존재한다. 이 때 git log -p옵션은 각 각의 commit 사이에 소스 차이를 확인할 수 있다. 코드를 살펴보면 각각의 버전에서 어떤 내용들이 수정되었는지 알 수 있다. f.txt ver 0.0.4 .. diff --git a/f1.txt b/f1.txt index f3ce2e4..e492257 100644 --- a/f1.txt +++ b/f1.txt @@ -1,3 +1,4 @@ Hello git! Hello HanJaemin! Hello World! +f_world = 0 버전 4의 내용을 살펴보자 ----a/f1.txt는 버전3에서의 f1.txt파일을 가리킨다. 따라서 b/f1.txt는 수정 되어진 새로운 f1.txt.파일을 나타낸다 @@내용을 통해 .. 2021. 7. 9.
Git (4) : 버전관리 버전 관리 Jam-git 디렉터리에 f1.txt파일의 버전을 작성해보겠습니다. git commit 명령어를 실행시킵니다. 그 후 열려진 창에서 commit 메시지를 추가해서 version을 추가할 수 있습니다. git log를 통해서 이때까지 작업한 버전에 대한 내용도 살펴 볼 수 있습니다. 이번엔 f1.txt를 수정하고 add한 뒤 새로 commit 해 보겠습니다. 새로 추가된 텍스트 내용을 기반으로 f1.txt파일의 버전이 업데이트 된 것을 확인 할 수 있고, 버전의 소유자와 날짜등이 기록되어 있는 것을 확인 할 수 있다. 이번엔 새로운 f2.txt , f3.txt파일을 각 각 생성하고 버전 관리를 진행해보았다. 새로운 f.txt 0.0.3 ver이 추가된 것을 확인 할 수 있다. 그 이후 각 텍스트.. 2021. 7. 8.
Git (3) : git 기본 명령어 git에서는 gitignore이라는 파일을 통해서 git에 tracking하지 않고싶은 파일들을 지정하여서 설정할 수 있다. *.log -> 모든 로그를 추가하지 않는다 build/ --> build 디렉터리 안의 파일은 추가하지 않는다 등 .gitignore폴더에 이를 명시하면 명시된 파일은 tracking되지 않는다. git status -s를 통해서 각 파일들이 어떤 상태인지 확인할 수 있다. A : access로 staging area에 추가되었음을 뜻한다. ?? : 아직 tracking이 되지않고 working dir 안에 존재 AM : staging area에 추가되고 modified되어 수정본이 working dir에 존재한다. git diff를 사용하면 수정된 파일의 내용을 자세하기 출력하.. 2021. 6. 30.
Git (2) : git의 workflow 저 같은 경우에는 드라이버 밑에 project라는 폴더안에 git이라는 폴더에서 git을 관리하고 있습니다. 깃을 초기화하기 위해서는 git init 명령어를 통해서 폴더안에 git 프로젝트로 만들 수 있습니다. GIT에는 총 3가지의 workflow로 구분되어 진다. 1. working directory : 작업하고 있는 공간 2. staging area : 저장할 준비를 위해 파일을 옮겨놓는 공간 3. .git directory : commit을 통해 staging area에서 넘어온 버전의 history를 가지는 공간 -저장된 history는 check out 명령어를 통해 작업 공간으로 불러들일 수 있다. 하지만 위의 workflow는 내 컴퓨터에 대해서 저장되기 때문에 컴퓨터에 문제가 발생 시 .. 2021. 6. 30.
Git (1) - 초기 설정 VCS(Version Control System) : 버전 관리 시스템으로 파일 변화를 시간에 따라 기록하고 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. 코드 뿐만 아니라 텍스트, 이미지 파일 등을 함께 관리할 수 있다. VCS 이전에는 따로 폴더를 두어서 버전을 수동적으로 관리하여 저장하는 체계를 사용했으나 이를 해결하기 위해서 CVS, Subersion과 같은 Centralized Version Control과 같은 서버에 히스토리를 관리하면서 각각의 개발자들이 서버를 통해 동기화를 진행하였는데, 서버의 장애가 발생 시 각각의 개발자들의 작업에 모두 지장이 간다는 단점이 존재했다. 이를 해결하기 위해 Distributed version Control이 발전하게 되었다. 이는 각 개발자들이 히.. 2021. 6. 29.
반응형