개발
-
[Github action IOS] CI/CD Testflight 자동화 배포 하기개발/Swift 2022. 5. 19. 12:44
[iOS] Swift Modern Collection View & MVVM 패턴 가이드 강의 - 인프런 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., Swift iOS UI, 제대로 다루는 핵심 기술! 📲 iOS Swift 레이아웃 구현을 www.inflearn.com 테스트플라이트 배포까지 여러 정보들을 필요로한다. Certification & Provisioning profile 암호화 파일 Certification & Provisioning profile 암호 비밀번호 Certification 비밀번호 ExportOptions.plist Appstore issuer id App..
-
[Github Action IOS] Pod install 할때 private repo(pod) 권한 관련 에러개발/Swift 2022. 5. 16. 14:37
private repo pod 을 프로젝트에서 사용하고있다면 podfile을 보면 이렇게 pod 'Private-Pod' , :git => "" 쓰고 있을것이다. 혹은 ssh 경로 를 사용할것이다. 로컬 환경에서 pod install을 실행시 문제없이 설치가 된다. 만약 설치가 안된다면 로컬 환경에서 git 계정 정보가 keychain에 저장이 되지 않아서이다. priavate pod 에 접근하기 위해서는 접근 가능한 git 계정에대한 정보가 필요하다. username 과 password 일것이다. password 는 PAT 토큰으로 대체되었다. 따라서 username, PAT(PERSONAL_ACCESS_TOKEN) 토큰이 필요하고 로컬환경에서는 이 정보가 키체인에 저장되어있다. 그래서 pod inst..
-
[오브젝트 - 1 ] 객체 지향 프로그래밍개발/프로그래밍 2022. 5. 14. 16:42
제대로 실행 되어야하고 변경이 용이해야 하고 이해하기 쉬워야 한다. class Theather { private ticketSeller : TicketSeller init(ticketSeller : TicketSeller){ self.ticketSeller = ticketSeller } func enter(Audience audience){ if(audience.getBag().hasInvitation()){ let ticket = ticketSeller.getTicketOffice().getTicket() audience.getBag().setTicket(ticket) }else{ let ticket = ticketSeller.getTicketOffice().getTicket() audience.get..
-
[Swift] AssociatedType 추상클래스에서의 사용개발/Swift 2022. 5. 5. 18:47
protocol AbstractRepository{ func create(model :Model) -> Model } 추상화된 리포지토리를 protocol로 구현했다. 이렇게 추상화된 리포지토리를 사용하면 구체화될 리포지토리에서 함수를 상속받아 구현 할수있다. 그러나 만약 Model이 구체화될 리포지토리마다 다르다면 어떻까 class UserRepository{ func create(model :User) -> User {} } class ProductRepository{ func create(model :Product) -> Product {} } 이때 우리는 associatedType을 사용한다. protocol AbstractRepository{ associatedtype Model : Domain..
-
클린 아키텍쳐 , 레이어드 아키텍쳐개발/프로그래밍 2022. 5. 5. 17:35
레이어드 아키텍처 각각 역할에 맞게 계층을 나눈것이다. UI(Presentation) → Application → Domain → Infra(Data) 위와같이 계층이 나누게되며 화살표 방향대로 의존성 방향이다. 간단히 각 계층은 이런 역할들을 담당한다. UI 웹통신 프레임워크, 인터페이스, 입출력 등 외부와의 통신 Application 앱의 주요기능(비즈니스 로직) ,트랜잭션의 시작과끝 Domain 도메인 문제를 담담 (모델) Infra DB와 연결 , 앱외적인 인프라와의 어댑터역할 레이어드 아키텍쳐의 단점은 DB가 설계의 중점이된다는것이다. 따라서 설계에서 DB 설계를 먼저 하게된다. DB설계를 먼저 하게되면 객체의 “액션"이 먼저가 아닌 “상태" 중심적인 설계를 하게된다. 이는 객체지향에 벗어나는 ..
-
[Swift] Drag&Drop Interaction CustomValue 전달개발/Swift 2022. 5. 2. 15:22
요구사항 뷰는 UIViewController 와 UITableView가있다. UITableView에 있는 아이콘을 드래그하여 UIview에 드랍해야한다. 드래그 → 드랍 과정에서 데이터가 오가야한다. (Model) UIView 에 드랍이 되면 UITableView에 있는 아이콘을 드랍하는게 아니라 다른 View를 그려야한다. 일반적인 Drag & Drop 은 UIImage를 전달한다. 하지만 요구사항에 충족하려면 UIImage를 전달해서는 안된다. 어떤 데이터를 받고 그 데이터를 기반으로 새로운 View를 그려야한다. 그러려면 전달하려는 데이터의 클래스(타입)이 ``NSItemProviderReading , NSItemProviderWriting 을 상속하면 된다. 그렇지 않으면 dropSession에서..
-
Swift 코드로 SOLID 이해하기개발/프로그래밍 2022. 5. 1. 18:53
SRP (단일 책임 원칙) 객체는 하나의 책임을 가진다. 여러 책임을 가지면 안된다. 따라서 객체의 역할을 정의하고 책임 주도설계 해야한다. OCP (개발 폐쇄 원칙) 객체의 확장에는 열려있고 수정에는 닫혀있어야한다. 기존 코드를 변경하지 않고 기능확장 할수 있도록 하느것이 목적이다. class Developer : Employee{ func develop() } class Designer : Employee{ func design() } class Marketer : Employee{ func marketing() } class Company{ let workers : [Employee] func doWork(){ for worker in workers{ if(worker is Developer){ w..
-
백준 1303 DFS 활용문제개발/Swift 2022. 4. 8. 19:25
WBWWW WWWWW BBBBB BBBWW WWWWW W와 붙어있는 W들의 총합 = 9 , 7 W 의 위력은 81 + 49 = 130 이다. 결국 붙어있는 W들의 총 합을 구한다면 되는 문제이다. 어떻게 구할수 있을까? DFS 를 통해 가능하다. 첫번째 (0,0) 에있는 W를 보자. 오른쪽엔 B 아래엔 W가있다. (위 왼쪽은 비어있으니 패스) 그럼 아래에 있는 W는 붙어있기 때문에 위력에 도움이될것이다. 이제 아래에있는 W 의 근처를 보고 또 W가있다면 또 그 W에 붙어있는 W가있다면 계속해서 합을 구해서 인접한 W의 갯수를 구하면 된다. 그렇게 위쪽에 있는 W무리를 구할수있다. 이게 지금 딱 한번 dfs를 돌린것이다. dfs는 0,0 부터 5,5까지 반복해야한다. 그러기위해서는 2차원배열을 반복해야하며..