TCP( Transmission control Protocol ) 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜. 패킷을 추적 & 관리 함. 역할 패킷에 번호를 부여해서 패킷이 중간에 손실되지 않았는지 추적 전송 후 목적지에서 나누어진 패킷이 다시 온전한 데이터가 될 수 있도록 재조립. 특징 서로 데이터를 주고받을 수 있는 양방향 통신이며, 일대일 통신 입니다. 신뢰성 있는 연결을 중시할 때 사용합니다. ex) 전화 흐름제어 데이터 처리 속도 조절 혼잡제어 네트워크 내 패킷 수가 넘치지 않게 방지. IP ( Internet Protocol ) 데이터를 전송하는 역할. 패킷 데이터를 보낼때 한 뭉텅이로 보내는게 아니라, 효율성을 위해 조각조각 나누어 보내는데 이때, 나누어진 데이터를 말..

프로젝트를 처음 만들어봤을때 가장먼저 맞이해주는 override 많이들 보셨죠 ? 아무 생각없이 넘어갔는데 오늘은 override에 대해 한번 파봅시다!! 오버라이드 (override) 일단 공식문서의 내용을 요약해서 먼저 한번 볼까요 상위클래스로부터 상속받은 메서드, 프로퍼티들을 하위 클래스에서 재정의하는 것 살짝 알듯 말듯 하네요. 말보단 코드로 먼저 보시죠 !! 눈으로 보는것 보다 Playground에 따라 쳐보시면 이해가 더 잘갑니다 먼저 Student라는 class를 만들어볼게요. class Student { func sayHello() { print("안녕 나는 학생이야") } } 호출을 하면 어떻게 나오는지 볼까요 ? let student = Student() student.sayHello(..
Extension? 스위프트의 강력한 기능 중 하나로. 기존 클래스, 구조체, 열거형 타입에 새로운 프로퍼티, 메서드, 이니셜라이저 등을 추가하여, 소스 코드에 접근하지 못하는 타입들도 확장해서 사용할 수 있다. 사용시 extension 이란 키워드를 사용하여 확장한다. 선언 extension 확장할 타입 이름 (e.g. Int) { // 타입에 추가될 새로운 기능 구현 } // 또는 extension 확장할 타입 이름: 프로토콜1, 프로토콜2 { // 프로토콜 요구사항 구현 } ⭐️ 확장에 프로토콜 추가 아래와 같은 예시를 보면 struct Language { let name: String } let sweetft: Language = .init(name: "sweetft") let swift = sw..

코드로 레이아웃을 잡아보고 있는데 수정사항이 있을때마다 Run (Cmd + R)을 해야하는 번거로움이 있습니다. 하지만 SwiftUI의 기능중 하나를 써서 실시간으로 변경된 레이아웃을 볼수 있게 할 수 있습니다 !! 결과물 먼저 보시죠! 솔깃한 주제지만 요구사항이 있어요 ! 요구사항 Xcode 11 macOS Catalina iOS 13 ⚠️ 참고 Mac OS: Monterey Xcode: 13 이상 위 조건에 해당한다면 시뮬레이터를 iOS 15버전이상으로 지정해주어야 preview가 실행이 됩니다. 요구사항이 갖춰졌다면 시작해보죠! 기존 레이아웃을 코드로 작성했던곳에 아래 코드를 따로 넣어줍니다. Preview를 보는 코드는 아래와 같아요 (설명도 참고 !) // 전처리 #if DEBUG import ..

ATS(App transport Security)는 iOS 9 버전 이후부터 보안에 취약한 네트워크를 차단시키게 된다. 즉 https 가 아니라면 불러오지 못합니다. 현재 웹뷰 연결시켜야 하는 작업중에 맞는 도메인 주소로 들어가도 아무 화면이 나오지 않았는데 이는 아래와 같이 해결할 수 있다. 1. 프로젝트 내 info.plist 2. info.plist 내용 수정 information Property List에 ' + ' 버튼 클릭 추가된 리스트의 Key값에 App Transport Security Settings 추가 App Transport Security Settings에서 Allow Arbitary Loads 추가 Allow Arbitary Loads의 Value값에 YES 입력 프로젝트 Run..
오늘은 아래와 같은 코드에 대해 알아보려고 합니다. func swapTwoValues(_ a: inout T, _ b: inout T) { let tempA = a a = b b = tempA } 바로 제네릭 ! Generic (제네릭) 사전적 의미 Generic: 포괄적인 Generic의 장점 ? 타입에 유연하게 대처할수 있다. 제네릭으로 구현한 기능과 타입은 재사용에 용이 하고, 코드 중복을 줄일 수 있습니다. 글로 보면 어떤게 편한지 모르니 코드로 보시죠! 먼저 Generic을 사용하지 않고 상황을 들어볼게요. 1) Int를 받는 타입 func swapTwoInts(inout a: Int, inout b: Int) { let temporaryA = a a = b b = temporaryA } var..
Generic을 공부하면서 아래와 같은 코드를 봤다. func swap(_ a: inout Int, _ b: inout Int) { // code } Inout ? 그것도 파라미터 자리에? 뭐지.. 오늘은 Inout 파라미터에 대해 알아보자!! Inout parameter 입출력 파라미터 라고도 불리며, 함수에서 직접 파라미터 값에 접근할 수 있도록 해주는 기능이다. 선언 방법 func 함수명(name: Inout Type) 이런식으로 적어준다. func 함수명(_ 파라미터이름: inout 타입, _ b: inout Int) { } 그리고 인자값을 파라미터로 보내기 위해서는 인자값 앞에 '&' 를 붙여준다. 함수명(&변수, &변수) 일반 함수와 차이. 아래의 예시를 봅시다. 일반적인 함수 func sw..

코드를 보다보면 아래처럼 함수(func) 선언 한것 앞에 static, class 라는 걸 많이 보게되는데 static let shared = MyAlamofireManager() 그냥 선언하면 안되나 static은 뭐야..?? static 과 class 에 대해 알아보기 전에 타입 프로퍼티 를 짚고 넘어가야 됩니다 ㅠ 타입 프로퍼티 (Type property) 특정 타입에 속한 프로퍼티로 그 타입에 해당하는 단 하나의 프로퍼티만 생성됩니다. 이 타입 프로퍼티는 특정 타입의 모든 인스턴스에 공통으로 사용 되는 값을 정의할때 유용합니다. 또한 저장 타입 프로퍼티는 타입자체에 초기자(initializer)가 없기 때문에 항상 '초기값'을 지정해서 사용해야 합니다. 어우 딱딱해... 그냥 타입 프로퍼티를 사용..
그동안 iOS 공부를 하면서 눈으로 훑고 지나갔던 것들이 나중에 돌아보면 또 까먹더라. 정리해서 남겨놓자. 내가 모르는것 (헷갈리는것도 포함)을 이곳에 나열하고 하나하나 블로깅을 해보려고 한다. 블로깅 한건 키워드 옆에 링크달고 취소선 긋기. 타입프로퍼티 https://peppo.tistory.com/7 override https://peppo.tistory.com/13 final class mutating https://peppo.tistory.com/26 struct / class https://peppo.tistory.com/25 싱글톤 (singleton) https://peppo.tistory.com/28 instance / method https://peppo.tistory.com/17 ino..
문제 카메라 기능 작업중, 사용자가 카메라 접근권한을 허용하지 않을시 alert창을 띄워져야하는데 콘솔에 아래와 같은 에러가 뜨면서 앱이 꺼져버렸다. *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread.' 에러내용을 보면 layout 엔진은 main thread에서 접근이 되었다면 background thread에서 수행되어서는 안된다. 위 내용을 바탕으로 에러가 났..
- Total
- Today
- Yesterday
- Class
- 원티드 프리온보딩
- Swift Leetcode
- Combine: Asynchronous Programming with Swift
- Swift
- swift (programmers)
- 2023년 회고
- Swift inout
- CS 네트워크
- Swift 내림차순
- swift programmers
- Swift 프로퍼티
- RTCCameraVideoCapturer
- Swift init
- ios
- iOS error
- swift 고차함수
- Swift 알고리즘
- Swift 프로그래머스
- swift property
- Swift final
- RIBs tutorial
- Swift ModernRIBs
- Swift joined
- Swift Error Handling
- Swift RIBs
- swift protocol
- swift reduce
- removeLast()
- Swift joined()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |