| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
| 31 |
- 의존성 주입
- DeepLink
- Dependency Injection
- SOCKET
- mvvm
- 사이드프로젝트
- swift 소켓통신
- binary data to struct
- RxSwift
- ios binary data
- IOS앱개발
- deferred deeplink
- swift 바이트 버퍼
- clean architecture
- swift-nio
- universal link
- SWIFT
- swift 바이너리 데이터
- 클린아키텍쳐
- 포트폴리오
- swift bytebuffer
- swift 소켓 데이터
- 딥링크
- iOS 아키텍쳐
- 앱출시
- ByteBuffer
- 유니버셜링크
- Today
- Total
목록분류 전체보기 (9)
hyunn
현재 코코아팟 버전 확인pod --version 버전 업데이트가 필요하다면, 코코아팟 설치 진행# 가장 최신 버전으로 설치sudo gem install cocoapods# or# 특정 버전으로 설치sudo gem install cocoapods -v 1.16.2 ❌ Error 발생(터미널 에러 로그를 캡쳐를 안해놔서 정확한 로그가 기억나진 않는다...ㅠㅠ) 우선 에러 발생 시 체크해야 될 건 크게 두가지 인 것 같다. 1. Xcode Command Line Tools 버전2. Ruby 버전 둘 다 업데이트 해주면 된다. 💡 Error 해결1. Xcode Command Line Tools Xcode Command Line Tools 삭제 후 재 설치# 삭제sudo rm -rf /Library/Dev..
자료 구조란?효율적으로 데이터를 관리하고 수정, 삭제, 탐색, 저장할 수 있는 데이터 집합이다. 시간 복잡도문제를 해결하는 데 걸리는 시간과 입력의 함수 관계이다.- 빅오 표기법입력 크기 n의 모든 입력에 대한 알고리즘에 필요한 시간이다.ex. O(n), O(logn) 등 공간 복잡도프로그램을 실행시켰을 때 필요로 하는 자원 공간의 양이다. 선형 자료 구조요소가 일렬로 나열되어 있는 자료 구조이다.1. 연결 리스트데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화시킨 자료 구조이다.삽입과 삭제가 O(1) 걸리며 탐색에는 O(n) 걸린다.2. 배열같은 타입의 변수들로 이루어져 있고, 크기가 정해져 있으며, 인접한 메모리 위치에 있는 데이터를 모아놓은 집합이다.중복을 허용하고 순서가 있다.탐색에..
운영체제란?사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 운영체제의 역할한정된 메모리나 시스템 자원을 효율적으로 분배한다.1. CPU 스케줄링과 프로세스 관리2. 메모리 관리3. 디스크 파일 관리4. I/O 디바이스(마우스, 키보드 등) 관리 컴퓨터의 요소컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어져 있다.- CPU산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치이며, 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행한다.* 제어장치 : 프로세스 조작을 지시하는 CPU의 한 부품이다. 입출력장치 간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정한다.* 레지스터 : CPU 안에 있는 매우 빠른 임시기억..
네트워크란?노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합 좋은 네트워크란?많은 처리량을 처리할 수 있으며, 지연 시간이 짧고, 장애 빈도가 적으며, 좋은 보안을 갖춘 네트워크이다. 네트워크 토폴로지노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태- 트리 토폴로지 : 계층형- 버스 토폴로지 : 중앙 통신 회선 하나에 여러 개의 노드가 연결- 스타 토폴로지 : 중앙에 있는 노드에 모두 연결된 네트워크 구성- 링형 토폴로지 : 각각의 노드가 양 옆의 두 노드와 연결- 메시 토폴로지 : 그물망 형태 병목 현상전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한 받는 현상 네트워크 계층 구조- TCP/IP 4계층애플리케이션 계층 - 전송 계층 - 인터넷 계층 - 링크 계층- OS..
디자인 패턴싱글톤 패턴하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴- 하나의 인스턴스를 다른 모듈들이 공유하며 사용한다.- 장점인스턴스를 생성할 때 드는 비용이 줄어든다.- 단점의존성이 높아진다.- 단점 해결법의존성 주입 (Dpendency Injection)→ 상위 모듈은 하위 모듈에서 어떠한 것도 가져오지 않고, 추상화에 의존해야 한다. 팩토리 패턴객체를 사용하는 코드에서 객체 생성 로직을 분리하여 추상화한 패턴- 상위 클래스에서 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정한다.- 의존성 주입이라고도 볼 수 있다.- 장점코드 리팩토링 용이, 유지 보수성 증가 옵저버 패턴주체가 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 옵저버들에게 변화를 알려주는 패턴..
딥링크(Deep Link)정의DeepLink는 앱의 특정 화면, 기능, 또는 콘텐츠로 직접 이동할 수 있게 해주는 링크이다.종류1. 표준 URL Scheme - 'myapp://' 같은 형식으로 앱 고유의 스킴을 사용2. Universal Links (iOS), App Links (Android) - 웹 URL을 사용하여 앱으로 연결 URL Shceme vs. Universal Links1. 작동 방식 - URL Scheme: 커스텀 프로토콜을 사용하여 앱을 실행 (예: myapp://) - Universal Links: 표준 HTTP/HTTPS URL을 사용 (예: https://www.myapp.com)2. 플랫폼 지원 - URL Scheme: iOS, Android 등 대부분..
목차💌 Binary Data로 서버와 통신 (feat. 소켓 통신)🌟 Byte Buffer란?🍎 Swift에서 ByteBuffer를 사용해서 데이터 읽기 (기본 자료형)🍏 ByteBuffer를 사용해서 Swift 구조체(Struct)로 변환하기💌 Binary Data로 서버와 통신 (feat. 소켓 통신)최근에 채팅 기능을 개발하면서, 소켓(Socket) 통신을 구현하게 되었다.(소켓 통신에 대해서는 채팅 기능 개발이 끝난 후 포스팅하도록 하겠다.)이번에 소켓 통신을 구현하면서, 특이점은 서버와 통신할때 주고받는 데이터 형식이 Binary Data였다는 점이다. 물론, 소켓 통신도 json 형태로 데이터를 주고받아도 된다.하지만, 소켓 통신의 경우 Binary Data로 데이터를 주고받는게 더 ..
✨ DI에 대해 글을 쓰게된 계기Clean Architecture를 공부하면서 항상 어려웠던 개념이 바로 Dependency Injection이었다.그래서 오늘은 DI에 대해서 내가 생각하고 고민했던 과정들과 결과를 글로 정리해보려고 한다.🛠️ Clean Architecture + MVVM이전 포스팅에서도 언급했듯이, 클린아키텍쳐를 프로젝트에 적용해본 적이 있다. 정확히 말하자면 Clean Architecture에 MVVM패턴이 적용된 아키텍쳐이다. 우선 클린아키텍쳐 컨셉에 맞게 Presentation Layer, Domain Layer, Data Layer로 계층을 나누었다.Presentation Layer는 UI를 담당하는 계층이다. MVVM패턴을 적용하여 ViewModel을 두었다.Domain L..
24년 4월 1일.사이드프로젝트를 시작한 날짜이다. 기획과 디자인은 내가 진행했다.우선 기획에 대해 말하기 전에 "피피" 에 대해 먼저 설명하자면, 피피라는 이름은 Private과 Public의 앞글자를 따와서 만들었다. 앱에 대해 설명하자면, 일기와 커뮤니티 게시글 을 작성할 수 있는 앱이다. Private - 개인적인 일기를 작성할 수 있다.Public - 공개적인 게시글을 작성하여 커뮤니티에 업로드 할 수 있다. 기획팀원을 구하기 위해서는 기능명세는 꼭 필요할 것 같아 기능명세를 작성했다. 디자인디자인은 피그마에 진행했는데, 중요하지 않으니 넘어가겠다. (피그마 툴을 사용할 줄 아는거 뿐이다.. ㅎㅎㅎ) 개발인원iOS - 2명안드로이드 - 2명백엔드 - 2명소통 및 기록슬랙협업깃 나에겐 새로운 도..