[SeSAC] July 24, 2023

✔︎ 오늘의 정리

  • Git
  • 함수의 반환값
  • formatted

 


✔︎ git

  1. git과 github의 차이
    • git은 로컬에서 관리하는 버전관리 시스템을 이야기하며, github는 인터넷이 연결되어 있는 클라우드 방식으로 관리되는 버전관리 시스템을 말한다.
    • 혼자 사용할 때는 git만 사용해도 되지만, 여럿이서 협업할 때는 github 이용이 필수적이다.
    • git을 사용하는 이유는 말 그대로 버전 관리를 하기 위해서인데, 때로는 작업 시에 이전으로 완전히 되돌려야 할 때나(reset) 다른 사람이 한 이전의 작업과 내 새 작업물을 합쳐야 할 경우(merge)도 있을 것이다. 무엇보다 오류가 났을 때 원인이 되는 지점을 파악하고 이전 상태로 쉽게 돌아갈 수도 있게 해 준다.
  2. local repository와 remote repository의 차이
    • local repository는 컴퓨터에 저장된 말 그대로 local상의 디렉토리를 말한다. 당연히 인터넷 연결이 없어도 사용할 수 있으며, add와 commit은 local repository에서 일어난다.
    • 반면, remote repository는 github상에 있는 클라우드에 생성된 repository를 말한다. 기존의 local repository에서 add / commit한 내역을 push를 통해 remote repository에 올릴 수 있다.
  3. commit과 push의 차이
    • commit의 경우에는 아직 remote repository에 올라가지 않고, local repository에 add 한 내역을 올린 상태를 말한다. 보통 기능별로 커밋을 한다.
    • push를 하게 되면 local repository에서 commit한 내역을 remote repository에 올리게 된다. 

etc-image-0
https://velog.io/@crosstar1228/git-%EB%B2%84%EC%A0%84%EA%B4%80%EB%A6%AC%EC%99%80-add-commit-push-%EB%8B%A4%EC%8B%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

 

 

 

 

✔︎  함수의 반환값

클래스나 구조체로 선언된 여러 타입들에서는 그에 속한 메서드(함수)를 찾아볼 수 있는데, 비슷한 이름으로 생긴 함수라도 반환값의 유무에 따라 그 대상이 직접 달라지느냐, 대상은 그대로 둔 채로 반환값만 뱉느냐가 달라진다. 

 

예를 들면...

 

 

etc-image-1
etc-image-2

 

shuffle의 경우에는 해당 array의 순서가 달라지고, shuffled의 경우에는 달라진 순서의 array를 반환한다. (원본은 그대로)

 

이러한 친구들은 꽤 많은데(sort/sorted, reverse/reversed... ...), 대부분 ~ing / p.p형으로 된 친구들은 원본 값을 바꾸지 않고 바꾼 값을 반환한다고 보면 된다.

반환값을 뱉는 친구들은 어떻게 사용하냐고 묻는다면 ... ... 바로! 변수에 담아서 사용하면 된다.

 

 

 

let array = [1, 2, 3, 4, 5]
let shuffledArray = array.shuffled()
print(shuffledArray) // [2, 4, 5, 1, 3]

이런 식으로!

 

 

 

 

 

 

 

✔︎  formatted() 

숫자, 디데이, 문자와 같은 데이터를 손쉽게 localization 해 주는 API를 말한다. iOS 15부터 나왔다! 

https://developer.apple.com/documentation/swift/sequence/formatted() 

 

formatted() | Apple Developer Documentation

There's never been a better time to develop for Apple platforms.

developer.apple.com

 

 

이전에는 numberFormatter를 이용하여 퍼센트를 넣거나 세 개의 숫자 단위로 묶어서 쉼표를 표시해 주거나 할 수 있었는데, 그 방식이 조금 더 간단해진 것 같다. 

numberFormatter의 사용법 관련된 공식 문서 링크와 블로그 글은 접은 글에 넣어 두었다!

 

 

 

 

date 예시

 

let date = Date()
print(date)
print(date.formatted())
print(date.formatted(date: .long, time: .standard))
print(date.formatted(date: .abbreviated, time: .complete))

let locale = Locale(identifier: "uk")

let result = date.formatted(.dateTime.locale(locale).day().month(.twoDigits).year())
print(result)

let otherResult = date.formatted(.dateTime.day().month(.twoDigits).year())
print(otherResult)
/*
2023-07-24 14:28:34 +0000
7/24/2023, 11:28 PM
July 24, 2023 at 11:28:34 PM
Jul 24, 2023 at 11:28:34 PM GMT+9
24.07.2023
07/24/2023
*/

 

 

 

 

Number, String formatted 예시

print(33.formatted(.percent))
print(29322293981819.formatted())
print(232311323123.formatted(.number))
print(123123222.formatted(.currency(code: "krw")))
/*
33%
29,322,293,981,819
232,311,323,123
₩123,123,222
*/

 

 

 

 

 

 

이 외에도 show / modal도 하고...

launchScreen도 하고...

Optional Binding도 햇는데...

show / modal은 쓰고 잇는데도 잘 적용이 안 돼서 아직 잘 모르겠고 ㅠ,ㅠ

나머지는 한 번씩 정리해봤던 거라 그냥 넘어가려고 한다...

나옵셔널바인딩은잘해...

가드문을잘못써서그렇지...

가드문 좀 연습해야겠음

TIL 왤케 한 번 열심히 쓰니까 계속 열심히 쓰고 싶어지는지 모르겠다

주객전도되지않도록조심하자...

그날그날 머 배운 거 정리하는 게 중요한 거지 블로그 글에 온 시간을 투자하려고 쓰는 것이 아니다 .. .....

아무튼

오늘 TIL 마쳤으니 하던 과제마저 하러 가야겟다 ^_^

짱이되어주마

'TIL' 카테고리의 다른 글

[SeSAC] August 1, 2023  (0) 2023.08.01
[SeSAC] July 31, 2023  (0) 2023.08.01
[SeSAC] July 27, 2023  (0) 2023.07.28
[SeSAC] July 23, 2023  (2) 2023.07.23
[SeSAC] July 20, 2023  (0) 2023.07.20