전체 글 81

Swift의 기본 데이터 타입들은 무엇이 있을까?

Swift의 기본 데이터 타입의 종류는 총 7가지가 있습니다. Bool, Int, UInt, Float, Double, Character, String이 있습니다. 이들에 대해 간략하게 설명드리겠습니다. 첫번째, Bool은 불리언 타입입니다. true과 false중에 오직 한가지만을 값으로 가집니다. 두번째, 정수 타입입니다. Int는 양의 정수, 음의 정수를 포함한 정수를 나타내며 마이너스 부호를 포함하지 않는 0을 포함한 양의 정수는 UInt로 나타냅니다. 세번째, Float은 32비트 부동소수형 타입입니다. 네번째, Double은 64비트 부동소수형 타입입니다. Double과 Float은 정수 타입보다 훨씬 더 넓은 범위의 수를 표현할 수 있습니다. 다섯번째, Character는 말 그대로 “문자”..

타입 캐스팅이란?

타입 캐스팅이란? 타입 캐스팅은 해당 인스턴스의 타입을 확인하거나, 해당 인스턴스를 하위 클래스, 슈퍼 클래스로 만드는 방법이다. 타입 캐스팅은 swift에서 is, as 로 구분하며 해당 타입이 프로토콜에 적합한지도 알 수 있다. 타입 캐스팅은 언제 사용하는가? (1) 인스턴스의 타입을 확인하는 용도로 사용한다. (is) (2) 자식 클래스의 인스턴스의 부모 클래스의 인스턴스로 사용하고 싶을 때 업캐스팅을 사용한다. (as) (3) 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 사용하고 싶을 때 다운캐스팅을 사용한다. (as!, as?) 타입 캐스팅의 종류 3가지의 차이점은? (1) is의 타입 캐스팅은 타입이 어떤 것인지에 대한 확인 용도로 쓰인다. (2) 업캐스팅은 옵셔널 없이 as만 쓰이지만 ..

iOS

while문에 대해 알아보자

