2020/09

    [Git] branch란?

    브랜치(branch)란 기존 버전에서 기능 변경을 하고 싶을 때 생성하거나 사용하게 되는데, 그림으로 한 번 봐보자. 중심이 되는 Master가 있고 주변에 기능을 추가하거나, 버그를 수정하기 위한 branch들이 있다. branch는 말 그대로 "가지"를 뜻한다. 기존 버전의 파일에다가 직접적으로 바로 수정을 하는 것이 아니라 branch를 만들어 내용을 수정하게 되는 것이다. 따로 가상 공간을 만들어서 수정했기에 언제든 이전의 버전으로 돌아갈 수 있고, 수정이 잘 마무리 되었다면 병합하여 업데이트를 할 수 있게되는 것이다! sourceTree로 한 번 봐보자! 원하는 커밋에 우클릭을 하여 브랜치를 생성해준다. 브랜치를 생성한 후, 내용 수정을 하고 커밋을 하게 되면 version이 위로 올라오게 된다..

    [Swift] 인스턴스 생성 및 소멸

    지금까지 struct나 class를 생성할 때에 기본 이니셜라이저를 활용하여 인스턴스를 생성했다! 초기화가 완료된 인스턴스는 사용 후 소멸 시점이 오면 소멸되게 된다. 인스턴스를 생성하고 소멸시키는 방법에 대해서 알아보자. 인스턴스 생성 초기화는 새로운 인스턴스 사용 준비를 위해 저장 프로퍼티의 초깃값을 설정하는 역할을 한다. 즉, 기본값을 가질 수 있도록 세팅해주는 것이다. 이는 이니셜라이저를 구성하여 구현할 수 있다. 스위프트의 이니셜라이져는 값을 반환하는 형태가 아니라 초기화하는 역할 그 자체이다. 아래의 코드처럼 init 키워드를 사용하여 구현할 수 있다. class someClass { init() { // 초기화에 필요한 코드 } } struct someStruct { init() { // 초..

    [Swift] Insertion Sort란?

    목표는 배열을 내림차순 혹은 오름차순으롤 정렬하는 것이다! 숫자 배열을 받았는데, 순서에 맞게 정렬해야하는 상황이라고 쳐보자. Insertion sort 알고리즘은 아래와 같이 수행된다. 숫자들을 pile(더미)에 쌓는다.(아직 정렬X) pile에서 숫자를 꺼낸다. 어떤 것을 고르던 상관은 없으나, pile의 맨 위부터 뽑는게 가장 쉬운 방법이다. 추출한 숫자를 새로운 배열에 넣는다. 정렬되지 않은 pile에서 다음 숫자를 추출하고 또 새로운 배열에 넣는다. 해당 숫자는 맨 첫 번째에 추출한 숫자의 앞/뒤로 가서 이제 숫자가 정렬되게 되는 것이다. 다시 추출하고, 위치에 맞게 배열 내에 넣어준다. 이 과정을 정렬되지 않은 pile 내에 숫자가 다 사라질 때 까지 반복한다. 결과적으로 빈 pile과 정렬된..

    [Swift] 넷플릭스 화면 따라만들기 (3)

    저번까지는 searchAPI를 구현해봤었다. 이제는 클릭 이후에, 영상을 가져오고/틀어주고, 화면전환까지 되도록 구현해보자. 그러기 위해서는 먼저 영상을 갖고 있는 movie라는 객체가 있어야 하고 영상을 틀어줄 playerViewController (player vc)가 있어야 한다. 이후 player vc + movie 로 올려주고, presenting plaver vc를 통해 영상을 재생해준다. // 클릭 되었을 때 구현해줘야 하는 부분 extension SearchViewController: UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexP..

    [Git] 파일 내 변경사항 취소하기

    이번에는 마지막 commit으로 되돌리는 방법에 대해 배워볼 것이다. 기존 파일의 내용을 막 수정했는데 돌이킬 수 없는 오류가 발생했다.... 어떻게 해야할까... 당황하지 않고, 이전 버전의 저장본으로 되돌아가면 된다. 이에 필요한 기능이 checkout이고, sourceTree에서는 "코드뭉치 버리기"라는 기능을 사용해서 실행할 수 있다. Git내에서는 아래의 코드로 다시 원복할 수 있다. // 파일 원복 git checkout -- [filename] // 상태 확인 git status 다만 원복한다는 것 자체가 굉장히 위험하다는 것을 알고 있어야 한다. 수정했던 사항들을 전부 다시 덮어쓰는 것이기 때문에, 수정내용들이 전부 사라지게 된다. 수정한 내용들이 정말 필요가 없을 때 사용하면 된다. 이 ..

    [Swift] Queue란?

    queue는 새로운 아이템을 뒤에 추가할 수 있고, 앞에 아이템을 제거가 가능한 리스트이다. 그래서 처음 넣은(enqueue) 아이템을 처음 제거(dequeue)할 수 있다. FIFO(First in - First Out)형태이다! 우리는 왜 queue를 써야할까? 많은 알고리즘에서 아이템을 여럿 추가하고 나중에 리스트내에서 제거하고 싶을 때가 있다. 또한 추가/삭제의 순서가 중요한 경우도 많다. queue는 FIFO형태이며, 처음에 넣은 원소가 가장 먼저 추출되게 되는 형식이다. stack(Last in - first out)과 유사하다! 숫자를 enqueue하는 사례를 보자. queue.enqueue(10) 현재 queue는 [ 10 ] 이다. 다음 숫자를 queue에 더해보자. queue.enque..