ABOUT ME

iOS, Swift 개발 블로그입니다.

Today
Yesterday
Total
  • Swift - Swift 코드의 구성요소
    Programming/Swift 2020. 9. 15. 17:12

    bongkarn thanyakij  님의 사진, 출처:  Pexels

     

     

    안녕하세요 BeePeach입니다 :)

     

    오늘은 Swift 문법을 시작하기 전에 코드의 기본적인 구성요소들의 용어에 대해서 함께 공부해 보려고 합니다.

     

     


     

    TOKEN (토큰)

     

    a + b
    view raw token.swift hosted with ❤ by GitHub

    위에 간단한 코드를 봐주세요! 여기서 a를 쪼갤 수 있을까요?

    더 작은 의미로 나눌 수 없습니다.

    이렇게 a와 같이 의미를 가지며 코드를 구성하는 최소 단위를 Token(토큰)이라고 합니다.

     

    그럼 나머지 token을 찾아보세요!

    +, b 이렇게 더 이상 나눌 수 없는 것들이 token입니다.

    token을 구분할때는 띄어쓰기(공백)로 구분하게 됩니다.

    Swift에서 공백은 spacebar, tab, return 키를 사용해서 입력하는 문자를 말합니다.

     

     

    va r,
    va r,
    va
    r,
    view raw var.swift hosted with ❤ by GitHub

    var는 변수를 선언할 때 사용하는 Keyword입니다.(키워드에 대해선 뒤에서 배울게요.)

    그런데 공백을 사용해서 위와 같이 표현하면 더 이상 변수 저장의 의미를 가지지 못합니다.

    공백을 이용해서 var을 나누게 되면 더 이상 token이 아니게 됩니다.

     

     


     

    EXPRESSION (표현식)

     

     

    var a = 10
    a

    위에 코드는 변수 a에 10을 저장하고 a에 접근하는 코드입니다.

    여기서 2번째 줄의 a는 token이죠? 여기에 더해 token이면서 expression입니다.

    오늘부터 배울 구성요소들은 여러 가지로 중복될 수 있습니다. 위와 같이 token이면서 expression 일수 있는 것처럼요.

     

    Expression이 뭘까요?

    Expression이란 하나이상의 token으로 이루어지며 코드를 실행(Evaluate) 했을 때 한 가지 값을 도출하는 코드를 말합니다.

    그럼 여기서 또 evaluate가 뭔데? 하실 수 있는데, 간단히 Evaluate(실행, 평가)한다는 것은 코드를 실행해서 값을 얻는 행위라고 생각하면 됩니다.

     

     

    7 > 10
    var a = 10
    a < 100

    처음 코드를 보면 7은 10 보다 작죠? 이 코드를 실행하면 false라는 값을 도출하게 됩니다. 값을 하나 얻었죠? 그러므로 7 > 10 은 expression입니다. 그리고 7, 10, > 은 Token입니다.

    그럼 아래의 a < 100 도 expression이라는 것을 아실 수 있을 겁니다.

     

     


     

    STATEMENT (구문)

     

     

    let a = 10
    if a > 5 {
    print("a is bigger than 5")
    }
    view raw statement.swift hosted with ❤ by GitHub

    위에 코드는 생소하죠?? 아직 모르셔도 됩니다!

    코드를 말로 풀어서 설명하면 a라는 상수에 10을 저장하고, 만약 a 가 5 보다 크다면 a is bigger than 5를 출력해줘 라는 의미입니다.

     

    if가 쓰여있는 부분부터 볼게요

    a > 5 expression 이죠? 아래에 print(“a is bigger than 5”) 이것도 expression입니다.

    이처럼 한 가지 이상의 expression이 모여서 작업을 실행하게 하는 코드를 Statement(구문)이라고 합니다.

     

     


     

    LITERAL (리터럴)

     

    이제 다음 코드로 Literal과 Identifier, Keyword 대해서 한 번에 공부해볼게요.

     

     

    let numberOne = 1
    let stringName = "Beepeach"
    var number3 = 2
    view raw literal.swift hosted with ❤ by GitHub

    Literal이란 문자 그대로라는 말처럼 문자 그대로의 의미를 가지는 데이터를 말합니다.

     

    이 세 개의 코드에서 literal은 무엇일까요??

    1과 2와 “Beepeach”입니다.

     

    첫 코드는 numberOne이라는 상수에 1을 저장하고 있죠? 여기서 1은 ‘문자 그대로’ 우리가 생각하는 숫자 1의 의미를 가집니다. 그리고 이것을 더 자세히는 Number Literal입니다.

     

    두 번째를 볼까요? stringName이라는 상수에 Beepeach라는 문자열을 저장했습니다. 그럼 여기에서도 Beepeach는 ‘문자 그대로’ Beepeach를 나타내는 String Literal입니다.

     

    세 번째 코드를 보면 숫자 3이 있습니다. 그럼 이것도 Number Literal 아니야? 왜 위에서 3 은 literal에 포함 안 했어??라고 하실 수 있습니다. 하지만 잘 생각해보시면 3은 ‘문자 그대로’ 3의 의미를 가지는 데이터가 아닌 것을 알 수 있습니다.

    Literal에는 Boolean Literal, nil Literal, Integer Literal 등등 여러 종류가 있습니다.

     

     


     

    IDENTIFIER (식별자)

     

    let numberOne = 1
    let stringName = "Beepeach"
    var number3 = 2
    view raw literal.swift hosted with ❤ by GitHub

    여기서 상수와 변수의 이름 numberOne, stringName, number 3을 Identifier(식별자)라고 합니다.

    간단하게 identifier는 함수의 이름, 변수의 이름, 상수의 이름, 메서드의 이름처럼 이름이라고 생각하면 됩니다.

     

     


     

    KEYWORD (키워드)

     

    let numberOne = 1
    let stringName = "Beepeach"
    var number3 = 2
    view raw literal.swift hosted with ❤ by GitHub

    그럼 이 코드에서 남은 let, var 은 무엇일까요??

    바로 Keyword(예약어)입니다.

     

    Keyword란 Swift에서 기능을 구현하기 위해 미리 지정해놓은 단어입니다. 

    let은 상수를 선언할 때 사용하는 keyword인 거죠.

    var는 변수를 선언할 때 사용하는 keyword입니다.

    예약어의 종류는 아주아주 많습니다. if, else, guard, switch, class, struct …….. 지금은 각각 뭘 의미하는지 모르시겠지만 공부해가면서 점점 알아가게 될거에요!

     

    Swift를 공부하시는 분들 모두 화이팅입니다!!

     

     


     

    참고자료

     

    https://kxcoding.com

     

    여러분의 새로운 도전을 응원합니다 | KxCoding

    Mastering SwiftUI 더 적은 코드로, 더 멋진 UI 만들기

    kxcoding.com

     

     


    728x90

    'Programming > Swift' 카테고리의 다른 글

    Swift - Number Data Type  (0) 2020.09.19
    Swift - Type Annotation, Type Inference  (0) 2020.09.16
    Swift - Naming Convention  (0) 2020.09.16
    Swift - Constants and Variables  (0) 2020.09.16
    Swift - Scope  (0) 2020.09.15
Designed by Tistory.