(1) while문 var a: Int = 0 while a < 8 { // a가 8보다 작을 경우에만, 조건을 반복한다. 단, a가 8보다 작지 않게 될 경우, 반복을 종료한다. a += 1 // a에 1을 더해준다. print(a) // a를 프린트 해준다. } while 문에는 거짓된 조건이 성립될 수 있게끔 적어야한다. 무조건 참인 조건이 있을 경우 무한루프에 빠지게 된다. 결과물 : 1 2 3 4 5 6 7 8 a를 1씩 더해주다가 a가 7일때, 7에 1을 더해주고 8을 프린팅해주고 조건문에 8을 넣었을 때, 조건문에 부합하지 않으므로 while문을 빠져나오게 된다. (2) repeat while문 var b: Int = 0 repeat { b += 1 print(b) } while b < 8 ..

iOS

"코드 리뷰 문화"를 읽고

코드 리뷰 문화는 말 그대로, 서로의 코드를 보고 생각을 나누고 어떠한 코드에 대해 승인보다는 좀 더 다듬은 후에 코드를 보여줬으면 하는 마음으로 코멘트를 달면서 수정을 요청하는 문화를 의미한다. 코멘트를 달 때에는, 지적하면서 혼을 내는 것이 아닌 서로 열린 마음으로 협력과 열린 마음가짐으로 달아야 한다는 것을 알았다. 일방적인 지적은 같이 일하는 동료로서 나쁜 이미지만 그 사람에게 남길 뿐이므로 좋지 않다고 생각한다. 그리고 항상, 나의 코드도 100% 완전한 것이 아니기에 스스로 잘한다고 주위에서 들어도 겸손한 마인드를 가질 것. 나의 코드 또한 다른 누군가의 의해 더 나은 모습을 제시받고 그 제시받은 의견을 통해 내가 더 배울 수 있는 기회를 얻을 수도 있기 때문이다.

View의 생명주기는 무엇인가

View의 생명주기에는 총 5가지가 있습니다. viewDidLoad, viewWillAppaer, viewDidAppear, viewWillDisappear, viewDidAppear가 있습니다. 이들에 대해 간략하게 말씀드리겠습니다. viewDidLoad는 view가 메모리에 로드된 후에 호출이 됩니다. 시스템에 의해 자동으로 호출이 되므로 리소스를 초기화하는 용도로 사용됩니다. 화면이 처음 만들어질 때 한번만 호출이 되므로 화면을 초기화하는 코드를 이곳에 적습니다. viewWillAppaer는 view가 나타나기 직전에 호출이 됩니다. viewDidLoad와 달리 다른 화면으로 갔다가 화면 전환을 할 때에, 호출이 되므로, 화면 전환 후에 해주고 싶은 작업을 이곳에 해주며 됩니다. viewDidApp..

Closure란?

일정 기능을 수행하는 코드의 블럭을 말하며, 일급 객체의 역할을 할 수 있습니다. 일급 객체는 전달 인자로 보낼 수 있고 변수, 상수 등으로 저장하거나, 전달할 수 있으며, 함수의 반환값이 될 수 있습니다 Swift에서는 함수는 일급 객체이므로 Closure또한 함수의 역할을 할 수 있습니다. Swift에서의 함수는 일급 객체이면서 Closure의 일종입니다. 함수는 따로 정의된 형태가 아닌 인자로 들어가 있는 형태를 Inline Closure라고 합니다. import Foundation let list = [15, 23, 12, 33, 46] let sorted = list.sorted(by: { (v1: Int, v2: Int) -> Bool in return v1 < v2 }) print(sorte..

Storyboard 없이 UI를 짜는 방법

코드로만 UI를 그릴 수 있다. 이를 위해서는 우선, 그동안 많이 사용했었던 Storyboard를 삭제를 해야하고 추가로 해야하는 준비 과정이 존재한다. 해당 과정은 다음과 같다. 1. 스토리보드를 삭제한다. 2. 위의 파란색 프로젝트를 클릭 → General → Targets → Main Interface의 “Main” 삭제 3. Info.plist에 들어가서 Application Scene Manifest 부분에 마우스를 갖다 대면 Item 0 버튼이 나오는데, 계속 확장해서 위와 같이 펼친다. Storyboard Name을 확장해서 키 부분을 삭제한다. 이때 삭제는 - 버튼으로 삭제하면 된다. 4. SceneDeleagate에 들어가서 willConnectTo 함수안에 해당 코드를 추가 guard ..

iOS

"개발자는 페어 프로그래밍으로 성장한다"를 읽고

원문 페어 프로그래밍의 방식은 아직 해보지 않았지만, 이와 같은 방식을 해볼껄..이라는 생각을 가지게 되었다. 서로의 코드를 봐주고 토론하며 의견을 주고 받는거 자체가 큰 성장에 도움이 된다는 점은 멘토링을 받은 나로써 느끼고 있기 때문이다. 회사에 들어가서 좋은 페어분을 만나길 바라야하고 나 또한 좋은 페어가 되기 위해선 열린 마음으로 코드를 볼 줄 아는 마인드를 가지는 것도 중요한 점이라는 생각이 든다.

"함께 일하고 싶은 개발자상"을 읽고...

원문 “개발자”라는 포지션은 외부에서 봤을 때는 사무실에서 서로 이야기 하지 않으면서 각자의 개발만 하고 사무실에는 키보드 두드리는 소리만 날 거 같은데 실상은 그렇지 않다. 개발을 하는 데 있어서 잘하는 것? 당연히 중요하지만, 내가 얼만큼 다른 팀원들과 발 맞춰서 나아가고 있 는가?에 대한 생각은 반드시 생각해볼 덕목임을 알게 되었다. 그리고 여기에 더해서 나의 주관이 있다면 이에 대한 근거는 명백하고 충분한가 그리고 이를 어떻게 팀원들에게 잘 전달할 것인가? 그 외에도 다른 점들을 갖춘 사람이 일하기 좋은 개발자다! 라는 인터뷰 내용이 더 있지만 위에서 내가 설명한 역량만 갖춰도 개발을 천재적 으로 하지만 소통 능력이 0인사 개발자보다 해당 개발자가 회사에 있어서 더 중요한 개발자가 맞지 않을까? ..

"영리한 개발자와 현명한 개발자의 차이점"을 읽고...

원문 링크 “코드가 뭐든 걸 해결해주는 장치가 아니다.” 코드에 문제가 생길 경우, 이를 해결하기 위해선 시간이 오래 걸리고 복잡성을 증가시키며, 유지 관리 비용도 추가되기 때문이다. 그래서, 영리한 개발자는 언제 코드를 작성해야하고, 안 할 때를 잘 모르기 때문에 코드로 무엇이든 구현하고 해결할려고 하지만 현명한 개발자(연차가 쌓이면서 많은 실수를 통해 실수를 피하는 법을 배운 개발자)는 필요한 것만 구현하면서 치고 빠질 때를 하는 방법을 추구한다. 내가 코드를 쓰면서 느낀 점은 100% 완벽한 코드는 없는 거 같다. cmd + B 를 눌러서 빌드를 했을 때, failed가 뜨지 않는 것에 대해서 이야기하는 것이 아니라, 코드로 기능을 구현함에 따라 후일에 어떠한 아주 조그마한 문제라도 반드시 생길 것..