목록Coding (34)
Olive Study Room

더보기 오랜만에 깃허브를 다시 보는 김에 정리한다. Git 항상 파일을 지켜보며 변화를 추적하여 기록한다. 같은 파일에 대한 다른 버전을 보관한다. 여러 파일을 한번에 관리할 수 있다. -> 다른 사람과 변경사항 충돌 없이 파일을 같이 쓸 수 있다. GitHub 클라우드에 있는 깃 제공자 컴퓨터에서 깃 히스토리를 가져와서 깃허브 웹사이트(정확히는 원격 저장소-Repositories)에 푸쉬한다. 무료로 사용하려면 저장소를 공개해야 한다. [ GitHub에 올리는 방법 ] 터미널 사용하기 깃헙 데스크탑 프로그램 사용하기 ✔️ 두 가지 방법 중 더 간단한 두번째 방법을 사용했다. 간단히 세 단계로 정리할 수 있다. 1. github 서버 원격 저장소에 New repository ..
예전에는 영어나 몇 특수문자만 사용해서 저장할 때 1byte면 충분했지만, 이후 전 세계 언어를 표현하기 위해 유니코드를 만들었다. ex) '가' -> 'AC00' 하지만 unicode는 언어별로 읽어야 하는 바이트가 다르기 때문에 유니코드 앞에다 UTF-8이나 UTF-16과 같은 것을 붙여 인코딩을 해야한다. UTF-8 (Universal Coded Character Set + Transformation Format-8-bit) 1바이트 8비트. 유니코드로 각 글자가 정의되었지만 컴퓨터가 알아들을 수 있도록(2진법으로) 어떻게 저장할까?(=인코딩은 어떻게 할 것인가) UTF-8은 가변 인코딩 방식으로, 글자마다 byte 크기가 다르다는 뜻이다. 바이트 수 비트 수 유니코드 종류 1 8 U+0000 - ..

* 필요 지식 더보기 Int형과 Double형은 상호간에 나눌 수 없다. (당연함..) 나누려고 했을 때 0으로 출력되는 경우가 있는데 그 이유는 Int/Int -> Int Double/Double -> Double 이기 때문에 1(Int) / 5(Int) -> 0.2이렇게 출력되는게 아니라 1(Int) / 5(Int) -> 0(Int) 이렇게 출력된다. 그렇기 때문에 나누는 수 중 Double형이 있다면 다른 모든 변수도 Double로 형변환해주어야 한다. String.format(), NumberFormatter, ceil, floor, round * 설명된 모든 경우는 Foundation 프레임워크 내에 있다. import Foundation 1. 기본형 - ceil() 소수점 이하를 버리고 정수에..
map(_:) 시퀀스의 element에 대해 주어진 클로저를 맵핑한 결과를 포함하는 배열을 리턴한다. 주로 배열의 각 요소를 특정 수에 곱하거나 더하는 클로저를 갖는다. compactMap(_:) 이 시퀀스의 각 요소를 사용하여 지정된 변환을 호출한 결과 중 nil이 아닌 것을 포함하는 배열을 리턴한다. 적용하려는 배열의 요소 중 nil값이 있다면 map이 적용되지 않기 때문에 옵셔널바인딩해서 map으로 넘겨줄 수도 있다. nil인 요소를 제거해준다. let arr = [[1, 2], [3, nil], nil] 하지만 위와 같은 배열에서 요소는 [1, 2], [3, nil], nil 이렇게 총 세 가지이기 때문에 compactMap을 적용하고 출력하면 [1, 2], [3, nil]이렇게 두 요소가 출력된..

더보기 control flow를 다시 정리하게 될 줄이야.. 생각보다 swift에는 다양한 control flow가 존재했다.. Control Flow for, while -> 한 작업을 오랜 시간에 걸쳐 반복 수행 if, switch -> 특정 조건에 따라 분기시켜 실행 break, continue, fallthrough -> 실행 흐름을 다른 부분으로 이동 [ for ] for, for-in 1. for 2. for-in - 일반적인 사용 for _ in 1...5 { print("dev") } //dev //dev //dev //dev //dev let index: [Int] = [1, 2, 3, 4] for i in 0...index.count-1 { print(index[i]) } //1 //2..
더보기 매 프로젝트에서 사용은 해왔지만 영문도 모르고 받아 적기만 했던 고차함수. 한번 정리해보자! 고차함수란? 매개변수로 함수를 받거나 함수를 반환하는 함수 map, filter, reduce 등이 있다. 위 함수는 swift 표준 라이브러리에 속한다. 1. map(_:) 시퀀스의 요소를 통해 지정된 클로저를 맵핑한 결과가 포함된 배열을 리턴한다. Declaration func map(_ transform: (Element) throws -> T) rethrows -> [T] Parameters transform : 맵핑 클로저. 파라미터처럼 이 시퀀스의 요소에 접근하고, 같거나 다른 타입의 변형된 값을 리턴한다. * 클로저 내에 생략할 수 있는 값 let text: [Int] = [1, 2, 3, 4..
더보기 백준 알고리즘 문제를 풀다가 입력을 받아 사칙연산을 한 결과를 반환하는 문제가 있었다. readline() 메소드는 입력한 한 줄을 받아오게 되는데, 이 때 연산을 위해 숫자를 찢어줘야한다. 찢는 메소드는 여러가지가 있지만, 두 가지만 알아보자. [ components(separatedBy:) ] 주어진 separator에 의해 분할된 리시버에서 substring들을 포함하는 문자열을 리턴한다. * substring : 문자열 조각 Declaration func components(separatedBy separator: CharacterSet) -> [String] Parameters separator(리시버를 나눌 때 사용할 character를 포함하는 문자 집합. nil이 아니여야한다) Ex..

https://pengcoder.tistory.com/22?category=427332 GCD? (Dispatch Queue & OperationQueue) 앞서 알아야 할 개념 연산 대기열 (Operation Queue) : 비동기적으로 실행되어야 하는 작업을 객체 지향적인 방법으로 사용 종속성 (Depedency) : A작업이 끝나면 B작업을 수행해야하는 관계 [ GCD ] Grand Cen pengcoder.tistory.com 위 포스팅에 이은 추가 개념! [ Sync & Async ] Sync : 순차적 처리(동기적) Async : 동시적 처리(비동기적) 그렇다면.. Sync와 Serial Queue, Async와 Concurrent Queue는 뭐가 다른가...?!?!? 1. 먼저, Sync와..