Skip to content

Commit 09b9ee2

Browse files
translation: #2631, #2282 translate callback to Korean and place it under localization/ko/callback (#2641)
1 parent 54d6280 commit 09b9ee2

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

localization/ko/callback/README.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title: Callback
3+
category: Idiom
4+
language: ko
5+
tag:
6+
- Reactive
7+
---
8+
9+
## 의도
10+
11+
콜백은 다른 코드에 인자로 넘어가는 실행 가능한 코드의 일부로, 인자는 적절한 시점에 다시 호출 (실행) 된다.
12+
13+
## 설명
14+
15+
실제 예제
16+
17+
> 실행 항목이 완료되었다는 사실을 고지받아야 할 때, 콜백 함수를 실행 항목을 담당하는 함수에게 넘겨주고 다시 호출할 때까지 기다린다.
18+
19+
명확하게는
20+
21+
> 콜백은 실행 함수에 넘겨져서 정의된 순간에 호출되는 함수이다.
22+
23+
위키피디아의 정의는
24+
25+
> 컴퓨터 프로그래밍에서, "사후-호출" 함수로도 알려진 콜백은, 다른 코드에 인자로 넘겨지는 실행 가능한 코드를 말한다;
26+
> 다른 코드는 정해진 시간에 인자를 다시 호출 (실행) 할 것으로 기대되어진다.
27+
28+
**코드 예제**
29+
30+
콜백은 하나의 메서드를 가지고 있는 단순한 인터페이스이다.
31+
32+
```java
33+
public interface Callback {
34+
35+
void call();}
36+
```
37+
38+
다음으로 작업의 실행이 끝나고 나서 콜백을 실행시킬 Task 클래스를 정의한다.
39+
40+
```java
41+
public abstract class Task {
42+
43+
final void executeWith(Callback callback) { execute(); Optional.ofNullable(callback).ifPresent(Callback::call); }
44+
public abstract void execute();}
45+
46+
@Slf4j
47+
public final class SimpleTask extends Task {
48+
49+
@Override public void execute() { LOGGER.info("우선순위의 작업을 마친 이후 콜백 메서드를 호출한다.");
50+
}}
51+
```
52+
53+
마지막으로, 다음은 작업을 실행한 후 마쳤을 때 콜백을 받는 방법의 예시이다.
54+
55+
```java
56+
var task = new SimpleTask(); task.executeWith(() -> LOGGER.info("완료되었음."));
57+
```
58+
59+
## 클래스 다이어그램
60+
61+
![alt text](./etc/callback.png "callback")
62+
63+
## 적용
64+
65+
콜백 패턴을 사용할 수 있을 때는
66+
67+
* 동기 또는 비동기적인 임의의 행위가 정의된 어떠한 행위의 실행 이후에 수행되어야 할 때이다.
68+
69+
## 실질적인 예시들
70+
71+
* [CyclicBarrier](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html#CyclicBarrier%28int,%20java.lang.Runnable%29) 생성자는 장벽이 넘어질 때마다 발동되는 콜백을 인자로 받을 수 있다.
17.8 KB
Loading

0 commit comments

Comments
 (0)