반응형


안드로이드 프로그래밍을 하다보면 Activity와 Fragment의 차이가 뭔지 계속 궁금할 때가 있습니다. 대부분 처음 안드로이드를 접하는 사람들은 둘의 차이점을 모르고 접근하여 사용하는 것이 대부분일꺼라 생각합니다. 그래서 그 둘의 차이가 무엇인지 최대한 알기 쉽게 설명을 해보도록 하려고 합니다.


Fragment는 Activity와 View의 개념을 합쳐놓은 것이라고 할 수 있겟습니다. 액티비티와 뷰의 개념을 다 가지고 있지만 기본적으로 설정이 되어있는 계층적인 관계는 변함이 없습니다. Fragment를 이해하기 위해서 Activity와View에 대해서도 간단하게 설명을 해보도록 하겠습니다.

Activity와 View의 특성을 동시에!


 Activity는 가장 밑부분에 존재하는 틀이라고 생각을 하시면 됩니다. 집으로 비유를 하자면 바닥이라고 할 수 있겠습니다. 바닥이 있어야만 그 위에 물건들을 놓을수 있습니다.

이 때 물건들에 해당하는 것이 안드로이드에서 View입니다. 그러니까 View는 Activity가 있어야지만 존재를 할 수 있다는 것입니다. Fragment도 앞서 얘기를 했듯이 Activity가 있어야지만 존재를 할 수 있습니다. 


 하지만 Fragment는 Activity의 성질도 가지고 있다고 했죠? Fragment위에도 View가 존재를 할 수 있습니다. Fragment는 Activity와 View의 중간인 것입니다.


View


Fragment


Activity


자 여기까지만 본다면 Fragment의 필요성은 딱히 보이지 않습니다. 왜냐하면 Activity와 View의 관계로도 충분히 프로그램을 만들 수 있어 보이기 때문이죠. 그렇다면 왜 이렇게 번거롭게 Fragment를 사용해야 하는 것일까?


답은 바로 Activity의 한계 때문에 그렇다고 말할 수 있습니다.

일상 생활에 비유를 해서 설명을 해보도록 하겠습니다.


전기차와 휘발유차가 있습니다. 전기차(Activity1) 전기(View)를 이용해서 운행을 합니다. 조용하고 좋지만 힘이 너무 없어 차가 잘 나가질 못합니다. 그래서 사용자는 전기차를 주차해놓고 휘발유차(Activity2)를 타고 운행을 합니다. 휘발유차는 휘발유(View)를 연료로 사용을 합니다. 이렇게 사용자는 자신이 원하는대로 Activity(전기차, 휘발유차)를 변경할 수 있습니다. Activity가 변하면 View도 따라서 변하게 됩니다. 이 것이 Activity의 특성입니다. 


자 그런데 사람들은 하이브리드를 요구하게 됩니다. 


전기차처럼 조용하지만 휘발유차처럼 잘 나갔으면 좋겠어!


이렇게 말이죠. 그래서 만들어진게 바로 하이브리드자동차(Fragment)입니다.

자동차(Activity)전기모터(Fragment1)가솔린엔진(Fragment2)를 둘 다 가지고 전기(View1)과 

휘발유(View2)를 모두 사용을 할 수 있습니다. 만약 자동차 엔진을 자유자제로 바꿀 수 있다면 디젤엔진(Fragment3)도 같이 추가를 해서 사용을 할 수 있게 되겠습니다. 


이렇게 Fragment(전기차,경유차,휘발유차)는 Activity(자동차)라는 큰 틀에 있는 소형 판들을 의미합니다. 

만약 Activity를 자동차에서 자전거로 변경을 한다면 Fragment또한 전기모터 등에서 자전거용전기모터, 자전거용휘발유모터 등으로 바뀔 수 있습니다. (만약 휘발유자전가랑 전기자전거가 다 있다면 말입니다.)


Fragment를 사용하게 됨으로써 더욱 편리하게 사용을 할 수 있게된 것입니다.

사용자는 Activity를 변경하지 않아도 쉽게 View를 변경할 수 있어서 많이들 사용하는 것입니다.


이제 좀 Fragment이해가 되시나 모르겠네요.

이러한 편리성 때문에 Activity에서 Fragment로 대세가 바뀌었습니다.

Fragment가 그리 어려운 방식이 아니니 한번 사용 방식을 익히시면 그 편리함에서 헤어나오기 힘들겁니다.





반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기