본문 바로가기

전체 글257

[Swift] 옵셔널 체이닝 & Guard 스위프트로 작성된 코드를 보면 30줄도 안되서 ?나 !를 무조건 만날 것이다. 이건 옵셔널에 관한 이야기를 해야한다. 스위프트는 모든 형태가 2가지다. 원래의 이름과 원래의 이름+? 이렇게 두가지다. 예를 들면 String과 String? 이렇게 2가지 형태가 있는 것이다. 이 둘의 차이점은 String?은 nil값을 포함하는 형태이고 String은 nil값을 포함하지 않는 형태이다. 스위프트는 이 두가지의 형태에 매우 엄격하므로 프로그래밍을 할 때 잘 신경써야한다.(두가지 형태는 아예 다른 것으로 봐야한다!) 1. 옵셔널 체이닝 그렇다면 옵셔널 체이닝은 무엇일까? 옵셔널 체이닝은 nil일수도 있는 값을 호출할 때 사용하는 기법이다. 다음의 코드를 먼저 보자. 중요하게 볼 부분은 밑의 두줄이다. hyog.. 2020. 8. 23.
알고리즘이 중요한 이유 요즘도 알고리즘 문제는 꾸준히 풀고 있다. 하지만 알고리즘을 푸는 것과 내가 내 프로그램을 만드는 것은 많은 차이가 있다. 처음으로는 막상 알고리즘은 하나의 문제를 효율적인 방법으로 푸는 문제이다. 하지만 그 문제가 거대한 프로그램의 부분으로 들어갈 때 알고리즘보다 중요한 것은 기반이 되는 코드인 것 같다. 다른 곳과 잘 연결되게 만들어야 하는 것도 중요하지만 기능의 확장을 위해 보다 기저까지 신경 써야 한다는 말이다. 예를 들자면 내가 만드는 어플인 타닥에서도 이러한 부분은 찾을 수 있다. 사용자가 backspace를 눌렀는지 인식하는 방법, 사용자가 글자를 적을 때 적어야 하는 글자와 적은 글자가 맞는지 틀리는지, 틀리다면 몇 개의 자모가 틀린 지 실시간으로 파악하는 방법 등은 타자게임을 만들 때 고.. 2020. 8. 21.
[타닥] 타자게임 어플리케이션 제작 과정(Intro) 보통 필기를 하면 암기가 되고 반복해서 보면 머리에 남는다. 나는 이런 관점에서 타자게임과 광고를 결합하기 위해 타자게임을 1달 전부터 만들어 왔다. 물론 타자게임은 신선한 느낌이 아니다. 오히려 복고풍에 가까운 느낌이다. 그래서 더욱이 UI/UX와 깔끔한 에니메이션에 집중해야 했다. 타자게임이 복고스럽다면 그걸 감싸고 있는 "겉"은 트렌디하고 힙해야 사랑받을 수 있을거라고 생각한다. 앞으로 이 카테고리에서는 타자게임을 어떻게 제작하고 어떻게 알고리즘을 구현했는지를 중요한 부분을 적어보려고 한다. 처음으로 말하자면 내가 만들 타자게임의 이름은 "타닥"이다. 올해 말까지 출시하는 것이 목표이고 처음에는 게임으로 출시할 예정이다. 그 후 순차적으로 업데이트를 거치며 광고를 수용하는 식으로 갈 것이다. 인원은.. 2020. 8. 20.
[Swift]오류처리(2) 저번시간에 이어 오늘도 마저 오류를 처리하는 방법들에 대해서 알아보려고 한다. 오늘은 크게 3가지를 볼 것이다. 첫번째로는 오류가 절대로 나지 않을 것을 확신할 때 오류를 어떻게 처리할 것인지와 두번째로는 오류를 던지는 함수를 매개변수로 받아 다시 또 오류를 던지는 함수 그리고 마지막으로는 후처리 defer에 대해서 알아보자. 1) 오류가 절대 나지않을 것을 확신할 때 오류가 나지 않는 다면 오류 던지는 함수를 try!로 받아주면 아주 간단하게 끝난다. 위의 코드를 보면 somThrowingFunction은 매개변수로 false를 받으면 절대 오류가 나지 않는다. 그러면 오류가 생기지 않음으로 별도로 do catch구문을 사용하지 않아도 된다.(do catch는 오류가 발생했을 때 그 오류를 처리하려고 .. 2020. 8. 16.