소프트웨어공학
-
RxFlow란소프트웨어공학/아키텍처 패턴 2022. 10. 9. 18:14
이번 글에서는 RxFlow란 무엇인지에 대해 공부한다. RxFlow란 RxFlow is a navigation framework for iOS applications based on a Reactive Flow Coordinator pattern. RxFlow 공식 깃허브에서는 이렇게 정의하고 있다. Coordinator 패턴(+ flow coordinator)은 이전 포스트에서 공부한 적이 있는데 잘 모르겠다면 참고하길 바란다. 결국 Coordinator 패턴을 반응형 기반으로 구현하게 만들어주는 네비게이션 프레임워크인 셈이다. RxFlow를 쓰는 이유 네비게이션 로직을 분리해야 하는 이유는 Coordinator 패턴에 적어뒀기 때문에 다시 언급하진 않으려고 한다. 그럼 왜 굳이 RxFlow를 써야할까..
-
Coordinator 패턴이란소프트웨어공학/아키텍처 패턴 2022. 10. 8. 12:43
이번 글에서는 Coordinator 패턴이란 무엇인지에 대해 공부한다. Coordinator 패턴이란 Coordinator 패턴이란 iOS 앱에서 Coordinator 객체를 만들어 화면간 전환 로직을 담당하게 만드는 패턴을 말한다. Coordinator 패턴은 왜 필요한가 화면 전환 로직은 보통 VC(ViewController)에 두게 된다. A VC에서 B VC로 present나 push를 통해 전환한다면, 스토리보드를 사용하는 경우 segue를 사용할테고, 코드로 구현하는 경우 B VC를 인스턴스화해서 직접 present하거나 네비게이션 컨트롤러에 push 해줄 것이다. 흔한 방식이다. 이게 왜 문제가 되는걸까? 가장 단순한 이유는 VC가 안그래도 비대한데 화면 전환 로직때문에 더더욱 거대해지기 때..
-
아키텍처 패턴이란소프트웨어공학/아키텍처 패턴 2022. 10. 3. 23:31
이번 글에서는 아키텍처 패턴이란 무엇인지, 어떤 아키텍처 패턴이 있는지에 대해 공부한다. 아키텍처 패턴이란 주어진 상황에서, 소프트웨어 아키텍처에 공통적으로 일어나는 문제에 대한 일반적이고 재사용 가능한 해결 방법 디자인 패턴의 정의와 상당히 유사하다. 둘 다 문제에 대한 해결이 패턴화된 것이라 그런듯하다. 다만 조금 다른 점은 아키텍처 패턴의 관심사가 좀 더 넓다는 것이다. 소프트웨어의 전체 아키텍처를 설계할때 발생하는 문제를 해결할때 아키텍처 패턴 사용을 고려하게 되고, 이후 좀 더 자세히 들어가서 각 모듈을 설계할때 발생하는 문제를 해결할때 디자인 패턴 사용을 고려하는 식이다. 소프트웨어 아키텍처의 각 패턴들을 공부해두면, 이전 개발자들은 어떤 문제를 만나서 어떻게 해결하려고 했는지를 배울 수 있다..
-
디자인 패턴이란소프트웨어공학/디자인 패턴 2022. 9. 24. 23:00
이번 글에서는 디자인 패턴이란 무엇인지, 어떤 디자인 패턴이 있는지에 대해 공부한다. 디자인 패턴이란 소프트웨어를 설계할때, 주어진 상황에서 공통적으로 일어나는 문제에 대한 일반적이고 재사용 가능한 해결 방법 정의만 봐서는 소프트웨어를 설계할때 여러 사람들이 공통적으로 마주하는 문제가 있고, 여러 사람들이 해결 방법을 고안해내다가 '오 이렇게 해결해보니 좋은데?' 하는 것들을 모아서 일반화된 패턴으로 만든 것 같다. 패턴화된 해결법을 쓰면 그 패턴을 아는 사람이 코드를 봤을때 이해하기가 더 쉬울 것이다. 각 패턴들을 미리 공부해놓으면, 어떤 문제를 만났을때 어떤 패턴을 적용하면 쉽게 해결할 수 있을지를 바로 떠올릴 수 있을 것이다. 다만 특정 패턴을 적용해서 해결하는 것과 직접 해결 방법을 고안해서 해결..