KxCoding 기초 문법 #1

이유진·2024년 2월 27일
0

Swift 문법

목록 보기
3/9

Swift에 대한 이해도를 높이기 위해 듣기 시작한 유튜브 강의!
들으면서 정리해봤다.

  • 1-1
    • 플레이그라운드 생성
    • 플레이그라운드에서 코드 실행
    • 콘솔에서 결과 확인
    • 플레이그라운드 실행 모드
    • Result View에서 결과 확인
    • Quick Look으로 결과 확인

  • 1-2
    • Comments(주석입력)
    • Semicolon
    • Importing Frameworks(프레임워크 가져오기)
    • Printing Values(값 출력)

  • 1-3
    • 프로젝트 생성
    • 프로젝트 빌드

  • 1-4
    • Xcode 작업 화면
    • 일반적인 오류 대처 방법

  • 1-5
    • Tokens
      • 토큰
      • 코드를 구성하는 가장 기본적인 요소
      • 언어를 구성하는 요소 중에서 공백이나 구두점으로 분리할 수 없는 가장 기본적인 요소.
      • 토큰 종류
      • Identifiers, Keywords, Punctuations, Operators, Literals
      • 키워드
      • 프로그래밍 언어가 특정한 기능을 제공하기 위해 독점해서 사용하는 단어
      • 주어진 조건에서 참과 거짓 판별, 만약 i와 f 사이에 공백이 생기면 키워드라고 볼 수 없다.
      • 이처럼 키워드는 쪼갤 수 없기 때문에 토큰이라고 볼 수 있다.
      • 공백(White Space)
      • 토큰을 구분하는 역할
      • 적절한 공백은 코드의 가독성 높여준다.
        -코드를 컴파일 할 때는 모든 공백을 하나의 공백으로 처리한다.
    • Expressions
      • 표현식, 식
        -토큰이 하나 이상 모여서 하나의 값을 도출하는 코드

      • 하나의 값으로 표현되는 코드

      • 코드를 실행해서 하나의 값이 결과로 나왔다면 표현식이라고 한다.

      • 평가(Evaluate): 코드를 실행해서 하나의 결과를 얻는 것

      • 표현식 종류

        let x = 7
        x = 7 //Expression
        x + 1 // -> 8 //Arithmetic Expression
        x < 10 //Boolean Expressions//While문처럼 조건 판단하는 곳에서 주로 사용
    • Statements
      • 문장, 구문, 문
        -하나 이상의 표현식이 모여서 특정한 작업을 실행하는 코드
      • Statements의 종류
      • if문: 조건에 따라 실행할 코드 결정
      • for문: 지정한 횟수만큼 반복하는 코드
      • switch
      • while
      • guard

  • 1-6
    • Literals
      • 리터럴

      • 의미가 변하지 않고 있는 그대로 사용되는 값

      • example

        let x = 7
        //여기서 literal은 하나 뿐. 숫자 7
        //let은 키워드
        //x는 상수의 이름
        //=은 연산자
      • Literals의 종류

      • Integer, Floating-point, String, Boolean, nil

    • Identifiers
      • 식별자, 이름

      • example

        let x = 7
        //여기서 식별자는 x
        //x는 숫자 7을 저장하고 있는 상수의 이름
        //"다른 요소와 구별"한다!
        
        let number = 1
        let Numver = 2
        let _Number = 3
        //이름의 첫 번째 문자는 보통 영대문자/언더스코어
        //나머지 부분은 영문자, 숫자 조합
        //공백은X
        //다 다른 이름으로 인식하지만 작업 시 헷갈릴 수 있다
        
        let memerCount = 1
        let lectureCount = 2
        let fixedRate = 3
        //이런식으로 가독성 있게, 구분이 잘 되게 이름 지으면 좋다
    • Keywords
      • 키워드
        -언어가 제공하는 기능을 위해 미리 예약된 단어
        -식별자로 사용 불가

  • 1-7
    • Compile, Link, Build
      • Compile
        Xcode에서 text로 작성한 코드를 컴퓨터가 이해할 수 있도록 컴퓨터 언어인 0과1,
        즉 Binary 코드로 바꿔줘야 한다. 이 과정을 Compile 이라고 부른다.
      • Compiler
        Compile 작업을 담당하는 도구, Xcode에 내장되어 있다.
      • Link
        사용했던 framework와 library 형태의 코드를 우리가 만든 코드와 연결하는 과정
      • 세 단계를 거치면 실행가능한 파일 만들어진다.
      • 세 가지 과정을 통합해서 제공하는 개발환경을 IDE(Integrate Development Evironment), 즉 통합개발환경이라고 한다. Xcode도 이 중 하나.
      • Compile과 Link 과정을 묶어서 Build라고 한다.
      • 실행 파일 생성 방법: 1.Debug 2.Release
    • Debug, Release
      • Debug
      • 실행파일 생성 방법 중 하나
      • 보통 개발 과정에서 사용
      • 실행 파일 크기 상대적으로 크고 속도가 느려진다.
      • 디버그 정보가 있어 코드 분석하고 문제점 찾기 용이하다.
      • Release
      • 실행파일 생성 방법 중 하나
      • 개발을 끝낸 후 사용자에게 배포할 때 사용
      • 디버그 정보가 포함되지 않아 실행 파일 크기가 작고
      • 컴파일러에서 최적화 과정을 거치기 때문에 속도 빠르다
      • 문제점 찾기 상대적으로 어렵다.
    • Compile time, Runtime
      • Compile time(Build time)
        코드를 작성하는 시점부터, 컴파일과 링크가 완료되는 시점
      • Runtime
        프로그램이 실행되고 있는 시점

  • 1-8
    • Special Characters
      • ! Exclamation Mark
        논리를 부정하거나 optional에 저장되어 있는 값을 추출할 때 연산자로 사용
      • ~ Tilde
        비트 연산에서 주로 사용
      • ` Grave Accent / Back Tick
      • @ At Symbol
        코드 자체의 특성을 지정하는 문법에서 주로 사용
      • Sharp,Pound / Hashtag
      • $ Dollar Sign
        Closer에서 Parameter 이름 대신 사용하는 문자
      • % Percent Sign
        나머지 연산에서 사용
      • ^ Caret
        비트 연산에서 사용
      • & Ampersand
        메모리 주소를 얻거나 참조 전달할 때 사용
        • Asterisk
          곱하기 연산에서 연산자로 사용
      • () Parentheses
        함수 호출, 계산 순서 지정할 때 사용
        • Minus Sign / Hyphen
          뺄셈할 때 사용
      • _ Underscore
        특정 항목 생략할 때 사용하는 와일드 카드 패턴에 사용
      • = Equal Sign
        문자 하나를 쓰면 메모리에 값을 저장하는 연산자로 사용,
        문자 두 개 연달아 쓰면 값을 비교하는 연산자로 사용
        • Plus Sign
          덧셈할 때 사용
      • [] Square Bracket
        주로 컬렉션에 저장 된 값에 접근할 때 사용
      • {} Curly Bracket / Brace
        코드 블록의 시작과 끝을 나타냄
      • \ Backslash
        String Interpolation 혹은 키패스 표현식에서 사용
      • | Vertical Bar / Pipe
        비트 연산, 논리 연산에서 연산자로 사용
      • ; Semicolon
        문장의 끝 지정하는 문자, 스위프트에는 거의 사용되지 않음
      • : Colon
        타입 선언 문법에서 타입의 이름과 식별자 구분
      • , Comma
        항목을 여러 개 쭉 나열할 때 사용
      • . Period
        메소드 호출하거나 속성에 접근할 때 사용
      • <> Angle Bracket
        값의 크기나 순서 비교할 때 연산자로 사용
      • / Slash
        주석에서 사용, 파일 경로나 url에서 자주 볼 수 있음
      • ? Question Mark
        Optional 문법에서 자주 사용

  • 1-9 프로그램에서 데이터를 처리하기 위한 첫 번째 단계 = 메모리에 값을 저장하는 것
    여기에 필요한 것이 변수와 상수! 변수 (Variables)
    //변수 선언 문법
    var variableName = initialValue
    // var : 변수 선언 코드
    // = (Assigment Operator,할당연산자): 오른쪽 값을 왼쪽 변수에 저장하는 역할
    
    var name = "Swift"
    //Swift라는 문자열 값이 name이라는 변수에 저장
    //"Swift" (String Literal,문자열 리터럴): 큰따옴표로 반드시 사용
    
    var thisYear = 2024
    var valid = false
    // true or false (Boolean Literal,불린 리터럴): 참과 거짓을 표현
    
    //저장된 값 읽기
    //변수에 저장된 값 읽고 싶으면 변수 이름만 써도 된다
    //example
    name //표현식
    //but 메모리에 저장된 값을 읽기만 하고 끝낸 것이기 때문에
    //저장된 값 확인하기 위해서는 print나 dump 함수로 확인해줘야 한다
    print(name)
    //같은 변수 name을 출력하지만 결과가 다르다
    //why? print가 값을 출력할 때 줄바꿈 문자(\n)를 자동으로 추가했기 때문
    //변수에 새로운 값을 저장할 때는 var 키워드를 쓰지 않는다
    name = "Steve"
    //변수에 저장되는 값이 누적되지 않고 바뀐다
    //같은 이름을 가진 변수 두 번 이상 선언하는 것은 문법적으로 허용되지 않는다
    name = "윤아"
    
    print(name)
    //이럴 때 출력되는 값은 "윤아"
    
    var anotherName = name
    
    anotherName = "Tim"
    
    print(name, anotherName)
    //실행하면 윤아, Tim으로 출력
    //변수가 어떤 시점에 같은 값을 저장해도 메모리 공간 다르다
    //변수 선언하면 새로운 메모리 공간 생기기 때문에 다른 변수에 영향 주지 않는다
    var thisYear = 2024
    
    theisYear = "2024" //불가능
    //숫자 저장하고 있는 메모리 공간에 문자열 저장 불가
    상수 (Constants)
    //상수는 값을 저장한 후 바꿀 수 없다
    //상수 선언 문법
    	let constantName = initialValue
    //let : 상수 선언 키워드
    	
    let name = "Yoona"
    name 
    //값을 상수로 저장 후 필요할 경우 변수로 바꾸기
    //값을 상수로 저장했을 때 장점 1.코드가 안전해진다 2.컴파일러가 최적화를 한다.

0개의 댓글