Get.Put
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F05f7587d-671f-4aa4-ad2e-66565f2f1975%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-01-05%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%209.41.26.png)
버튼에 Get.to()를 이용하여 다른 페이지로 이동, 그와 동시에 해당 페이지에서 사용할 컨트롤러 바인딩.
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2Feaa9ea0b-879a-465b-bea3-090e7759cbad%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-01-05%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%209.43.45.png)
GetPut 버튼을 누르면 해당 페이지로 라우팅 됨
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F13fe6919-036d-470c-95b8-4ddaa2c64809%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-01-05%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%209.44.29.png)
라우팅 되면서 위의 로그와 같이 컨트롤러 인스턴스 생성 및 초기화
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F89f17806-2516-4adc-b5b1-c80334171fab%2Fimage.png)
뒤로가기 버튼을 누르면 알아서 인스턴스 삭제 및 메모리 제거
Get.lazyPut
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F85e7e92a-4b0d-49b5-b377-ae3af34d791d%2Fimage.png)
lazyPut 사용하기 위한 버튼 생성
lazyPut은 빌더 형식을 쓰기 때문에 <사용할 클래스> 및 ( ()=> ) 형태로 사용
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F444d5571-b876-48e1-94d2-24b6d6714203%2Fimage.png)
Get.lazyPut 버튼을 클릭하면
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2Fafb665e7-aa65-4694-b20b-c8fdb96795d0%2Fimage.png)
Get.Put을 사용했을 때와 달리 인스턴스가 생성 되지 않는다. lazyPut은 해당 컴포넌트 내부에서 무언가가 동작할때 인스턴스를 생성하고 초기화 한다.
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F8045524c-c486-412f-9c1b-d391d75b9b73%2Fimage.png)
해당 페이지로 넘어와 작은 버튼을 클릭하면
그때 인스턴스 생성 및 초기화 / 뒤로가기 버튼을 클릭하면 인스턴스 삭제 및 메모리 제거는 동일하게 작동한다.
Get.putAsync
페이지 라우팅 할 때 데이터를 받아오거나, 가공처리를 오래동안 하고 나서 컨트롤러를 인스턴스화 해야 할 때 사용
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F5a8beb53-5876-4764-aa16-373276c3c629%2Fimage.png)
위와 같이 사용 await는 테스트 해보기 위해 딜레이를 5초 줌
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2Ff6ef95af-17e5-4763-8657-5be30269c0da%2Fimage.png)
Get.putAsync 버튼을 누르면
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2Ff7063fe8-ac26-4ded-86a2-0c2ab85f0852%2Fimage.png)
페이지는 라우팅 되었지만 5초동안 인스턴스 생성 안됨
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F92f6b334-3109-41d4-8986-6ab2f3cd5c41%2Fimage.png)
5초후 인스턴스 생성 및 초기화 실행됨
Get.create
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F9d199ebf-97b5-4d94-9a37-7046162cf99c%2Fimage.png)
위의 Get.put, Get.lazyPut, Get.putAsync 는 싱글톤 패턴으로 작동
Get.create는 인스턴스가 계속 생성됨
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2Fd4574529-35a7-4517-bca9-e2cb8e38e476%2Fimage.png)
Get.create 버튼을 하면 페이지가 라우트 되지만 인스터스는 바로 생성되지 않음
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F3fdd7afd-c0bf-498f-b1b8-750eb4200b6c%2Fimage.png)
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F41e286c2-6ac7-48a0-ad1e-59e0d31162e7%2Fimage.png)
버튼을 클릭하면
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F3b3cf9f6-985a-47e6-a5c7-9c9a7d262a63%2Fimage.png)
인스턴스 생성됨
버튼을 몇번 더 눌러보면
![](https://velog.velcdn.com/images%2Fjaun_%2Fpost%2F1151199e-0956-4391-856a-9d3e11c349ac%2Fimage.png)
버튼 횟수를 누른 만큼 인스턴스가 생성이 되어버림
결론
Get.put, Get.lazyPut만 잘 써도 나쁘지 않다.