WooKoo Blog

물과 같이

swift 59

[iOS] - 채팅할려고 정리하는 Swift 채팅 구현 - Socket.io & Node.JS

Swift에서 Socket.io를 이용해서 채팅을 개발하고 있는데 한국어로 된 자료가 너무 없기도하고 (안드도..) 있더라도 필요한 내용이 없어서 이 포스트도 부족하지만 누군가에게는 함께 보면 좋을거라고 생각해서 나도 정리해본다!!! 먼저 구글에 검색했을 때 나오는 좋은 포스트들의 자료들을 함께 봐주면 된다. 먼저 서버 구현 먼저 하도록 하겠다. 이게 내가 앱개발자라 그런지 몰라도 서버에서 작업해줘야하는걸 몰라서 왜 안되나 삽질을 많이 했다. 노드를 먼저 설치해준다.! https://nodejs.org/ko/download/ 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 설치..

개발/개발 2022.03.22

Swift 5.1 새로운 문법 정리

SwiftUI를 공부하면서 Swift 5.1에서부터 나온 문법들을 공부하고 조금 정리해둬야 할 것 같아서 중요한 문법들? 을 정리해보려고한다. 1. Omit Return (리턴 생략) 클로저에서 리턴 키워드를 생략을 할 수가 있었는데 이제 함수에서도 반환하는 값이 명확하다면 생략이 가능하다는 것이다! func sum(a: Int, b: Int) -> Int{ a + b } 이런식으로!! 하지만 어떤 값을 리턴해야할지 명확하지 않은 경우에는 에러가 나게 되고 return 키워드를 앞에 붙여줘야합니다. 2. Some 정리중

개발/개발 2022.01.31

[Swift] - Access Control 접근제어자 (open, public, internal, fileprivate, private)

Accesss Control(접근제어) Accesss Control(접근제어)는 다른 소스파일 및 모듈의 코드에서, 코드의 일부에 대한 액세스(접근)을 제한합니다. 이 기능을 사용하면, 코드의 구현 세부사항을 숨기고, 해당 코드를 접근하고 사용할 수 있는 기본 인터페이스를 지정할 수 있습니다. 개별타입(individualtypes)(클래스, 구조체, 열거) 뿐만아니라 해당 타입에 속하는 프로퍼티, 메소드, 이니셜라이저 및 서브스크립트에 대해 특정접근 레벨을 지정할 수 있다. 프로토콜은 전역 상수, 변수 및 함수처럼 특정 컨텍스트로 제한 될 수 있다. 말 그대로 외부 객체에서 객채 내부의 자료의 접근을 컨트롤하는것 *open 접근은 Class에서만 사용 가능. struct와 eum은 public부터 사용 ..

개발/개발 2022.01.21

[iOS] - Testable한 코드를 작성하기

Testable한 코드를 작성 할 줄 아는가?? 아니면 그러한 경험이 있는가에 대해서 누군가 묻는다면 그런 경험을 한 적은 없는 것 같다. 오늘은 어떤 코드를 보고 Testable 하다는지 조금 정리해보려고한다. https://www.swiftbysundell.com/articles/refactoring-swift-code-for-testability/ 이 사이트를 참조해서 정리 및 공부해보았다. 단위 테스트는 앱의 품질을 개선하고 확장성 있도록하는 훌륭한 도구라고한다. * Bitrise : 쉽게 테스트 및 자동 앱배포를 할 수 있게 도와준다는 광고가 붙어있는데 다음에 한번 구경해봐야겠다. 1. 순수 함수 테스트하기 쉬운 코드의 한가지 특징은 순수 함수처럼 동작한다는 것! 어느 환경에서도 일정한 값을 도..

개발/개발 2021.12.19

Swift 모델에 파싱하기

