1차 프로젝트부터 현재 3차 프로젝트를 진행하는 데 있어 매번 빠지지 않던 부분이 바로 클린아키텍처였다.처음 프로젝트를 시작하면서 알게 된 클린 아키텍처를 1차에선 그 의미를 2차에선 필요성을 3차에선 실제 구현으로 이해도를 점차 확장해 왔다.3차 프로젝트에서는 실제 구현도 하기로 했기 때문에, 좀 더 정확한 이해하기 위해 공부하기로 했다.클린아키텍처란?유사한 목적(관심사 분리- the separation of concerns)을 가지는 다양한 아키텍처를 통합하기 위해 고안한 아키텍처 패턴특징프레임워크에 독립적, 특정 기능을 갖춘 소프트웨어 라이브러리의 존재 여부에 의존하지 않음 → 프레임워크를 도구로 활용UI, DB, Web Server 또는 기타 외부 요소 없이도 비즈니스 규칙을 테스트할 수 있음UI..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42578풀이조합으로 해결가능하다옷 종류에 따른 개수 + 해당 옷을 선택하지 않는 경우로 계산하면 된다최소 하나의 옷을 골라야하기 때문에 전체 경우의 수 - 1(아무것도 선택하지 않는 경우)로 계산한다전체코드import Foundationfunc solution(_ clothes:[[String]]) -> Int { var dics: [String:[String]] = [:] for clothe in clothes { //종류별 정리 if dics[clothe[1]] == nil { dics[clothe[1]] = [] } dics..
Managing your app’s life cycle 에서 상세한 내용을 확인가능하다In iOS 13 and later, use UISceneDelegate objects to respond to life-cycle events in a scene-based app. ( iOS 13 이후에서는 UISceneDelegate를 사용 )In iOS 12 and earlier, use the UIApplicationDelegate object to respond to life-cycle events. ( iOS 12 이전에서는 UIApplicationDelegate를 사용 )Respond to app-based life-cycle events (앱 기반 생명주기 이벤트에 반응)실행 시, 앱의 데이터구조와 UI..
옵셔널이란 특정값이 있거나 값이 없음을 표현한 타입으로 구현은 열거형으로 되어있다. 열거형의 case는 두가지가 있다 case some(Wrapped) Wrapped 라는 연관값을 가지는 값이 있는 case some case none 값이 없는 case none 옵셔널 표현 방법 ( 자료형? vs Optional ) var name: String? = "Syrbear" var name: Optional = Optional("Syrbear") 옵셔널을 표현하는 방식은 두가지로 단순하게 자료형 뒤에 물음표(?)를 붙이는 방법과 Optional이라는 자료형 전체를 작성하는 방법이 두가지가 있는데 사용하기에 편리하기에 자료형 뒤에 물음표를 쓰는 방법을 많이 쓴다 옵셔널 값 추출 1. 강제추출 ( Forced U..
문자열 만들기 String.reduce("", { (result, str) -> String in return result + (넘겨받은 str을 변경) }) String.map({ str -> String in return (넘겨받은 str을 변경) }).joined() String.reduce(""){ $0 + (변경된 Str) } //$1로 접근 가능 String.map{(변경된 Str)}.joined() 부분 배열 생성 let origin: [Int] = [1,2,3,4,5,6] let sub: [Int] = Array(origin[0..2]) 문자열 나누기 String.components(separatedBy: "") String.split(separator: "") components, spl..
