4월 11일 (월)오늘은 처음으로 git을 학습했다. 지금까지 iOS 앱을 사용하면서 git은 단순히 github에 내용을 올려주는 단순한 매개체라고 생각했다. 그러나 오늘 직접 구현해보니 기능이 굉장히 많고, 이 기능들을 공부하고 직접 이용한다면 보다 나은 코드 관리
오늘은 짝 프로그래밍을 처음으로 해봤다. 캠프에서 임의로 짝을 정해주었다. 짝과 github(fork, collaboration)을 하면서 원격 저장소를 공유해보았다. 그리고는 숫자 야구(조건, 들여쓰기 2회 이하)를 만들었다.들여쓰기 2회 이하 조건때문에 한참을 고민
guard : 열려 있는 서랍장 위에서 부터 걸러지고 걸러진다.이것을 if 문으로 표현하게 되면 보기와 같이 guard 문이 사용되기 편할 경우엔 겁내지말고 guard 문을 이용하길 바란다.split의 경우 타입이 'subString'타입으로 배열이 생성되고, foun
함수 naming: 동사로 짓는다.변수 naming: 명사로 짓는다.코드는 계속 변해야 되는 것 (고객의 요구사항은 변하고 그것에 대응해야된다.) \-> 코드는 유연해야 된다. 수정하기 쉬워야한다.\-> 기능별로 나누어서 코딩한다.등이연산자비교연산자 중 등이연산자 '=
오늘은 HIG(Human Interface Guidelines)를 학습했다. 지금까지 iOS 앱을 사용하면서 화면 전환은 단순히 다음 화면을 보여주는 것이라고 생각했다. 그러나 오늘 직접 구현해보니 화면 전환에도 목적에 맞는 역할이 나누어져 있다는 것을 새롭게 알게 되
열거형의 case를 배열로 값을 반환해주는 caseIterable을 알게 되었다.대충대충 하지 말자 확실하게 알아가서 자신있게 사용하자
tabbar: 화면을 병렬적으로 구성toolbar: 화면안에서 액션을 표현instance 인스턴스 : 타이블 실체화, 이니셜라이저 정의코드를 짤 때 뷰와 뷰컨트롤러 구분하기 \-내가 지금 뷰 코딩을 하는지 뷰 컨트롤러 코딩을 하는지
고민한점: 딕셔너리 값이 2개가 나올 때 처리하는 방법에 대해서 고민하였다.해결한점: 이럴 땐 그냥 반복문을 사용하면 된다.고민한점: try-catch 문을 이용하여 오류 처리를 하는 과정에서 "call can throw, but it is not marked with
이니셜 라이저지정 이니셜라이저모든 프로퍼티의 초기화를 책임진다.(최소 1개는 있어야 한다.)같은 클래스 안에서 지정 이니셜라이저를 호출할 수 없다.편의 이니셜라이저같은 클래스 안에서 지정 이니셜라이저를 호출해주는 책임이 있다.클래스에서만 사용 가능하다.편의 이니셜라이저
노티피케이션 센터 생성귀찮지말기
구조체와 클래스공통점값을 저장하기 위한 프로퍼티 정의능을 제공하기 위한 메소드 정의subscript문법을 이용해 특정 값을 접근할 수 있는 정의초기 상태를 설정할 수 있는 initializer정의기본 구현에서 기능 확장특정한 종류의 표준 기능을 제공하기 위한 프로토콜
데이터를 보내는 곳데이터를 받는 곳그림과 같이 identifier를 설정하지 않아 오류가 났었다.Class 이외에도 Storyboard ID를 같게 설정해 주어야 연결이 되는 것을 알게 되었다.오래 앉아 있어서 그런지 기력이 떨어져 비타민을 먹기로 했다.몸 챙겨 먹고
순서viewDidLoad -> 뷰가 나타나기 전 최초 1번만 실행viewWillAppear -> 뷰가 나타날 것이다viewDidAppear -> 뷰가 나타났다.viewWillDisAppear -> 뷰가 사라질 것이다.viewDidDisAppear -> 뷰가 사라졌다.o
유닛 테스트 - 메서드 단위 테스트FIRSTF ast 빠르게I ndependent 독립적인R epeatable 반복 가능한S elf-validating 자신을 입증한T imely 적시에setupWithError(): 테스트 메서드 실행 전에 실행됨teardownWit
여러개의 IBOutlet을 Collection으로 표현하기각 Label text 설정도 다음과 같이 변경해준다.반복문을 이용하여 변경한다.IBOutlet Collection을 이용할 경우 Label설정이 나중에 엄청 많아질 경우 휴면 에러를 피할 수 있다.Stepper
새롭게 알게 된 부분이 있는데 클래스 인스턴스를 프로퍼티로 갖고 있으면 구조체가 아닌 클래스로 선언해주어야한다는 것이다. 왜냐하면 구조체의 immutable 특성이 사라지기 때문에 클래스로 선언해주는 것이 맞다. node를 만드는 것은 참조 타입으로 구현해야 하기에 c
Temp Body
Auto Reference Count메모리 영역 중 힙 영역을 관리한다.인스턴스에서 사용하는 메모리를 해제하여 메모리를 다른 용도로 사용할 수 있도록 한다.ARC가 사용 중인 인스턴스의 할당을 해제하는 경우 해당 인스턴스의 속성에 액세스하거나 해당 인스턴스의 메서드를
20개의 section, 3개의 row를 갖는 TableView를 만들었다.20개의 sections와 3개의 row를 설정하는 DataSource코드각 row에 들어갈 text를 정의하고, 크기를 수정한다.각 section마다 머릿말을 넣어준다.TabelView의 값이
dequeueReusableCellcodeelse 문을 이용하여 row가 0이 아닐 경우 white로 바꿔주는 방법도 있지만prepareForReuse를 이용하는 방법도 있다.TableViewCell에 prepareForReuse 메서드를 사용하여 재사용되는 셀의 속성
label이나 button은 기본으로 true지만 imageView등은 false이다.접근성 문구이다.button의 경우 image가 있다면 해당 image이름으로 label이 설정되기 때문에 따로 설정이 필요할 수 있다.추가 버튼일 경우 button 인 것을 insp
All (고정 안함) Portrait (세로모드) landscape (가로모드) Upside Down (위아래 반전) 위 타입은 UIInterfaceOrientationMask 타입이다.AppDelegate파일 내부에 다음 메서드를 추가해준다.AppDele
1\. 처음 뷰를 띄울 viewController를 변수로 받는다.navigation이 필요한 경우 UINavigationController에 rootViewController 파라미터로 넣어준다.window.rootViewController로 지정해주고 창을 띄워주는
reset: 원하는 시점으로 완전히 돌아간다. 이력이 남지 않아 되돌아감을 되돌릴 수 없다.revert: 되돌아가는 commit을 하는 개념이다. 이력이 남아 되돌아가기 전으로 되돌릴 수 있다.연관성 있는 두 개 이상의 개체 집합을 묶어 좀 더 상위의 개체 집합을 만드
0과 1로 숫자를 표현하는 방법 정보 단위 비트: 0과 1을 나타내는 가장 작은 정보 단위 n비트는 2^n가지 정보를 표현한다. 8bit = 1byte 이진법 : 0과 1로 모든 숫자를 표현 이진수의 음수 표현 2의 보수: 어떤 수를 그보다 큰 2^n에서 뺀 값 -
모든 소스코드(프로그래밍 언어)와 명령어롷 변환된다.고급 언어: 사람을 위한 언어 (프로그래밍 언어)저급 언어: 컴푸터가 직접 이해하고 실행할 수 있는 언어고급언어 -> 저급 언어 로 변환되어야 함저급언어는 2가지 종류가 있다.기계어: 0과 1의 명령어 비트로 이루어진
: 연산한 결괏값과 플래그를 내보낸다.ALU는 레지스터를 통해 피연산자를 받아들이고, 제어 장치로부터 수행할 연산을 알려주는 제어 신호를 받아들인다.연산을 수행한 결과는 특정 숫자나 문자가 될 수 있고, 메모리 주소가 될 수도 있다. 이 결괏값은 바로 메모리에 저장되지
: CPU 속도 단위 -> 속도 가 높은 CPU가 성능이 좋다.오버클럭킹: 일정한 클럭 속도를 유지하기보다 고성능을 요구하는 순간 최대 클럭 속도를 강제로 끌어올리는 기법클럭 속도를 높인다.코어 수를 늘린다.스레드 수를 늘린다.코어: CPU 내에서 명령어를 실행하는 부
주기억장치에는 크게 RAM과 ROM 두 가지가 있고, '메모리'라는 용어는 주로 RAM을 지칭한다.휘발성RAM의 용량이 많을 수록 기억하고있는 프로그램이 많으므로 성능이 좋다고 말할 수 있다.RAM의 용량이 클 수록 많은 프로그램들을 동시에 실행하는 데에 유리하다.DR
하드 디스크, 플래시 메모리(USB, SD card, SSD 등)플래터: 실질적으로 데이터가 저장되는 곳 (동그란 원판)스핀들: 플래터를 회전시키는 구성 요소RPM: 스핀들이 플래터를 돌리는 속도 (분당 회전수)헤드: 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소플래
CPU, 메모리보다 다루기 까다롭다.종류가 너무 많고, 데이터 전송률이 일반적으로 CPU, 메모리는 높지만 입출력 장치는 낮다.즉, 1초에 100마디 하는 사람과 1초에 1마디 하는 사람은 대화하기 힘들다는 것과 비슷하다.이와 같은 이유로 입출력장치는 컴퓨터와 직접 연
: 운영체제가 프로세스들에게 공저앟고 합리적으로 CPU 자원을 배분하는 것우선순위가 높은 프로세스는 대표적으로 입출력 작업이 많은 프로세스가 있다.대부분의 프로세스들은 CPU와 입출력장치를 모두 사용하며 실행된다. 달리 말하면 프로세스는 실행 상태와 대기 상태를 반복하
교착 상태