1. 오전일정 : 스프린트회고 with 메이커준
메이커준님과 함께 총 오전 3시간을 진행했고, 첫번째 시간에는 지난 1주간 어떤 것을 배웠는지 팀별로 작성하는 작업을 하고 피드백의 중요성에 대한 강의를 들었다.
이번 멋사 일정이 끝나고 나는 어떤걸 이룰지 목표 정하기와 우리 회고조 회고일정 정하기를 했다.
[나의 목표 정하기]
목표1 | 앱 기획을 매주 구체화해서 정리(PPT, 도식화)하고 스스로 및 동료들과 피드백을 통해서 발전시켜서 최종적으로 앱 출시하기 |
목표2 | 주 3개(midium 난이도 기준) Swift 알고리즘 문제 풀이 및 깃 잔디심기 |
목표3 | 매일의 멋사 과정 블로그 작성 |
해당 목표를 달성했지만 불만족스러운 경우 2가지 |
1. 적절한 알고리즘을 대입하지 못하고, 비효율적 방식으로 코드를 작성한 경우 2. Swift 문법 자체를 숙지하지 못하고, 기본 문법이나 최종 풀이에 대해서 구글 및 타 사이트의 도움을 많이 받은 경우 |
해당 목표를 달성하지 못했지만 만족스러운 경우 2가지 |
1. 알고리즘 문제풀이 수는 채우지 못하더라도 적절한 알고리즘을 발견하고 이를 대입하여 문제를 풀이하고, Swift 언어가 지향하는 방식대로 막힘없이 코딩을 할 수 있게 되는 경우 2. 단순히 문제를 풀이하는 것이 아닌 매일 꾸준하게 알고리즘 문제풀이에 도전하면서 스스로 조금씩 성장하는 뿌듯함을 느끼는 경우 |
역량과 목표의 재설정 (역량을 달성하기 위한 목표를 설정해보기) | 매일 1시간 이상 Swift 언어로 알고리즘 문제 풀이 및 깃 잔디심기 - 선택한 알고리즘 및 문제풀이에 대한 나의 생각 깃 업로드(알고리즘이 적절하게 반영되었다고 생각하는지, 그 이유, 주위 사람들의 피드백 등) - 문제풀이 이전 Swift 언어의 문법을 숙지하고, 문제풀이 도중 부득이하게 참고하게 된 문법이 있다면 정리 및 깃 업로드 |
2. 오후일정 : Swift 둘러보기
https://www.swift.org/documentation/
Swift 공식 홈페이지 > 문서 페이지의 내용으로 Swift에 대한 공부를 한다고 한다. 원어로 갱신 시에 바로 확인할 수 있도록 하는 것이 제일 좋다고 추천해주시지만 영어 안한지 오래여서ㅋㅋㅋㅋㅋ 공부해야겠담!
https://bbiguduk.gitbook.io/swift
한국어 번역본을 만들어주신 분도 있으시다! 애플에서 공식문서에 링크해 줄 정도라는게 정말 멋진 것 같다!
그래서 오늘 공부할 부분은 아래 링크에 대한 내용이다.
https://bbiguduk.gitbook.io/swift/welcome-to-swift/swift-a-swift-tour
실습을 Swift Playground()로 진행하는데 컴퓨터 상황 상 Swift Playground를 다운받을 수 없는 상황이여서 xcode에서 Swift 코딩을 진행하기로 했다.
[질문과 답변]
1. 튜플의 용도
- 평상시에 자주 사용하지는 않지만, 다른 값들을 하나로 묶어서 사용하기 위해 쓴다.
2. 상수는 할당하려는 값과 동일 타입이어야 합니다. => 상수는 한번밖에 선언이 안되는데 무엇과 동일한 타입이어야 한다는건가요?
- 아래와 같이 let 선언 시 지정해준 타입과 같은 타입의 값이 들어가야 한다는 것을 의미한다.
let myName: String = "Park"
let myNumber: Int = 42
let explicitDouble: Double = 70
[특징]
- main() 함수 작성할 필요 없음
- 모든 구문 끝에 ;작성하지 않아도 됨. 써도 되지만 안쓰는 것이 추세
- 문자열 지정 시 ""만 사용 ''사용 불가
- 템플릿 문자열 "\(내용)" 형식으로 작성함
- 딕셔너리 선언 Dictionary<String, String> or [String, String] 둘다 사용함
- 배열 선언 Array<Stiring> or [String] 둘다 사용함
- 쌍따옴표 3개 문법 사용(이게 모야... 아직 어떻게 사용하는지 감 안잡히는뎅??)
let quotation = """
I said "I have \(apples) apples."
And then I said "I have \(apples + oranges) pieces of fruit."
"""
[개발팁]
- 상수, 변수 선언 시 상수(let)으로 선언하는 것을 기본으로 하면 좋음
- 타입추론은 가급적 지양, 타입은 선언 시에 최대한 정의하기
- 부동 소수점 수는 정밀도에 따라서 Float(32비트)를 주로 쓰고, 메모리가 큰 값이 필요한게 아니면 Double(64비트), Float80(80비트) 사용은 지양(계산 오래걸림)
- 배열 선언 시,
var fruits = ["strawberries", "limes", "tangerines"] //요런 방식 보다는
var occupations = [ //이런 형식으로 작성
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
- 변수 하나만 출력하더라도 템플릿 문자열을 사용하여 출력
- i,j,k로 변수선언하지 말고 index 등 구체적으로 쓰는게 Swift 언어가 권고하는 방식
** Dictionary<K:Hashable, V>, Set<T:Hashable>에서 "Hashable"이라는 뜻이 궁금해서 찾아봤다.
https://applecider2020.tistory.com/14
** 서브스크립팅 **
- 배열을 접근하는 단축법 (인덱스로 배열의 값을 접근하는 방법)
** '옵션키 + ~' = 백틱, 마크다운문법 **
[오늘의 실습, 기본 선언 및 for문만 사용해서 코딩]
import Foundation
/*구구단 코드*/
for dan in 1...9 {
print("GUGUDAN \(dan)DAN")
for count in 1...9{
print("\(dan) + \(count) = \(dan * count)")
}
}
/*
for dan in 1...9 {
print("GUGUDAN \(dan)DAN")
for count in 1...9{
let result = dan * count
print("\(dan) + \(count) = \(result)")
}
}
*/
/*별찍기 for문 2개 쓰기*/
for line in 1...5{
for printStar in 1...line{
print("*", terminator:"")
}
print("")
}
/*이름 배열출력*/
let names: [String] = [
"Alex",
"Jane",
"Kei"
]
for name in names {
print("Hello, \(name)")
}
/*인덱스, 이름 딕셔너리출력*/
let nameDictionary: Dictionary<Int,String> = [
1 : "Alex",
5 : "Jane",
7 : "Kei"
]
for (key, value) in nameDictionary {
print("Index : \(key), Name : \(value)")
}
/*
for index in nameDictionary {
print("Index : \(index.key), Name : \(index.value)")
}
*/
3. 오늘의 리뷰
간단한 코딩을 하고 조원들끼리 공유를 했는데 같은 부분도 있고 다른 부분도 있어서 너무 신기하고 재미있었던 것 같다.
확실히 오리엔테이션보다 코딩을 하는 시간을 가지니까 너무 재밌다ㅎㅎ
앞으로 진행하는 동안 흥미를 잃지 않고 재미를 가지고 코딩할 수 있었으면 좋겠다!
'멋쟁이사자처럼 앱스쿨 1기' 카테고리의 다른 글
[멋쟁이사자처럼] 앱스쿨 1기 - Playgorund 문제풀이&옵셔널 타입&Swift 연산자 (7일차 22.09.22) (0) | 2022.09.22 |
---|---|
[멋쟁이사자처럼] 앱스쿨 1기 - 컴퓨터 기본지식&데이터타입 (6일차 22.09.21) (2) | 2022.09.21 |
[멋쟁이사자처럼] 앱스쿨 1기 - 정렬 알고리즘&Swift 기초(5일차 22.09.20) (2) | 2022.09.20 |
[멋쟁이사자처럼] 앱스쿨 1기 - Swift&Design Thinking(3일차 22.09.16) (0) | 2022.09.16 |
[멋쟁이사자처럼] 앱스쿨 1기 - 오리엔테이션&테킷(1일차 22.09.14) (2) | 2022.09.16 |