일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Tuist
- development language
- transformation.map
- UIViewControllerTransitioningDelegate
- oberve url
- url 추적
- DataBinding
- notifychanged
- pod install
- ViewBuilder
- 상단 탭바
- SwiftUI
- swift
- Side Menu
- ios
- scrolling tab
- GeometryReader
- swift #swift keychain #keychain 사용법
- Swift Package Manager
- List
- 스크롤 탭
- 기존 앱
- UIPresentationController
- Android
- detect url
- convert base64
- base64 변환
- DevelopmentRegion
- 개발자 면접
- url 관찰
- Today
- Total
버그 잡이
java 콜백, android 콜백 본문
오늘은 자바 중급 과정 2탄으로 CallBack에 대해서 알아보겠습니다.
1. CallBack이란 무엇인가?
- 일반적인 함수 호출은 호출자가 피호출자를 부르는데 callback은 반대로 피호출자가 호출자를 부르는 것입니다.
- 즉, 사용자가 시스템에서 요청하는 일반적인 과정과 다르게 시스템 측에서 이벤트를 발생시켜 이를 처리해달라고 하는 것입니다.
2. CallBack은 왜 쓰는가?
- A클래스에서 동작할 수 없고 B클래스에서만 동작할 수 있는 메서드를 A측에서 호출할 수 있도록 한다.
안드로이드로 예를 들어보겠습니다.
리사이클러뷰를 구현했는데 각 항목에 대한 클릭이벤트를 구현하고 싶습니다.
A클래스 : MainActivity
B클래스 : RecyclerViewAdapter
각 항목 클릭에 대한 메서드는 B클래스에서만 동작할 수 있습니다.
그런데 저는 intent를 넘기기 위해서 A클래스에서 그 동작을 구현해야합니다.
이때 사용하는 것이 콜백입니다.
3. CallBack은 어떻게 동작하는가
- 콜백은 인터페이스(interface)를 통해서 구현이 가능합니다.
- B클래스에서 interface를 선언하고 그 interface를 A클래스에서 정의함으로써 해당 메소드를 호출할 수 있습니다.
* Interface란 무엇인가?
"규제" : 어떤 객체가 있고 그 객체가 특정 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드를 구현해야한다.
정의는 위와 같이 간단하게만 알아 두고 CallBack있어서 중점을 둬야할 부분은 interface의 특징인 "다형성"입니다.
위 사례에서 다형성이란 '같은 메소드를 가지고 있지만 그 반환값을 다르게 지정할 수 있다.'
즉, B클래스에서 메소드가 동작하도록 선언하고, A클래스에서 그 반환값을 구현하는 것입니다.
--------------------------------------------------------3.30(월)--------------------------------------------------------------
콜백과 리스너라는 개념이 헷갈려 정리해보고자 합니다.
*CallBack vs 리스너
- callBack은 메서드 / 리스너는 콜백 메서드를 가진 인터페이스
- callback 메서드는 콜백시 구체적인 행동을 처리하는 메서드
- 리스너 인터페이스는 이 결과를 핸들러로 전달하는 역할
* 그냥 리스너의 역할은 이벤트 결과를 핸들로로 전당하는 것입니다.
* 콜백 + 리스너는 이벤트 결과를 핸들러로 전달하는데 그 결과가 caller의 원리에 따른 것이 아니라 callback의 원리에 따른 것입니다.
* 즉, 특정 이벤트 충족시 사용자가 시스템에게 요청하는 것이 아니라 시스템이 반대로 이 콜백 메서드를 처리해달라고 요청하는 것입니다.
아직 개념이 명확하지 않은데 나중에 다시 한번 더 정리해야할 것 같습니다.
참고사이트:
https://onlyfor-me-blog.tistory.com/47
[Android] 콜백이란? 리스너란?
안드로이드 공부를 하다가 자주 콜백 메서드라는 말을 보게 된다. 디벨로퍼의 생명주기 문서에도 콜백 메서드라는 말이 자주 나오는 걸 볼 수 있다. 그래서 잠깐 쉴 겸 콜백에 대해서 정리해보려고 한다. 콜백(cal..
onlyfor-me-blog.tistory.com
JAVA 콜백 메서드 구현하기
01. 콜백이란 ? Callee Side에서 Caller Side위에 작동하는 메서드를 호출하는 것. 02. 콜백 구현 및 진행 순서 01) Callee : 콜백 인터페이스 및 메서드 선언 02) Caller : 콜백 인터페이스 구현 및 Callee객체에..
devsophia.tistory.com
https://opentutorials.org/module/516/6063
인터페이스 - Java
인터페이스란? 인터페이스(interface)는 다소 추상적인 개념이다. 인터페이스가 무엇인가를 철학적으로 논하려면 책 한권이 필요할지도 모르겠다. 하지만 우리는 철학 공부를 하는 것이 아니라 공학 공부를 하는 것이니 자바의 기능으로서 인터페이스를 받아들이면 되겠다. 필자가 앞선 수업에서 인터페이스를 abstract, final와 함께 대표적인 규제라고 언급했던 것 기억하는가? 인터페이스의 역할은 이렇다. 어떤 객체가 있고 그 객체가 특정한 인터페이스를 사
opentutorials.org
https://www.charlezz.com/?p=768
안드로이드로 배우는 자바의 인터페이스 (콜백, 리스너, 옵저버) | 찰스의 안드로이드
Before diving into interface 초보 자바 개발자 분들의 단골로 하는 질문이 있습니다. “리스너(콜백)가 뭐에요?” 또는 “인터페이스가 뭔지 모르겠어요!!” 자바의 인터페이스에 대한 개념없이 리스너를 이해하려 하는것은 헤어나올 수 없는 늪에 빠진것과 같습니다. 초보자 분들을 위해 인터페이스의 개념도 알아보고 실제 용례도 알아보고자 이 포스팅을 작성합니다. What is Interface? 포스팅을 작성하기 위해 인터페이스에 대한 정의부
www.charlezz.com
'안드로이드 > 자바' 카테고리의 다른 글
Interface 개념 정리 #추상클래스 vs 인터페이스 #다형성 (0) | 2020.06.03 |
---|---|
[JAVA] static 과 final (0) | 2020.03.28 |
[Java] Json 파싱하기 #JSONArray, JSONObject #json에서 원하는 값 추출 (0) | 2020.03.19 |
자바(java) Null Check, 안드로이드 null check (0) | 2020.03.11 |