> For the complete documentation index, see [llms.txt](https://blog.javabom.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.javabom.com/kimdh/scala/akka.md).

# Akka

### Akka를 이야기할땐 Actor가 먼저!

![http://renien.com/blog/akka-blog-series/akka-queue.png](/files/-LirADefxRf9pimASXAf)

Actor는 어떤 동작의 주체라고 보면 된다.\
메시지 기반 통신을 하여 Actor간 직접적인 호출이 없다. (Class 모델과 다른점)

Dispatcher 가 Mailbox Queue에서 Message를 하나 가져와서 Actor를 동작시킬 때는 Single thread로 동작한다. 그 덕분에 Lock이나 Atomic 연산에 대해서 생각할 필요가 없다.

###

### Actor들을 관리하는 ActorSystem을 알아보자

![https://i1.wp.com/www.datio.com/wp-content/uploads/2017/02/Akka3.png?resize=691%2C516](/files/-LirDSlu3WLjT4tV1MDc)

그림이 매우 잘 나와있다!

### ActorReference

![https://miro.medium.com/max/680/1\*Z9mbLItuNvx2lq8O0Dymvg.png](/files/-LirFCyDpavZ0h2XBygf)

Actor Instance에 직접 접근 하지 못하고 Reference를 통해서만 접근이 가능하다는 것만 알면 된다.\
그 덕분에 결합도도 낮아지고, 위치 투명성 등이 보장된다!

###

### ActorPath

![https://doc.akka.io/docs/akka/2.5.11/guide/diagrams/actor\_top\_tree.png](/files/-LirFlQmqEvQSkWyImMw)

Actor 들은 ActorSystem 아래로 Tree 구조처럼 자신의 위치 정보를 가지고 있다. 그 중 개발자의 Actor 는 /user 아래에 위치해있고, /system 아래에 있는 Actor들은 ActorSystem을 위한 기본 Actor들이다.

###

### 그 외 Akka Library들

[다양합니다.](https://akka.io/docs/)

### Akka를 더 알고싶다면...

[아카 공식 홈페이지 문서](https://doc.akka.io/docs/akka/current/index.html)

[스칼라를 이용하여 아카 시작하기](https://developer.lightbend.com/guides/akka-quickstart-scala/index.html)

[아카 라이프 사이클](http://wiki.webnori.com/display/AKKA/00.Lifecycle)

[아카 홈 설명](http://wiki.webnori.com/display/AKKA/Akka-Home)

[아카 공부용 번역 자료](https://blog.rajephon.dev/2018/11/25/akka-00/)

[길벗 아카 코딩공작소 책](http://www.yes24.com/Product/Goods/44015335), [예제 소스코드](https://github.com/gilbutITbook/006877)

[액터 테스트](https://reniowood.github.io/akka/2019/05/27/Akka-Akka-코딩공작소-Chapter03-액터를-사용한-테스트-주도-개발.html)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://blog.javabom.com/kimdh/scala/akka.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
