
stackOverflow에 게시된 DialogFragment가 Dialog보다 나은 점에 대한 답변이다.
DialogFragment는 말 그대로 Fragment로써의 기능을 가지므로 lifecycle에 대한 콜백이 존재한다. Activity가 사라질때 window leaks에 대한 걱정 없이 프래그먼트로써 사용할 수 있다.
또 다른 답변의 말을 인용하자면
Are they so much different? A DialogFragment is pretty similar to a Dialog, it's just wrapped inside a fragment.
DialogFragment도 결국 다이얼로그다. DialogFragment는 FragmentTransaction을 수동으로 만드는 대신 show() 메소드를 사용하여 표시한다. 안드로이드 개발 가이드에서도 Dialog 가이드를 참조하라고 한다.

시각적으로 보여지는 표면을 가지는 최상위 화면, 추상클래스를 일컫는다.
안드로이드에서 UI를 렌더링하기 위해 Window - Surface - Canvas - View (크기순) 와 같은 개념이 있다.
여기서부터 이해한 내용을 바탕으로 정리하였으므로 틀릴 수 있습니다

그냥.. 고먐미가 생각났다. 사실 올바르게 비유한 것인지는 모르겠지만...
다이얼로그 윈도우 외부 배경의 어두운 정도를 설정.
매개변수 amount: Float : 0(배경 없음) ~ 1(가장 어두움)
다이얼로그 윈도우 외부를 터치했을 때, 다이얼로그를 cancel()할 지에 대한 여부.
매개변수 cancel: Boolean : true(외부 터치 시 다이얼로그 종료), false(종료하지 않음)
뒤로가기 키를 눌렀을 때 다이얼로그를 cancel()할 지에 대한 여부.
매개변수 flag: Boolean : true(뒤로가기 터치 시 다이얼로그 종료), false(종료하지 않음)

layout_으로 시작하는 속성들(ex. android:layout_margin="...") -> LayoutParams 클래스의 필드값과 매핑FLAG_ACTIVITY_CLEAR_TOP 깃발 꽂아서 Intent로 화면이동시 이동한 화면이 최상위가 되면서 위로 있던 액티비티 모두 부숴버림)WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE 윈도우에 포커스 가지 않도록 함)근데 왜 플래그일까 해서 찾아봤다
사망 플래그가 plug가 아니라 flag였다 심지어 프로그래밍 언어에서 유래됐다
addFlags() vs setFlags()
DialogFragment advantages over AlertDialog
stackOverlow - What is an Android window
[안드로이드]윈도우(Window)
안드로이드에서 뷰가 그려지는 과정
[Anrdroid] SurfaceView 기본 + 심화
Android Window
stackOverflow - What is decor view?
[안드로이드] LayoutParams(레이아웃 파라미터) 개념과 구조/종류
[Android] Flag란? Intent Flag 사용
WindowManager.LayoutParams()
1. 이러면 꼭 죽더라! 플래그란 무엇인가?
Intent :: setFlags() VS addFlags()
stackOverflow - Android:What is difference between setFlags and addFlags for intent
+ GPT (대신 써 준 글 없이 검색에만 활용하였음)