안녕하세요. 오늘은 iOS의 생명주기에 대해 알아보는 시간을 가지도록 하겠습니다. iOS 앱을 실행하면 사용자가 iOS 앱을 실행하면 다음과 같은 일이 발생합니다. UIApplication 객체 생성 AppDelegate 객체 생성 Event Lopp를 실행하면서 유저의 이벤트 구독 UIApplication 객체는 싱글톤 객체로 여러 이벤트를 감지하고 AppDelegate에 전달하는 역할을 합니다. iOS 앱 생명주기 NotRunning : 앱이 실행되지 않는 상태 Inactive : 앱이 실행 중인 상태 그러나 아무런 이벤트를 받지 않는 상태 Active : 앱이 실행 중이며 이벤트가 발생한 상태 Background : 앱이 백그라운드에 있는 상태 그러나 실행되는 코드가 있는 상태 Suspened : ..
안녕하세요. 오늘은 객체 지향 프로그래밍이 대한 제 이해를 정리하는 포스팅입니다. 많은 객체 지향 설명과 다양한 언어를 통해 객체 지향 프로그래밍을 하면서 느낀 제 생각을 적는 것이기에 오류가 있을 수 있으니 참고 해주세요! 객체 지향 프로그래밍 소프트웨어는 어떠한 문제를 해결하기 위해 제작합니다.(그렇기에 소프트웨어는 문제에서부터 시작됩니다.) 소프트웨어를 프로그래밍하면서 문제를 해결하기위해 다양한 함수와 변수, 상태가 존재하며 이를 체계적으로 관리하고 프로그래밍하기 위해 객체 지향 프로그래밍이 나왔다고 생각합니다. 객체 지향 프로그래밍은 여러 작은 객체들의 상호작용을 통해 어떠한 문제를 해결하는 프로그래밍입니다. 그렇기에 객체 지향 프로그래밍에서 가장 중요한 것을 객체라고 할 수 있습니다. 객체란? ..
안녕하세요. 오늘은 Swift의 메모리를 관리하는 ARC(자동 참조 갯수)에 대해 알아 보겠습니다. 블로그의 내용은 때로는 까칠하게님의 블로그의 내용을 각색하여 작성하였습니다. ARC 작동 방식 클래스의 새로운 인스턴스를 만들 때 ARC는 인스턴스의 정보를 저장하기 위해 메모리를 할당합니다. 또한 ARC는 인스턴스가 더 이상 사용되지 않는다고 판단하면 메모리를 해제합니다. 레퍼런스 프로퍼티에 인스턴스를 할당하면 ARC는 참조되는 프로퍼티의 갯수를 카운팅하여 참조하는 모든 변수가 인스턴스를 해제하기 전에 ARC는 인스턴스를 메모리에서 해제하지 않습니다. 강한 순환 참조 상호간의 인스턴스 안에서 서로의 인스턴스를 참조하는 프로퍼티가 있다면 두 인스턴스를 해제하여도 ARC는 두 인스턴스를 메모리에서 해제하지 ..
안녕하세요. 오늘은 분산 버전 관리 시스템인 Git에 대해 알아보는 시간을 가지도록 하겠습니다. 버전 관리 시스템 버전 관리 시스템이란 쉽게 말해 데이터의 과거와 현재를 차례차례 저장하고 관리하는 시스템입니다. 어떠한 소프트웨어를 개발할 때 각 개발 파일의 변화를 저장하고 관리할 수 있도록 제공하며 이를 통해 팀끼리 파일 공유와 협업을 쉽게 할 수 있도록 도와줍니다. 또한 이전 파일을 확인하거나 백업 기능도 수행할 수 있습니다. 분산 버전 관리 시스템 분산 버전 관리 시스템은 한 서버에만 데이터의 변화가 저장되어 있는 것이 아닌 모든 클라이언트에도 저장되어 있는 형태입니다. 이를 통해 모든 상호작용은 클라이언트에서도 일어나며 오프라인에서도 데이터의 변화를 저장할 수 있습니다. Git의 기본 명령어 학습 ..
안녕하세요 오늘은 애자일의 세부 방법론 정리에 대해 알아보겠습니다. 오늘 알아 볼 방법론은 XP, 스크럼, 칸반 이 3 종류에 대해 알아보겠습니다. 의역, 오역이 있습니다. 참고하시고 오류가 있으면 하단의 댓글에 남겨주세요. 익스트림 프로그래밍(XP) - 개인의 책임과 용기 정의 프로젝트에 참여하는 모든 팀원은 각자의 역학을 가지고 각 기능에 대한 기간을 추찬하여 책임을 가지고 개발을 진행합니다. 이 후 각 기능에 대한 기간이 종료되면 프로토타입이 제작되어 고객의 피드백을 받습니다.특징 개발의 주기가 끝나면 회의를 진행합니다. 이 회의에는 고객도 참여하여 개발의 진행상황과 피드백을 진행합니다. 테스트 기반의 개발을 진행하여 완성도 있는 프로토타입을 사용자에게 제시합니다. 모든 기능은 그 기능만을 충족하는..
안녕하세요. 오늘은 애자일이란는 개발 방법론에 대해 알아보는 시간에 가져보겠습니다. 다양한 곳의 내용을 조합, 각색, 정리하였으며 조사한 사이트의 링크는 글 하단에 남기겠습니다. 애자일 개발 방법론이란? 사용자의 요구사항을 받에 이를 통해 계획을 정하고 개발을 진행하였던 기존의 방법론과 다르게 앞을 예측하여 계획, 설계를 진행하지 않으며 요구사항에 명시된 다양한 기능을 일정한 주기를 가지고 끊임없이 프로토 타입을 만들며 이를 통해 사용자의 피드백을 받아 하나의 커다란 소프트웨어를 만드는 개발 방법론 입니다. 개발 배경 소프트웨어 개발은 다른 공학적인 프로세스와는 큰 차이가 있음을 인지하는 곳에서 부터 시작되었습니다. 소프트웨어 개발은 고객에 요구에서부터 시작되며 고객은 자신의 요구를 잘 표현하지 못합니다..
안녕하세요. 오늘은 Swift의 사용자 정의 연산자 부분에 대해 알아보려고 합니다. Swift는 사용자가 원하는 동작을 하는 연산자를 생성할 수 있습니다. 그렇기에 Swift에서 연산자는 부호로 표현하는 함수라고 할 수 있습니다. 연산자의 종류 연산자를 만들기 전에 Swift의 연산자 종류를 먼저 알아 보겠습니다. Swift의 연산자는 총 3 종류로 전위, 중위, 후위로 구성됩니다. 전위 연산자 연산자가 피연산자 앞에 위치하는 연산자입니다. // 대표적인 예) 논리 부정 연산자 a = !a 중위 연산자 연산자가 두 피연산자 사이에 위치하는 연산자입니다. // 대표적인 예) 기본적인 연산자들 a + b a += b a - b 후위 연산자 연산자가 피연산자 뒤에 위치하는 연산자입니다. // 대표적인 예) 옵..
안녕하세요. 오늘은 WebRTC란 무엇인지에 대해 알아보겠습니다. WebRTC란? WebRTC(Web Real-Time Communications)란 웹, 앱에서 별도의 소프트웨어, 플러그인 없이 영상, 음성, 텍스트, 파일 같은 데이터들을 주고 받을 수 있도록 만든 기술입니다. WebRTC로 구성된 소프트웨어는 별도의 플러그인과 소프트웨어 없이 P2P 화상회의 및 데이터 공유가 가능합니다. P2P 연결을 위해 NAT로 인해 공인 IP와 사설 IP가 달라지게 되는데 이로 인해 각 Client간의 연결이 어려워집니다. 이 때 ICE, STUN, TURN이라는 개념이 들어가게 되는데 먼저 STUN 서버를 이용하여 NAT를 넘어 두 Client간의 연결을 시도하며 NAT의 구조로 인해 실패할 경우 TURN 서..
안녕하세요. 오늘은 Observable의 종류에 대해 알아보겠습니다. 차근차근 천천히 따라오세요! Single Observable의 특수한 형태로 데이터를 무한히 발행하는 기존의 Observable과 달리 Single은 오직 1개의 데이터만 발행할 수 있습니다. Single은 보통 결과가 유일한 서버 API호출을 할 때 유용하게 사용됩니다. Single을 만드는 방법은 just()함수와 Observable에서 Single클래스를 활용하는 방법이 있습니다. //just()를 이용하는 방법 Single.just("data").subscribe(::print) //Single 클래스를 이용하는 방법 //기존의 Observable을 Single로 변환 val source = Observable.just("hel..
안녕하세요. 오늘은 RxJava의 Observable을 생성하는 함수에 대해 소개하는 시간을 갖겠습니다. create() just()와 달리 개발자가 onNext, onComplete, onError와 같은 알림을 직접 호출하여야 합니다. Observable.create{ emmiter -> emmiter.onNext(100) emmiter.onNext(200) emmiter.onComplete() }.subscribe(::print) // 100 200 emmiter을 이용하여 직접 데이터를 넣어주고 완료를 실행하고 에러를 호출하는 모든 작업을 선언하여야 합니다. fromArray() fromArray()는 배열을 Observable로 변환하여주는 생성 함수입니다. 배열의 순서에 맞게 데이터를 발행하는..
- Total
- Today
- Yesterday