[UMC] 1주차 워크북

nini·2022년 6월 11일

UMC

목록 보기
1/13
post-thumbnail

절차 지향 언어(Procedure Oriented Programming)

  • 실행순서, 절차가 중요
  • 프로그래밍을 실행 순서에 의해 코딩하게 되는 언어 → 코드가 작성된 순서대로 처리됨
  • 장점: 속도가 빠름 / 단점: 유지보수가 어려움
  • ex) c

객체 지향 언어(Object Oriented Programming)

  • 필요한 객체들의 종류와 속성들이 중요
  • 다수의 객체로 프로그램을 만들고 서로 상호작용 할 수 있도록 하는 프로그래밍 언어
  • 캡슐화, 상속, 다형성, 추상화
  • 장점: 코드 재사용 가능(by 클래스 상속 가능)
  • ex) JAVA, C++, C#, JAVASCRIPT

Optional

/* 예시 */
let name: String?
  • ‘nil’ 이라는 값을 가질 수 있으면 Optional Type
  • Optional Type을 선언할 때 타입 옆에 ?(물음표) 붙이기
    (’nil’ 값이 없음을 뜻함)

Optional을 벗기는 방법은?

: !(느낌표) 붙이기

  • Optional로 값이 오게 되면 Optional로 감싸여 있어 그 안에 있는 값을 사용하기 위해서는 이를 제거해 주어야 함

UIKit

: iOS, tvOS(애플 티비) 플랫폼에서 사용자 인터페이스를 구현하고 이벤트를 관리하는 웹 프레임워크

(글쓴이 기준) UIKit에 존재하는 많은 컴포넌트 중 자주 사용할 것 같은 컴포넌트 TOP5

  1. UILabel : 뭔가를 설명할 때 고정 텍스트를 넣어 표현하기 때문에 자주 사용하게 될 것 같다.
  2. UIButton : 버튼이 존재하지 않는 앱은 본 적이 없다.
  3. UITextField : 사용자 입력을 받을 수 있어 무언가를 입력 받는 모든 부분을 구현할 때 쓰이는 컴포넌트로 잘 사용할 것 같다.
  4. UISearchbar : 앱에서 원하는 것을 검색할 필요성을 사용자는 느낄 것이다. 그래서 검색창은 거의 필수일 것이다.
  5. UITabBar : 한 앱에는 다양한 섹션들이 존재할텐데 UI적으로도 그 화면들로 전환하기 위한 탭바는 꼭 필요할거라 생각한다.

변수 선언

let

  • 상수
  • let으로 정의한 값은 불변
  • 변수 재할당 불가
  • 값으로 nil로 비워두는 것을 가능하지만, 한 번 값을 선언한 후에는 다른 값으로 초기화할 수 없음

값이 바뀌지 않는다면 안전하게 let 사용하기!

var

  • 변수
  • var로 정의한 값은 변경 가능
  • 변수 재선언 불가
  • 변수 재할당 가능
var year: Int = 2022 // type 결정
var y = 2022 // type 추론하도록 함

year = 2023 // (변수이기 때문에) 값 변경 가능

let을 많이 사용하고 var를 줄이는 게 좋다


Func

: 함수 정의

  • func 키워드를 앞에 사용하며, 함수의 반환 타입과 반환 방향 ->를 나타내고 그 뒤에 반환 타입의 이름을 사용
/* return 함수 만들기 */
func sum(a: Int, b: Int) -> Int {
    return a + b
}

Class

클래스를 정의하여 객체를 만들고 사용!

class Operator {
    let a: Int
    let b: Int // 외부에서 호출된 값을 내부에 있는 a,b에 할당
    
    init(a: Int, b: Int) {
        self.a = a
        self.b = b
    } // 외부에서 호출됨
}

클래스를 선언하는 방법 : class 클래스 이름 { '코드' }

클래스 안의 변수 : 속성
클래스 안의 함수 : 메소드


Struct

: 인스턴스의 값(property)을 저장하거나 기능(메소드)을 제공하고, 이를 캡슐화할 수 있는 스위프트가 제공하는 타입(named type)

struct Person {
    let a: Int // 상수선언
    let b: Int
}

struct 구조체 이름 { ’코드’ }

구조체와 클래스의 차이점
: 구조체는 초기화 함수를 자동으로 생성해주시만, 클래스의 경우 자동으로 생성해 주지 않는다.


What is “init()”

  • 초기화 함수 : 클래스, 인스턴스가 생성될 때 최초로 호출되는 함수
  • init() 문법의 가장 기본적인 형태 : 매개 변수가 없는 형태
init() {
  // 초기화 구현
}

Break Point

중단점 : 소스 코드의 특정 지점에서 프로그램의 실행을 멈추는데 사용

profile
사용자를 고려한 디자인과 UX에 관심있는 개발자

0개의 댓글