전체 글

전체 글

    운영체제(OS) - 프로세스

    프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 프로세스는 프로그램, 입력, 출력, 상태를 갖는다. 동일한 프로그램을 2번 실행시키면 2개의 프로세스가 생성된다. 이들은 프로그램은 갖지만 입력, 출력, 상태는 실행할 때, 조건에 따라 달라질 수 있다. 프로세스 모델: *program counter: 다음 cpu가 수행해야 할 명령어의 주소를 저장하는곳. (a) 다중 프로그래밍  메모리에 여러개의 프로그램을 적재한다 -> 다중프로그래밍 cpu는 한개의 프로그램씩 순차적으로 수행한다. 한개의 프로세스씩 순차적으로 실행하기 때문에 프로그램 카운터는 한개로 충분하다. (b) 병렬처리 4개의 프로그램을 독립적으로 병렬처리를 한다. 독립적인 순차프로세스를 진행한다. 동시..

    IOS - 화면 터치 시 키보드 내려가기

    TextField를 터치해서 키보드가 활성화 되고, 아무 처리를 하지 않으면 키보드가 사라지지 않아서 해당 위치에 있는 버튼들을 사용하기 힘들 때가 있다. return키를 누르면 키보드가 내려가게 할 수도 있지만 일반적으론 그냥 바닥화면을 터치하면 키보드가 내려가게 코딩한다. ViewController 아래에 코드를 추가해주면 화면 터치 시 키보드가 내려간다. 클래스내에 override를 추가해준다. 예) import UIKit class MainVIewController: UIViewController{ override func viewDidLoad() { super.viewDidLoad() } //소스들... //키보드가 내려가게 하는 코드 override func touchsBegan(_ thouc..

    UIKit - UITextfield

    UITextField: - 텍스트를 편집하기 위한 객체, 사용자가 클릭하면 텍스트를 입력, 수정 할 수 있다. - 여러줄을 입력할 수 없고 '한'줄만 가능하다(여러줄을 하기위해선 UITextView) TextField.becomeFirstResponder() 화면이 넘어가면 자연스럽게 커서가 텍스트필드로 넘어오고 텍스트모드가 됨. textField.keyboardType = .emailAddress // 텍스트 필드의 키보드 스타일 textField.returnKeyType = .done // 엔터버튼? 의 모드 textField.placeholder = "이메일 입력" // placeholder textField.borderStyle = .roundedRect // 선 스타일 textField.isSe..

    IOS - AutoLayout의 Hugging, Compression Resistance Priority

    Xcode에서 UI컴포넌트들을 클릭하면 Hugging Priority와 Compression Resistance Priority를 설정할 수 있다. Hugging priority는 늘어나는 우선순위 Compression Resistance priority는 줄어드는 우선순위 여러 오브젝트 중 하나가 커져야 하는 상황 -> Hugging priority 여러 오브젝트 중 하나가 작아져야 하는 상황 -> Compression Resistance priority 두 우선순위 모두 크기가 높으면 자신의 크기를 유지한다.

    IOS - UIAlertController 팝업(알림)창

    1. 알람 객체 선언 및 초기화 2. 알람 버튼 만들기 3. 알람 객체와 알람 버튼 연결 4. 화면에 표현 이 순서대로 진행하면 된다. 1. let alert = UIAlertController(title: "성공", message: "회원가입 완료!", preferredStyle: UIAlertController.Style.alert) UIAlertController객체 생성 및 초기화. 2. let okAction = UIAlertAction(title: "확인", style: .default) {(action) in // 버튼을 클릭시 할 작업을 넣는다. return } 예를 들어 버튼을 클릭하면 메인화면을 보여주겠다 라고 할 경우 let okAction = UIAlertAction(title: "..

    Swift - DateFormatter

    DateFormatter는 날짜, 시간 등과 관련된 객체이다. 에를들어 "2020-05-16 11:30" String 형태를 Date 형태로 변환하여 날짜를 계산한다던지, "2020-05-16 11:30" String을 "2020년 05월 15일 오전 11시 30분" 형태로 변환한다던지.. 1. Date를 원하는 형식의 Format로 변환. Date()를 선언하면 현재의 Date를 얻을 수 있다. 이 때 얻은 Date는 "2020-08-13 09:14:48 +0000"이런 형태로 전달받게된다. 원하는 형식으로 바꾸고자 한다면 DateFormatter의 dateFormat이라는 함수를 이용하면 된다. 예) "yyyy-MM-dd HH:mm" -> "2020-03-11 02:52" yyyy: 년도 MM: 월 ..

    IOS - Navigation Controller

    Navigation Controller: - 계층적 내용을 탐색하기 위한 스택 기반의 체계를 정의하는 컨테이너 뷰 컨트롤러. 스택: Stack ㅇ LIFO(Last in First Out) 자료구조로 가장 늦게 push된 item이 가장 먼저 pop된다 ㅇ push: item 넣기 ㅇ pop: item 빼기 ex) 아이폰의 설정창 Navigation Bar - UINavigaitonBar - 화면 상단에 항상 보여지는 bar - root view 이외의 모든 view에서 back버튼이 있어서, 유저가 계층구조에서 다시 뒤로갈 수 있게끔 해준다. - 현재의 stack level에 있는 view controller에 맞게 변한다. func setupNaviBar(){ title = "회원목록" //네비게이션..

    IOS - Local Notification

    Local Notification(로컬 알림) - 앱 내에서 자체적으로 만든 특정 메시지를 전달하는 알림 - 사용자의 관심을 끄는데에 기본적인 목적이 있다. - 알림을 재생하거나, 앱 아이콘에 뱃지를 지정할 수 있다. - 예를들어 백그라운드앱은 앱이 특정 작업을 완료할 때 경고를 표시하도록 시스템에 요청을 할 수 있다. - 사용자가 원하는 중요한 정보를 전달하는 방법 중 하나이다. UNNotificationRequest(UN은 User Notification의 약자) Local Notification을 이용하기 위해 UNNotificationRequest를 작성해야한다. UNNotificationRequest을 작성하려면 3가지 내용이 필수적으로 요구가 된다. 1. ID(identifier) - 각각의 ..

    IOS - Firebase A/B Testing

    A/B Testing: - 어떤것이 최적의 환경인지 테스트하는 방법. - 어떤 사용자를 테스팅 대상으로 할지, Google Analytics를 사용해서 구분짓거나 - Firebase 예측을 통해 자동으로 생성된 사용자군으로 타겟팅을 할 수 있다. - 테스팅방법: 원격구성(Remote Config 또는 알림작성기(Cloud Messaging) 활용 - 제품, 마케팅을 실험할 때 어떤것이 최적의 환경인지 데이터기반 의사결정 방법 - 이미 개발한 기능에도 테스트가 필요할 수 있다.

    IOS - Firebase Remote Config

    원격구성(Remote Config)이란? - 사용자가 업데이트를 다운로드 할 필요없이 앱의 동작과 모양을 변경할 수 있는 클라우드 서비스. - 앱 업데이트를 개시하지 않아도 하루 활성 사용자 제한없이 무료로 앱에 동작과 모양을 변경할 수 있다 - 클라우드 기반 key-value 저장소 - 원격구성을 사용할 때에는 앱의 동작과 모양을 제어하는 인앱 기본값을 만들고 이후에 설정한 기본값을 재정의하며 몇 분 내에 앱에 반영을 할 수 있다. 예) 기본값을 설정해 두고 사용자에게 배포를 했다면, firebase 원격구성의 웹 콘솔을 통해 설정해둔 프로모션텍스트 키 값을 변경할 수 있다. 별도의 앱 업데이트 없이, 심사없이, 변경할 수 있다. 앱 업데이트 없이 몇 분 내에 또는 사용자가 앱을 재실행 했을 때 바로 ..