profile image

L o a d i n g . . .

728x90
반응형

 

    진짜 오랜만에 강의를 구매했다.

    사려고 눈여겨 보던 강의도 아니었고...어쩌다 들어가게 된 곳에서 발견했는데

    맛보기 강의를 들어본 후 내 손이 멋대로 움직여서 결제를 눌러버렸다.

     

    Android 개발자가 된지 이제 겨우 일년이 지났지만 개발을 하는 내내 항상 궁금했다.

    도대체 아키텍처는 뭐고? 클린 아키텍처는 왜 중요한걸까? (사전적 의미를 모르겠다는 것이 아니다.)

    그렇게 근본적인 질문은 마음 한구석에 묻어두고 개발하기에 급급했다.

    그리고 남들이 다 좋다고 하니..하며 MVVM패턴에 대해 공부하고 적용했다.

    그렇게 실무에서 사용하면서도 찝찝했다. '내가 이거 제대로 알고 쓰고 있는게 맞는건가?'

    알음알음 깨우쳐가며 적용한 MVVM 패턴은 기존에 작성된 (굳이 따지자면) MVC패턴 코드보다

    유지보수하기 편리 했고 RXJava와 함께 사용했기 때문에 점차 깔끔해지고 뭐랄까 정돈된 느낌이 있었지만..

    그럼에도 여전히 의문투성이였다.

    솔직히 기존 코드로도 프로그램은 돌아가니까 말이다.

     

    내가 아주 좋아하는 선생님께서 해주신 말이 있었는데

    라이브러리든 뭐든 개발자를 편하게 해주는 것을 쓰기 이전에, 원본? raw 코드를 꼭 먼저 써보고

    이게 왜 편한건지 알아야한다는 것이다.

    그러니까 무턱대고 Retrofit 쓰기전에,

    HttpUrlConnection으로 통신하고 Handler 써보면서 Retrofit이 얼마나 편한건지를 알아야한다는 뭐 그런..의미다.

    그런데 난 MVC패턴 쓰면서..UI에 모든 코드가 다 들어 있어도 불편함을 몰랐던거다...(빵점이다.)

    다들 MVVM..MVVM..하니까 일단 적용해보긴 했고, 좀 편한것도 알겠는데! 그래서 뭐? 이런 상태였던 거지..

    그렇게 이미 커져버릴 대로 커져버린 마음의 빚을 떠안은채 인터넷을 유영하다 이 강의를 만나버린 것이다.

     

    왜 아키텍처를 꼭 알아야 하는가?

    앱을 개발하는 과정에서 겪게 되는 많은 결정 사항들 중에서도

    앱 개발 전반에 걸쳐 가장 많은 영향을 주는 것이 바로 앱 아키텍처이기 때문이다.

     

    아키텍처란?

    architecture n.건축, 건축 양식, 구조, 구성
    • 애플리케이션 아키텍처란 애플리케이션을 설계하고 구축하는 데 사용하는 패턴과 기술을 설명
    • 애플리케이션을 구축할 때 따라야할 로드맵과 모범 사례를 제공하여 체계적으로 구성된 애플리케이션을 완성할 수 있게 해줌

    (위에서 기술한 MVC, MVVM 패턴은 애플리케이션 설계 패턴으로 클린 아키텍처 구현과 관련해 자주 등장하는 설계 패턴이다.)

     

    모바일 개발에서만 존재하는 어려운 요소들

    • 수많은 이벤트 발생
      • 시스템 이벤트, 라이프 사이클 이벤트 → 잘못된 설계 시 프로그램의 유지보수성을 극도로 저하시킴
    • 이벤트의 처리 결과도 동시다발적으로 불시에 일어날 수 있음. 대응이 지연되면 앱이 정지될 수도 있다.
    • → 반응형 프로그래밍 구조
    • 빠른 배포가 어려움 → 더 견고한 아키텍처 기반이 필요
    • 대부분 앱은 네트워크가 끊어졌어도 동작해야한다. → 유연한 데이터 계층의 구현 필요

     

    무궁한 발전 가능성

    • 성공한 앱을 더 빨리 확장 및 성장시키기 위해
      • 더 많은 모듈화, 더 유연한 아키텍처가 필요
      • 기능 확장을 위한 수많은 실험을 시도해야한다. → 실험 기반 시스템 필요
    • 더 깊은 사용자화
      • Network-driven UI
        • 사용자 개인에 맞춘 UI제공 → 극도로 유연한 UI 구조 필요

     

     

     

    The RED : 강사룡의 앱 안정성 및 확장성 강화를 위한 Android 아키텍처 | 패스트캠퍼스

    스타트업부터 대기업까지 20년간 앱 아키텍처 구축 프로젝트에 참여한 강사룡에게 배우는 Android 아키텍처의 모든 것

    fastcampus.co.kr

    해당 강의는 내 가려웠던 부분을 시원하게 긁어줄 수 있을 것 같아 큰맘 먹고 구매했다.

    완강하고 한층 더 단단한 개발자가 되어야지..!

    아자!


    References

    아래 글을 참고하여 작성 되었습니다.

     

     

    애플리케이션 아키텍처란 무엇인가요?

    애플리케이션 아키텍처는 애플리케이션을 설계하고 구축하는 데 사용하는 패턴과 기술을 설명하여, 체계적으로 구성된 애플리케이션을 완성할 수 있게 해줍니다.

    www.redhat.com

     

    728x90
    반응형

    복사했습니다!