전체 글
-
Macro 101기술 동향 2022. 8. 8. 13:46
Basic terms Expression : 표현식, 코드 Represent : 코드를 표현하는 방식, AST consist of Three element tuples Quote : 인용, 특정 코드 덩어리의 Representation을 가져오는 것 Unquote : 인용하는 것이 아니라 Evaluation 된 코드 결과 Elixir는 이미 데이터 구조와 함수를 사용하여 간단하고 읽기 쉬운 방식으로 일상적인 코드를 작성할 수 있는 메커니즘을 제공합니다. 매크로는 최후의 수단으로만 사용해야 합니다. 명시적(explicit)이 암시적(implicit)보다 낫다는 것을 기억하십시오. Concise Code보다 Clear Code가 좋습니다. ·메타 프로그래밍의 첫번째 단계는 표현식이 어떻게 나타나는지를 이해하..
-
Debugging using Livebook기술 동향 2022. 7. 21. 18:15
Elixir Korea Meetup 에서 Livebook 을 사용한 관련 Topic을 세미나 한다길래 꼭 들으려 했으나 피치 못할 사정으로 노쇼하는 바람에 따로 시간 내어 조사해 봤습니다. #노쇼노매너 #노쇼 #엘릭서밋업 예전에 설치했던 Livebook을 업그레이드 하고, erlang dbg모듈을 사용해 봤습니다. 아래는 테스트 화면입니다. #훌륭 #OTP #Process #RemoteProcess #Cluster Debug Using Livebook Install as an Escript This is the easiest way to use Livebook locally. This assumes you are doing Elixir development locally and are setup for ..
-
GenServer를 어떻게 종료할 것인가?기술 동향 2021. 8. 25. 18:26
https://alexcastano.com/how-to-stop-a-genserver-in-elixir/ 원문입니다. Why and how a GenServer stops? The different possibilities to stop a GenServer and how to handle the termination process. alexcastano.com terminate/2 콜백 GenServer가 중지되는 이유를 살펴보기 전에 terminate/2 콜백을 살펴보겠습니다. 필수 사항은 아니며 필요할 때만 구현할 수 있지만 중단하기 전에 무언가를 하고 싶다면 도움이 될 수 있습니다. terminate/2 콜백이 실행된 이후에는 GenServer의 상태를 영원히 잃게 되므로 state를 변경할 마지..
-
Elixir Process기술 동향 2021. 6. 28. 19:57
exit(pid, reason) Sends an exit signal with the given reason to pid. The following behaviour applies if reason is any term except :normal or :kill: If pid is not trapping exits, pid will exit with the given reason. If pid is trapping exits, the exit signal is transformed into a message {:EXIT, from, reason} and delivered to the message queue of pid. If reason is the atom :normal, pid will not ex..
-
Process Register기술 동향 2021. 4. 5. 00:04
defmodule Segway.Context.Registry do use GenServer # API @doc """ ## start_link ## Examples iex> {:ok, pid} = GenServer.start_link(__MODULE__, "room1") {:ok, #PID} """ def start_link do # We register our registry (yeah, I know), with a simple name, # just so we can reference it in the other functions. GenServer.start_link(__MODULE__, nil, name: :registry) end @doc """ ## Examples iex> Segway.Con..
-
Ecto Composable Query기술 동향 2020. 11. 16. 17:55
medium.com/flatiron-labs/how-to-compose-queries-in-ecto-b71311729dac How to Compose Queries in Ecto Composable queries in Ecto including how to safely join through tables. medium.com Ecto.Query가 얼마나 Composable한가에 대한 짧은 토픽입니다.(구글 번역) 간단한 쿼리 좋습니다. 간단한 쿼리로 시작하겠습니다. 파란 차를 모두 찾아 봅시다. 이를 위해서는 Ecto.Query.where/3 만 있으면됩니다. 좋은 파이프 기능을 위해 키워드 구문과 달리 표현식 구문을 사용하는 것을 좋아하므로 앞으로 이러한 예를 살펴 보겠습니다. 이제 모든 파란색 자동차..
-
Ecto.Multi기술 동향 2020. 10. 6. 14:21
Ecto.Multi는 여러 Repo 작업을 그룹화하기위한 데이터 구조입니다. Ecto.Multi은 가능한 하나의 데이터베이스 트랜잭션에서 수행하고 각 insert/update/delete등의 각 작업은 호출 시, 실행되지 않은 채로 MapSet에서 관리 되어야 합니다. 각 작업은 고유한 key를 가지며 성공 또는 실패의 경우에 그 결과를 식별하는 이름이 지정됩니다. 모든 작업은 추가 된 순서대로 실행됩니다. %Ecto.Multi{}를 사용하여 유형 일치를 패턴화할 수 있지만 필드에 액세스하거나 직접 수정하는 것은 권장되지 않습니다. Ecto.Multi.to_list / 1은 내부 검사에 사용할 수있는 구조의 표준 표현을 반환합니다. pills_attrs |> Stream.map(fn pill -> cha..
-
History of Erlang기술 동향 2020. 6. 25. 13:53
Wikipedia (2017a)에 따르면 Erlang은 "영원히 실행되는"동시 프로그램을 작성하도록 설계된 기능적 프로그래밍 언어입니다. Erlang은 현재 프로세스를 사용하여 프로그램을 구성합니다. 이러한 프로세스는 공유 메모리가 없고 비동기 메시지 전달을통해 통신하며, 운영 체제가 아닌 가벼운 언어에 속합니다. Erlang은 또한 코드를 변경하고 패치를 “즉시” 추가하므로 런타임 중에 프로그램을 업데이트 할 수 있으므로 프로그램을 다시시작할 필요가 없습니다. 이러한 메커니즘은 논스톱 시스템을 구현하기위한 소프트웨어 구성을 단순화합니다. (Joe Armstrong. Erlang의 역사, Ericsson AB) Erlang은 함수형 프로그래밍 언어 제품군에 속하므로 일상적인 개발 접근 방식과 방법에는 몇..