티스토리 뷰

TIL

TIL ('21.03.11)

learner._.Kio 2021. 3. 12. 02:55

학습내용

야곰의 한마디

조금 늦게 가는 건 괜찮다. 늦게 가더라도 제대로 가자.

팀 프로젝트 이유

  • 혼자 공부하면 남에게 설명할 기회가 없다.
  • 확실히 공부하기 위해서는 설명을 할 줄 알아야 한다.
  • 옆에 있는 사람에게 최선을 다해야 한다.
  • 우리는 혼자 잘 살기 위해서 모인 게 아니고, 상향 평준화 되기 위해 모였다.
  • 빨리 갈려고 하면 안된다.
  • 나를 위해서라도 다른 사람을 도와야 한다.
  • 나 때문에 방해가 되는 것 같다라는 생각 접어라. 서로 기회를 주는 거다.
  • 같이 가는 사람이 훨씬 더 멀리가고, 깊게 파고들 수 있다.

문법, 기본기

  • 시간을 들여서 playground 1,2 꼭 해라. 쉽게 생각하지 마라.
  • 기초가 정말 중요하다.

코드리뷰

  • 일주일동안 PR 하나도 못 보내도 괜찮다.
  • 코드 리뷰를 받는 것도 중요하지만 질도 중요하다.

Type, Property, Method

야곰 설명

[속보] 야곰 천원단위 맘에 들지 않아 - "십천원이라 읽을 수 없어" 😡 🤬

import UIKit

/// Type(유형)
// class, struct, enum
// 설명서
struct Person {
    var name: String
    private var money: Int // 접근불가
                            // 접근은 할 수 있는데 수정은 할 수 없는 건?

    func simburum(to: String, by: Person, item: String) {
        print("\(name)이/가 \(to)로 \(by.name)가 시켜서 \(item)을 사러 심부름을 갑니다")
    }

    private mutating func dropMoney() {
        money = 0
    }
}

// instance - 같은 설명서에서 나왔지만 실체화 할 땐 다를 수 있다.
/// jimmy -> Person's instance
var jimmy: Person = Person(name: "찌미", money: 0)

/// yagom -> Person's instance
// [속보] 야곰 천원단위 맘에 들지 않아 - "십천원이라 읽을 수 없어"
var yagom: Person = Person(name: "예곰", money: 10_000)

yagom.simburum(to: "점빵", by: jimmy, item: "88한갑")
jimmy.simburum(to: "이케아", by: yagom, item: "소파")
//yagom.money = 0 // 외부에서 건들면 안되는 거라 보호하고 싶다. private으로 설정하면 접근할 수 없다.
//yagom.dropMoney() // 다른사람이 돈을 잃게 할수가 있다니... private으로 하면 접근 불가

// access level
/*
 open
 public
 internal(생략을 해도 기본적으로 쓰이는 것, 프로젝트 내에서 어디서든 접근가능한걸로 알자 일단은)
 fileprivate(같은 파일 안에서는 쓸 수 있다)
 private(같은 파일이라도 못 쓴다)
*/
/// Instance property
struct Person {
    var name: String
    var money: Int

    func simburum(to: String, by: Person, item: String) {
        print("\(name)이/가 \(to)로 \(by.name)가 시켜서 \(item)을 사러 심부름을 갑니다")
    }
}

/// Type property - 지금 당장은 이해가 어렵다. 차차 알아가보자. 비유가 어렵다.
struct Person {
    static var amount: Int = 6_000_000_000
    var name: String
    static var money: Int

    func simburum(to: String, by: Person, item: String) {
        print("\(name)이/가 \(to)로 \(by.name)가 시켜서 \(item)을 사러 심부름을 갑니다")
    }
}
/* james 생각
 모든 앱 화면마다 배경화면을 바꾸고 싶은데 화면마다 배경을 바꾸면 싶은데
 static값을 적용하면 모든 화면을 바꿀 수 있다.
 전역변수 같기도 하고, type자체에 값을 할당해주는 거라서 전역배경화면
 그러한 변수들에 사용하면 좋겠다고 생각함
 /*

neph, james과 공유한 static 관련 블로그

https://neph3779.github.io/til/2021.03.09-TIL/

https://www.donnywals.com/effectively-using-static-and-class-methods-and-properties/

모듈 - xcode에서 실행하는 project 하나가 모듈이다. 일단은.

  • 모듈(Module)은 배포할 코드의 묶음 단위입니다. 통상 하나의 프레임워크나 라이브러리 또는 애플리케이션이 모듈 단위가 될 수 있습니다. 스위프트에서는 import키워드를 사용해 불러옵니다. - 스위프트 프로그래밍 3판

은닉화

캡슐화

get, set 연산 property

Ryan 질문) enum의 rawValue를 enum 타입 외부에서 rawValue를 활용해서 코드를 작성하는 방식은 은닉화 측면에서 떨어지는 구현 방식이라고 볼 수 있을까요?

  • 딱히 그렇다라고 생각하지 않는다 - 야곰
  • 은닉화 관점에서 좋다 나쁘다 라고 표현하기에 애매하다.
  • 열거형은 잘 쓰면 좋은데 독이 될 수도 있다. switch구문과도 마찬가지로. switch 잘 쓰기 쉽지 않다.

2주차 Kahoot Quiz

  • 내비게이션 방식과 모달리티 방식의 차이는 정보 의 흐름으로 결정한다.

  • UI요소 중 텍스트뷰는 한 줄 텍스트 입력을 위한 요소이다. → X, Textfield에 대한 설명

  • 화면의 상단의 바 이름으로 알맞은 것은 → Status Bar

  • 화면 하단에 액션을 모아둔 바의 이름은 → Tool Bar

  • 불투명도 감소, 화면 읽기, 글자크키 변경 등 사용자의 접근성을 향상하기 위해 살펴보아야 할 내용은?

    Accessibility

  • 값을 보관하는 공간을 만들 때 앞으로 값이 어떻게 바뀔지 모르니 변수로 선언하는 게 좋다. X

  • 타입에 연관된 값을 프로퍼티 라고 부른다.

  • 타입 요소의 기본 접근 수준은 inernal이다. O

  • 공부하다가 막히거나 어려움을 겪는다면 어떡하나요? →

    맥북을 던진다
  • 스위프트의 기본 실수타입은 Double이다. O

왕초보를 위한 iOS 앱개발

  • stpe1 PR 이후로 정주행중
  • 오프닝곡과 엔딩곡이 머릿속에 떠나지 않는다 😱

 

고민한 점 & 새로 알게 된 점

문법

  • 이번 프로젝트 기간동안 최대한 공부해야 하는데 해도해도 밀려든다.
  • 그리고 하는 게 문제라기보다 이해를 해야하는데 후우... 보고 바로 날아가는 휘발성의 나의 뇌 🤯
  • 뇌를 쥐어뜯고 싶은 심정쓰! 그래도 계속 해보자

프로젝트

  • Type을 어떤 걸로 해야할지 고민
  • 팀 프로젝트를 어떻게 하면 효율적으로 할 수 있을지 😭
  • 재고관리를 어떻게 해줘야 할지

Xcode

  • git pull을 했는데 새로 추가한 file이 터미널에는 있지만 Xcode상에 보이지 않고 추가하려고 하면 이미 존재하는 파일이라고 나온다.

    1. 임시방편으로 다른 이름의 file을 생성하여 복사한 후, 원본을 삭제

    2. Xcode의 문제로 재설치...? 😱 😱 😱

      → 오늘 물어본 사람 중 대다수가 같은 증상인데 모두가 Xcode 오류인 것인가...?

'TIL' 카테고리의 다른 글

TIL ('21.03.15)  (0) 2021.03.16
TIL ('21.03.12)  (0) 2021.03.14
TIL ('21.03.09)  (0) 2021.03.10
TIL ('21.03.08)  (0) 2021.03.09
TIL ('21.03.07)  (0) 2021.03.08
댓글