MVC나 MVVM에서 모델에 데이터를 담을 때 api를 이용해서 json 데이터나 xml데이터를 파싱해서 넣어줘야할 필요가 있을 때가 있다. 어떻게 모델에 데이터를 집어넣을 수 있는지 알아보자. 일단 모델의 변수명!!!! 처음에 왜 파싱이 안되고 nil로 떨어지나 했더니 모델을 정의할 때 스트럭처 네임을 내 마음대로 지으면 안된다. (정확히는 스트럭처명은 상관없으나 맵핑되어야할 데이터들의 컬럼명은 json 같아야함!!) { "status": "ok", "totalResults": 20, "articles": [ { "source": { "id": null, "name": "CBS Sports" }, "author": "Brent Brookhouse", "title": "UFC 260 results, hi..

개발/개발 2021.12.03

[iOS] - iOS 환경에서 의존성 주입(Dependency Injection) 알아보기

의존성 주입을 하면 좋은 점이 많다고 하길래 해당 내용을 iOS를 기준으로 공부해보도록 할 것 이다. 먼저 기본적으로 알아야할 개념들이 너무 많아서 전부 다룰 수 있을지 모르겠지만 천천히 정리해보도록 하겠다. 1. 의존성 주입 (Dependency Injection) 의존성 주입을 한 문장으로 정리하자면 외부에서 초기화해서 클래스 안에 할당해주는 것입니다. 2. 장점 (왜쓰는가?) 그럼 의존성 주입을 사용하면 뭐가 좋을까? 1. 재사용성이 높아짐 2. 테스트 용이 3. 코드 단순화 -> 결합도는 낮추면서 유연성과 확장성 향상 3. 그럼 의존성이 뭔지 주입이 뭔지 알아보자 의존성이란 Mobile 클래스를 Task클래스에서 사용하고 있으니까 의존성이 생기게 된다. 이처럼 어떠한 클래스에서 다른 클래스를 사..

개발/개발 2021.08.23

[iOS] - Realm 사용해보자 - Realm 메뉴얼

Realm 이란? 오픈 소스 이고, 데이터 베이스 이고, 모바일 환경을 위한 타깃 것이고, 기존의 정형화된 데이터베이스와는 다르게 NoSQL을 지향하는(쿼리 안쓴다는 거 같음.. )?? 데이터 모델 자체가 객체 컨테이너로 되어있다!! 속도도 기존 데이터 베이스보다 빠르고, 구축도 쉽고 Realm Studio가 있어서 실시간으로 확인 가능 안드와도 DB 공유가 된다! 단점은? 바이너리 용량이 늘어나고 다양한 쿼리를 지원하지 않는다 개인 프로젝트를 하면서 간단하게 필요한 데이터를 객체 형식으로 저장하고 싶었다. CoreData나 SqlLite를 사용해도 되지만 간단한 정도만 필요해서 Realm도 사용해보고 쪼금? 공부도 해보려고한다. ㅎㅎㅎ 먼저 설치는 코코아팟으로 pod 'RealmSwift' 라고 적어주..

개발/개발 2021.05.23

[iOS] - Xcode Code Coverage 정복하기

일을 하다가 iOS도 Code Coverage가 가능하냐는 질문을 받았다. Code Coverage가 뭐지...? 처음 들었다. 찾아보니까 Xcode도 이런 기능이 있어서 정리해보려고한다. 제드님이 잘 정리해주셔서 따라 해보면서 추가 정리를 하도록 해야겠다. zeddios.tistory.com/1141 Code Coverage 안녕하세요 :) Zedd입니다. 오늘은 Code Coverage를 알아보는 방법에 대해서 공부해보겠습니다. # Code Coverage? Code Coverage는 테스트의 가치를 측정하는 도구. (Code coverage is a tool to measure t.. zeddios.tistory.com Code Coverage의 정의 (사전적 정의는 코드의 적용 범위) 테스트의 가..

개발/개발 2021.04.03

[iOS] - 프로젝트에 SwiftLint 적용 시키기

항상 협업을 하면서 중요시 여겨야하는 것이 코 딩 스타일이다. SwiftLint는 그러한 코드 룰들을 적용시켜 사용자에게 경고를 주거나 고쳐주는 라이브러리다. 나의 프로젝트에 적용시켜보자. 먼저 코코아 팟을 이용해서 Pod file에 pod 'SwiftLint' 추가해도록 하자. 그다음에는 빌드 시 검사를 해야하므로 Project 설정에서 Build Phases 에 들어가도록하자. 여기 이렇게 들어오면 왼쪽 위에 + 버튼이 있는데 거기서 New Run Script Phase를 클릭하도록 하자. 그럼 아래와 같은 화면이 나오는데 Run Script 밑에 코드를 짤 수 있게 되어있다. ${PODS_ROOT}/SwiftLint/swiftlint 이거를 입력해주고 자동으로 수정해주길 원한다면 뒤에 ${PODS_..

개발/개발 2021.03.21

[iOS] - Swift Style Guide 정리

회사에서 항상 고려해야하지만 마음대로 잘 안되는 것이 바로 코딩 스타일, 컨벤션..?이 있겠다. 실제로 이런 사항을 항상 코드 리뷰 때 지적을 받는다. 오늘은 jinnify님의 블로그에 정리가 잘되어있어서 보고 정리해보려고 한다. 출처 github.com/raywenderlich/swift-style-guide#function-calls jinnify.tistory.com/57 [Swift] Swift Style Guide 정리 raywenderlich/swift-style-guide를 바탕으로 개인적으로 정리가 필요한 부분을 추가하며 작성하였습니다 :] raywenderlich/swift-style-guide The official Swift style guide for raywenderlich.com..

개발/개발 2021.02.26