본문 바로가기

Swift

(23)
[iOS] super 클래스에서 발생되는 delegate! sub class의 delegate로 한번에 처리하기 | Base view #1 안녕하세요. 벌써 수확의 계절이 왔네요. (전 이제부터 시작인데,,🌻 ㅎㅎ) 요즘은 앱 개발을 할 때 어떻게 공통적인 코드들을 줄일 수 있고 쉽게 활용할 수 있을지를 고민하며 개발을 합니다. 오늘은 view 타입의 Base(super) class에서 선언한 delegate와, base class를 상속받은 sub class에서 어떻게 sub class에서 추가적으로 발생하는 또 다른 delegate를 super class의 delegate와 같이 sub class의 한 개의 프로퍼티에서 수행할 수 있는지 해결 과정을 글로 작성하려고 합니다: ] 공통 뷰와 BaseDelegate를 구현하게 된 상황 지금 개발중인 "여행을 가다" 앱에서는 위와 같은 컴포넌트들이 있습니다. 제가 생각했을 때 이 사진에서 공통..
[iOS architecture] Swift에서 MVVM과 MVC 아키텍처 차이점 자세히 파해치기! | ViewModel, Model의 역할 구분하기!!!! 안녕하세요. 이번 포스트는 MVVM 아키텍처를 사용할 때 Combine framework로 input/output을 정의하기 전에 MVVM과 MVC의 차이점을 파해쳐보면 좋을 것 같아 글을 따로 작성하게 되었습니다. 소프티어 부트캠프 활동을 하며 새로 알게된 내용이 많아 정리도 할 겸 글을 작성하게 되었습니다. 중요. 가장 중요하다고 생각이 드는 MVC와 MVVM의 차이가 무엇인지 생각하기 MVC와 MVVM의 차이점이 무엇일까요? 지금 당장 차이점을 모른다면 ViewModel을 선언해서 사용 할 이유도 없고 input/output binding으로 흐름을 제어하는 이유가 없습니다. 굳이 MVVM을 사용하는 이유도 없습니다. 제 글을 통해 조금이라도 도움이 되셨으면 좋겠지만 제가 표현을 잘 못해서 글이 조..
[iOS] UnitTest?! 테스트 코드를 짜면 좋은 이유 | Protocol을 통한 의존성 주입+역전 개념 완전 뿌수기 안녕하세요!! 요즘 에어컨 빵빵한 곳에 있으니 공부가 잘 되네요. 오늘 "테스트 코드"를 일부 주제로 열정 빵빵한 부트캠프 팀원들과 의논하며 테스트 코드에 대해 의견을 나누며 공부 했습니다!!! 제가 테스트 코드를 작성하며 알게된 뜻밖의 장점?과 프로토콜을 사용하는 이유와 프로토콜의 장 단점, 의존성 주입과 역전 원칙에 대해서 소개하려고 합니다. 추가로 제가 이해한 Stub과 Mock에 대해서 차이도 소개할 것입니다. 소프티어 부스트캠프.. JK님 덕에 정말 좋은 개념들을 알아가게됬습니다... Unit Test. 누구세요? 뭘 테스트하는 거죠? Unit test를 소개하기 전에, 우선 테스트 코드!는 내가 또는 다른 개발자가 구현한 일부 기능이 잘 동작되는지!! sut(system under test)의..
[Swift] OOP. ObjectOrientedProgramming의 객체 설계 파해치기!!! | struct vs class | Class 설계 탐구하기 +_+ 안녕하세요! 오랜만에 OOP를 공부하면서 캡슐화, 상속, class vs struct, 다형성, Composition(조합)등의 잠시 잊고 있었던 개념을 머릿속으로 불러오게 되었습니다. 바이시클 카드, 포커 카드 등 다양한 카드의 parent가 될 수 있는 Card클래스를 구현해봤습니다. ObjectiOrientedProgramming 간략하게 OOP(ObjectOrientedProgramming)를 소개하자면 객체라는 기본 단위를 모델링하고 이를 다양한 곳에서 원하는 목적에 맞게 상속받아서 사용하는 것입니다. 모델링이라는 개념은 현실 세계의 개념을 추상화해서 우리가 개발하는 xcode에서 swift 언어로 클래스와 프로퍼티가 있는 객체를 만드는 과정을 의미합니다. (관련 DB 개념 정리 링크) cf. ..
[Swift] private(set) var vs computed property | Read-Only 프로퍼티는 왜 사용할까? 요즘 열심히 현대자동차 부트캠프에서 주어진 키워드에 대해 공부를 하고 있습니다. 기존에 해왔던 방식으로 임무를 완수하거나 개발하게 된다면 늘 그래왔듯 익숙하고 편하지만 더 많이 배우고 싶어 다양한 시도를 하고 있습니다.. 학습 키워드는 OOP였습니다. 캡슐화는 당연히 필수였고, 늘 하던 방식으로 객체를 선언하다가 문득 든 생각.. private(set) vs computed property(연산 프로퍼티). 우선 read-only에 대해서..Read-Only property란?외부에서 임의대로 값을 변경하지 못하게 클래스나 구조체 내부 변수를 보호할 수 있습니다. Concurrent한 환경에서 concurrecy problems이 발생되지 않음으로 안정합니다. 외부에서 클래스 내부의 read-only 변..
[백준/Swift] 모음의 개수: 1264 | PS일지 문제 간단한 문제 요약 영문 입력 받았을 때 모음 "a,e,i,o,u" 개수를 세시오!!!!!!!! 고려해야 할 사항 # 입력 받을 시 종료! 코드 while let input = readLine(), input != "#" { print( input .lowercased() .filter { "aeiou".map { String($0) }.contains(String($0)) }.count) }
[iOS] 보이지 않는, 사용되지 않는 subview를 superview로부터 제거하는 방법 | Strong reference 오늘은 또 네트워크 TCP 통신관련 프로젝트를 만들다가 신기한 경험을 했습니다... 사용하지 않는 뷰의 메모리 할당해제 관련 주제입니다. side menu는 잠깐 들어가는 것이고 메인 뷰와 사이드 뷰 둘 다 뷰로 구현했습니다. 그래서 일반적으로 sideView를 보여줘야할 경우에만 인스턴스를 할당하고 hide될 때 해제를 했습니다. sideMenu는 옵셔널로 할당했습니다. 그리고 showSideMenu라는 함수를 실행할 때마다 인스턴스 할당을 했습니다. 저 setLayout함수안에서 view.addSubview(self)를 진행합니다. hideSideMenu에서는 화면 전환 애니메이션 로직을 모두 실행한 이후에 sideMenu = nil처리를 해서 MessageListViewController 내부에 인..
[iOS] PrepareForReuse() 의 중요성 | UICollectionView 안녕하세요. 오늘은 앱 개발 하다가 다시 한번 prepareForReuse()의 중요성을 깨닫고 개념과 제가 마주한 에러를 해결한 경험을 소개하려고 합니다. (23.07.23)재사용 큐 탐구 포스트 링크 1. prepareForReuse()란? 컬랙션 뷰를 사용할 때, 새로운 cell을 보여줄 때마다 특정 데이터를 바탕으로 cell 인스턴스를 만드는 것은 메모리 사용량이 많아집니다. guard let cell = collectionView.dequeueReusableCell( withReuseIdentifier: MyCell.id, for: indexPath) as? MyCell else { return .init() } 그러기에 컬랙션 뷰를 만들 때 재사용하고 싶은 cell을 등록하고 cellForRo..