분류 전체보기 63

[SOPT] 야우쓰_2주차 (옵셔널 삼항연산자)

야우쓰란? "야 우리도 스위프트 할 수 있어" in SOPT iOS 2주차의 키워드는 옵셔널 삼항연산자다. - optional 직역하면, optional 이란 wrapped 된 값이나 값의 부재를 나타낸다. 구체적으로 말하자면, 반환하고자 하는 값을 optinal 로 한 번 더 wrapped 하는 것을 의미한다. 왜냐하면 선언한 변수에 값이 없을 수도 있기 때문에, nil 값을 고려한 개념이라고 생각해줄 수 있다. 따라서 값이 있다면 값이 있다고 판단하고, 정상적인 변환이 불가능하다면 nil 값을 반환하고 프로그램이 종료된다. ++ 일반적인 변수, 상수에는 nil 값을 직접적으로 대입할 수 없다. 따라서 옵셔널 타입으로 설정해주어야 nil 대입이 가능하다. var i = 0 i = nil print(i)..

[SOPT] 애니메이션_2주차 (UIGestureRecognizer 중 UIPanGestureRecognizer)

애니메이션 클론코딩 스터디 in SOPT iOS 2주차는 UIGestureRecognizer 에 대하여 공부하였다. UIGesureRecognizer 는 class 의 한 종류이고 말 그대로 gesture 와 관련된 class 다. 아래와 같이 8개의 제스처를 제공한다. - UITapGestureRecognizer - UIPinchGestureRecognizer - UIRotainGestureRecognizer - UISwipeGestureRecognizer - UIPanGestureRecognizer - UIScreenEdgePanGestureRecognizer - UILongPressGestureRecognizer - UIHoverGestureRecognizer 구체적인 제스처 사용법은 따로 포스팅하..

[SOPT] 야우쓰_1주차 (swift 타입 / 기본 연산자 / 조건문 / 반복문 )

야우쓰란? "야 우리도 스위프트 할 수 있어" in SOPT iOS 1주차의 키워드는 타입 / 기본연산자 / 조건문 / 반복문 이다. - 타입 1. bool bool 은 true 와 false 만을 값으로 가진다. var godotHasArrived = false let numbers = 1...5 let containsTen = numbers.contains(10) print(containsTen) // Prints "false" let (a, b) = (100, 101) let aFirst = a < b print(aFirst) // Prints "true" 위는 애플디벨로퍼 공식 문서다. 그렇다면 나는 궁금한 점이 생겼다. 왜 containsTen 이나 aFirst 를 bool 이라고 정의하지 않았..

컴퓨터공학과 휴학 중 4, 5월 계획

더보기 1. 1일 1백준 2. 평일만 최소 3시간 swift 공부 (매일 아티클 작성) 3. SOPT 파트 세미나 매주 정리 & 스터디 매주 정리 (왕초보/애니메이션/문법) + 독서와 영어는 5-6월부터 swift 공부가 안정화되면 시작 + 쉬는 날은 수요일,일요일 (swift 는 수요일에도 하기) + 크롤링 프로젝트 이번주 안에 19기에게 배포 + 하늬가람 회고록 + 메타버스 프로젝트 블로그 써두기 라고 써두었지만 좀 더 구체적으로 잡아보자. 어제 SOPT에서 31기를 수료하신 선배님(?)께서 오셔서 강연을 해주셨고 술자리, 집에 가는 길에도 굉장히 많은 이야기와 조언을 들을 수 있었다. iOS를 공부한지 2년 만에, 그것도 학교를 다니면서 취업에 성공했다는 이야기를 듣고 굉장히 많은 반성과 함께 나도..

youth/생각들 2023.04.23

[SOPT] iOS_2주차_과제

Closure's Capture List Closure 란 이제는 많이 들어봤어도 (이름 없는 함수 느낌) , Capture List 라는 것은 처음 들어본다. 먼저 Capture 란, 클로저를 변수에 할당하거나 클로저를 호출하는 순간, 자신이 참조하는 외부의 변수를 캡쳐한다. 예를 들어, 클로저에서 stored로 선언된 변수를 사용하고자 힙에 저장되는 클로저에 stored 변수 주소를 캡처하는 것을 의미한다고 할 수 있다. 이때 값 자체를 복사해서 사용할 수 있는 캡처리스트도 존재한다. 캡쳐리스트란, 주변 환경의 범위에서 참조한 변수들을 얼마나 강하게 캡쳐해야 하는지를 명시하는 것으로, 이를 통해 메모리 누수를 일으키는 강한 참조 순환을 피할 수 있다. 강한 참조 순환으로는 Closure 의 강한 참조..

나는 한없이 멍청하구나 하지만 재밌으면 된거지

나름 자랑스러운 나의 (제대로 된) 첫 PR - 어제까지만 해도 PR이 뭔지도 몰랐는데 이제 협업할 준비가 됐다는 걸까 ㅋ 나름 자랑스러운 나의 삼일 밤샘(실제로 안샘) 과제 - 나의 지식은 사막인데 그곳에 집을 지으라는 과제를 받았다. 물론 모래집이긴 하지만 뿌듯해 열심히 해야지 ! 잘하고 싶다 ! 후기도 쓸 수 있도록 매주 열심히 살자

youth/생각들 2023.04.21

[SOPT] iOS_2주차_정규세미나 (데이터 전달 심화, SnapKit을 통한 AutoLayout, InjectIII, Then)

목차 1. 데이터 전달 심화 - Protocol / Delegation을 활용한 데이터 전달 - Notification Center를 활용한 데이터 전달 - Closure를 활용한 데이터 전달 - Segue prepare 메소드를 활용한 데이터 전달 2. AutoLayout - Frame-Based Layout - Auto-Layout 3. InjectionIII, SnapKit, Then - SPM (Swift Package Manager) - InjectionIII - SnapKit - Then 4. 실습 코드 - Protocol / Delegation 을 활용한 데이터 전달 실습 - Notification Center 를 활용한 데이터 전달 실습 23.04.12 SOPT iOS 2주차 정규세미나 내..

[SOPT] iOS_1주차_과제 (final/private/lazy var/let/viewController/forEach/$0)

SOPT iOS 세미나 1주차 기본과제입니다. iOS 32YB 신지원 작성 0. 세미나 1주차 과제2 내용 1. final 키워드 사용 이유 상속을 방지하기 위해서 사용한다. final로 선언된 요소들은 직접 호출하는 반면, 그렇지 않은 요소들은 vtable을 통해 간접 호출되어 직접 호출되는 경우보다 느리게 작동한다. 즉, 다른 class에서 상속과 overrider가 불가능하게 된다. vtable 은 오버라이딩에 따라 어떤 지점에서 실행할지를 결정하는 반면, final은 바로 어떤 메서드를 실행할지 결정할 수 있다. 따라서 상속, 오버라이딩 될 필요가 없는 클래스, 메서드, 프로퍼티에 final 키워드를 붙이게 된다면 클래스의 경우 static Dispatch로 작동하게 되어 런타임 시간이 더 효율적..