본문 바로가기

프로그래밍

(17)
iOS 앱 개발자로 취업하기 2 취업 기간 동안 면접은 총 여섯 번을 봤다. 그중 다섯 번은 주로 실무나 기술에 대해 물어보는 면접이었고, 나머지 하나는 어떤 주제가 있다기보다는 다양한 주제에 대해 대화하는 형식의 면접이었다. 여섯 번의 면접을 보면서 느낀 점은, 원하는 기업에 전략적으로 지원하는 지혜가 필요하다는 것이다. 개발자를 채용하는 많은 기업들이 상시 채용을 하기 때문에 기간에 대한 부담이 공개 채용보다 상대적으로 덜하다. 이 점을 이용해, 한 번에 몰아서 지원을 하기보다는, 원하는 기업을 하나씩 지원하면서 각각의 기업에 집중하고, 채용 과정에서 발견되는 자신의 부족한 점을 보강하는 것이 좋은 것 같다. 첫 번째 면접도 최선을 다해 준비했지만, 실제 면접을 본 것은 처음이었기 때문에 면접 과정에서 나의 부족한 점을 많이 발견할..
iOS 앱 개발자로 취업하기 1 iOS 앱 개발자로 지원한 회사에 최종 합격하였다. 과거에는 인생에서 가장 힘든 시절 하면, 대학수학능력시험(수능)을 위한 고등학교 시절이 떠올랐는데, 이제는 바로 iOS 개발자로 취업하는 지난 몇 달간으로 바뀔 것 같다. 간단히 나의 소개를 하자면, 4년제 대학에서 전자공학을 전공하였고, 대학교 4학년을 마치고, 전공과 관련이 깊은 지금 회사에 입사했다. 그리고 약 2년 8개월 만에 iOS 개발자로 이직을 하게 되었다. 원티드(https://www.wanted.co.kr)를 통해, 여러 기업에 입사 지원을 하였고, 그중 가장 가고 싶은 기업에 최종 합격되어, 해당 기업에 입사하기로 하였다. 2021년 9월 29일부터 지원을 하기 시작했고, 2021년 12월 13일에 최종 합격 발표가 났으니, 두 달이 ..
제네릭(Generics)과 애니 타입(Any Type) 스위프트의 공식 문서에서 제네릭과 애니 타입을 각각 다음과 같이 정의하고 있다. "Generics"(https://docs.swift.org/swift-book/LanguageGuide/Generics.html) Generic code enables you to write flexible, reusable functions and types that can work with any type, subject to requirements that you define. You can write code that avoids duplication and expresses its intent in a clear, abstracted manner. 제네릭 코드는 특정 타입으로 동작하게 함으로써, 유연하고 재사용성이..
mac에서 Script를 이용해 Terminal에서 명령어 실행하기 node.js 파일을 실행하기 위해서 터미널을 자주 사용하는데, 이럴 때마다 매번 디렉터리를 변경해주고 실행하는 것이 여간 귀찮은 일이 아니다. 그래서 이번 시간에는 Script 파일(.command 파일을 사용할 것이다)을 이용하여 터미널에서 명령어를 실행하는 방법을 알아보려고 한다. 매우 간단하지만 아주 유용한 방법이다. 먼저 TextEdit를 열어, 새로운 도큐먼트를 만든다. 기본적으로 .rtf로 만들어지게 되는데, 아래와 같이 Format에 Make Plain Text를 눌러 .txt 파일로 변경해 준다. 그리고 Terminal에서 실행하길 원하는 명령어들을 입력해 준다. 나는 Documnet 디렉터리의 어떤 파일들이 있는지 확인하기 위해 아래와 같이 입력해 주었다. 그다음 아래와 같이 파일명을 ..
같은 계정으로 다른 컴퓨터에서 git 사용하기 git 명령어 중에 clone을 통해, 원격 저장소의 데이터를 기존 컴퓨터가 아닌 다른 컴퓨터(현재 컴퓨터)로 복제할 수 있다. 그전에 원격 저장소에서 사용하던 이름과 계정을 현재 컴퓨터에 등록시켜 줘야 한다. 기존 컴퓨터에서 Terminal을 열어 아래 명령어를 입력한다. git config --list 그럼 기존 컴퓨터에 등록된 계정 정보가 나타난다. 그중에서 user.name과 user.email 정보를 현재 컴퓨터에 등록해야 한다. 등록하는 방법은 다음과 같다. git config --global user.name abc git config --global user.email def@hij.com 이렇게 사전 준비는 모두 끝이 났다. 이제 저장할 디렉터리로 이동하여, 아래 명령어를 입력하면 해당 ..
생성 패턴 - 싱글톤(Singleton) 1 singleton은 다음과 같은 뜻을 갖고 있다. 디자인 패턴에서의 싱글톤도 singleton의 사전적 의미와 크게 다르지 않다. 싱글톤을 살펴보기 전에 다음 코드를 살펴보자. // NonSingleton.swift class NonSingleton { var number: Int init(_ number: Int = 0) { self.number = number print("number가 \(number)인 인스턴스 생성") } } 해당 클래스의 인스턴스는 number라는 하나의 속성을 갖는다. 이 클래스를 이용해 두 개의 인스턴스를 다음과 같이 생성할 수 있다. 두 객체가 포함하는 각각의 number 변수는 1이라는 같은 값을 갖고 있지만, 두 객체는 명백히 다르다. 따라서 obj1에 포함되어 있는 ..
생성 패턴 - 팩토리(Factory) Factory는 공장을 뜻하는 영어 단어이다. 디자인 패턴 중 팩토리가 왜 팩토리라는 이름을 갖게 되었는지는 유추하면서 포스팅을 읽어 나가는 것도 좋을 것 같다. 먼저 다음 코드를 보자. (클래스 별로 파일을 쪼개고 싶지만, 너무 짧아서 Language.swift에 함께 넣었다) // Language.swift enum LanguageType { case Ko; case En; } protocol Language { func hello() -> String } class Korean: Language { public func hello() -> String { return "안녕" } } class English: Language { public func hello() -> String { return ..
디자인 패턴(Design Pattern) 얼마 전부터 "쉽게 배워 바로 써먹는 디자인 패턴(이호진 지음, 한빛미디어)" 책을 중심으로 디자인 패턴에 대해 공부하고 있는데, 객체 지향 언어에 대한 실용적인 활용을 알 수 있게 되어 좋은 것 같다. 책 소개를 잠깐 하자면, 패턴에 따라 3개(생성 패턴, 구조 패턴, 행위 패턴)의 파트로 되어 있고, 각각의 파트는 다시 여러 개의 챕터로 이루어져 있다. 각각의 챕터는 하나의 디자인 패턴을 중심으로 전개된다. 여기서 다루는 디자인 패턴은 GoF(Gang of Four)가 제시한 23개의 디자인 패턴을 포함하며, 추가로 Factory가 있다. (참고로 Factory은 Factory Method와 Abstract Factory으로 구체화된다) 책을 읽으면서 좋았던 점은, 각각의 챕터가 완전히 독립적이라는 ..