전체 글

iOS 개발/RxSwift

[RxSwift] RxSwift와 MVVM 예제 - 로그인

대부분의 모든 서비스에서 필요한 로그인을 예제로 들어 RxSwift와 MVVM에 대해 공부해보고자 한다. snapkit과 then 라이브러리를 활용한 예제가 블로그에 잘 정리되어 있어서 해당 코드를 참고했다. 참고 사이트: https://pino-day.tistory.com/15 우선, 로그인 및 회원가입에서는 유효성 검증 과정을 필요로 한다. 유효성 검증 과정의 예시로는 이메일과 패스워드 형식이 맞는지, 텍스트 필드에 입력값이 존재하는 지 등이 있겠다. [ViewModel] ViewModel은 View를 위한 Model이라는 뜻으로 알고 있다. 즉, 현재 우리는 로그인 기능을 만들고 있으므로, ViewModel에는 로그인 기능에 필요한 비즈니스 로직이 들어가야 한다. 유효성 검증의 예시로 이메일과 패스..

회고

iOS 신입 개발자 이력서 및 면접 준비 회고

iOS 개발자로 입사하기 위해 2023년 2월부터 4월까지 대략 2개월 동안 취업 준비를 했던 내용을 정리해보려고 한다. 해당 내용은 코딩테스트에 취약한 iOS 신입 개발자 분들이 참고하면 어느 정도 도움이 될 수 있을수도(?) 있다. (글솜씨가 좋지 못한 것은 양해를 부탁드립니다) 우선, iOS 개발자라는 꿈은 컴퓨터공학과 진학 후 부터 계속해서 꿈꿔왔던 목표이기도 했다. 그러나 3학년까지 내가 이뤄온 성과는 동영상을 보며 간단한 화면 이동과 API 연동을 살짝 맛본..? 프로젝트가 끝이었던 것 같다. (계속 말하다 보면 길어질 것 같아서 여기서는 취업을 위해 준비한 내용만 기록하도록 하겠다...) 4학년 때 정말 운 좋게 좋은 친구들을 만나 대외 팀 프로젝트를 진행했고, iOS 개발을 단독으로 맡아 ..

기타

[iOS 면접 실제 질문 모음]

취업을 준비하면서 받았던 면접 질문들을 정리해 보려고 한다. 1. 지원동기 1.1 다른 기업도 많은데 왜 우리 기업인지.. 2. 사전과제 중 delegation pattern을 자세히 쓰지 않았는데 더 자세히 말해줄 수 있는지 3. SwiftUI의 장점이 뭐라고 생각하는지 4. 의존성 관리도구를 cocoapod, spm 둘다 쓴 이유는 무엇이고, 둘 중 어느 것이 더 편하다고 느껴졌는지 5. MVVM패턴은 적용해보신 거 같은데 더 기초적인 MVC를 적용해보지 않은 이유는 무엇인지 6. 포트폴리오를 보면 안드로이드 프로젝트도 존재하는데, 안드로이드에서 iOS로 넘어온것인지 7. 안드로이드와 iOS 중 iOS를 택한 이유 7-1. 회사에 입사를 하게 되면 iOS관련 일을 하게 되겠지만 만약, 안드로이드 관련..

CS

[CS] iOS 면접 질문 정리

1. Bounds와 Frame의 차이점을 설명하시오 Bounds와 Frame은 모두 CGRect 타입이며 원점을 나타내는 데이터(origin)와 size를 나타내는 데이터를 갖고 있다. Bounds는 자신만의 좌표시스템에서의 View의 위치와 크기 값이고 origin은 디폴트로 (0,0)으로 설정되어 있으며 주로 View 내부에 그림을 그릴 때 drawRect를 사용한다. Frame은 superView(한단계 상위 뷰)의 좌표시스템 안에서 view의 위치와 크기 값이고 주로 View의 위치나 크기를 설정하는 경우 사용한다. 2. 실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오. 시뮬레이터는 Mac에서 실행되는 앱이기 때문에 CPU, 메모리 및 네트워크 연결을 비롯한 컴퓨터..

CS

[CS] 인텔리픽 모의면접 질문 정리

보호되어 있는 글입니다.

CS

[CS] 자료구조 면접 정리

Array vs LinkedList Array 가장 기본적인 자료구조인 Array 자료구조는, 논리적 저장 순서와 물리적 저장 순서가 일치한다. 따라서 인덱스(index)로 해당 원소(element)에 접근할 수 있다. 그렇기 때문에 찾고자 하는 원소의 인덱스 값을 알고 있으면 Big-O(1)에 해당 원소로 접근할 수 있다. 즉 random access 가 가능하다는 장점이 있는 것이다. 하지만 삭제 또는 삽입의 과정에서는 해당 원소에 접근하여 작업을 완료한 뒤(O(1)), 또 한 가지의 작업을 추가적으로 해줘야 하기 때문에, 시간이 더 걸린다. 만약 배열의 원소 중 어느 원소를 삭제했다고 했을 때, 배열의 연속적인 특징이 깨지게 된다. 즉 빈 공간이 생기는 것이다. 따라서 삭제한 원소보다 큰 인덱스를 ..

CS

[CS] 운영체제 면접 정리

프로세스와 스레드의 차이 프로세스(Process) 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 한다. 구체적으로 살펴보면 프로세스는 함수의 매개변수, 복귀 주소와 로컬 변수와 같은 임시 자료를 갖는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함한다. 프로세스 제어 블록(Process Control Block, PCB) PCB 는 특정 프로세스에 대한 중요한 정보를 저장 하고 있는 운영체제의 자료구조이다. 운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에..

iOS 개발

[iOS 개발] 기존 앱을 App Store에서 업데이트 하는 방법

쉽고 프로젝트를 App Store에 등록하고 1달 가량의 시간이 지났다. 심사에 통과하자 마자 개인정보처리방침 부분이 잘못되어 버전 업데이트(v1.0.1)를 다음 날 진행하고, 그 뒤로 딱히 버전 업데이트를 진행할만한 피드백을 받지 못했었다. 그러던 중 택배 API의 기간이 만료되어 해당 부분을 교체해주기 위해 앱 버젼을 업데이트해야 될 일이 발생했다. 그래서 전에 수정해야 될 사항들을 정리해 해당 기능들을 업데이트하고 다시 심사를 진행했다. 앱을 업데이트 하는 과정은 다음과 같다. 1. 해당 사진의 Version 부분을 해당하는 버젼으로 바꿔준다. 2. 그 뒤로는 앱 빌드와 동일하다. 실제 기기로 시뮬레이터를 변경 해준 후, Product -> Archive 클릭 후 Distribute App 클릭 3..

bamtorii
bamtori