분류 전체보기
-
컴퓨터가 수를 다루는 방식알라딘 코딩 2025. 3. 8. 12:20
컴퓨터는 전자기기 입니다. 계산도 빨리 하고, 여러가지 복잡한 일을 하지만 결국은 전자기기입니다. 컴퓨터는 전자기기이기에 수를 다루는 방법은 전자적인 처리를 합니다. 전자적인 처리라고 하니 복잡할 것 같지만, 단순합니다. 껴졌다와 꺼졌다의 두가지로만 모든 정보를 관리합니다. 집에 있는 전등이 딱 두가기 상태 켜짐, 꺼짐의 상태를 가지는 것과 같습니다.이 켜짐과 꺼짐으로 많은 수를 처리하고 계산을 합니다. 대신 컴퓨터안에는 아주~~ 많은 작은 전등들이 있습니다. 단지 꺼짐과 켜짐의 두가지 상태만으로 수를 다루는 방법을 알아 보겠습니다. 우리가 입는 옷은, 천으로 만들어지고, 천은 다시 실로 엮습니다. 컴퓨터에서 수를 다루는 방식도 이와 같습니다. 가장작은 단위인 켜짐과 꺼짐,껴짐은 1로 꺼짐은 ..
-
세상을 숫자로 표현한다면 어떤 마법을 부릴수 있을가 ?알라딘 코딩 2025. 3. 7. 10:34
숫자로 세상을 표현할 수 있을까요 ?가능합니다. 세상의 모든 것을 숫자로 표현할 수는 없지만, 상당히 많은 것들을 수로 표현할 수 있습니다. 예를 들어보죠. 우리나라에서 나란 사람을 숫자로 표현하는 것은 주민등록번호입니다. 내 주머니에 있는 돈이 얼마인지 수로 표현할 수 있습니다. 몇원이란 숫자로 표현 할 수 있습니다. 우리 동네의 버스 정거장을 숫자로 표현할 수 있을까요 ? 표현 가능합니다. 우리나라에서는 각 버스정거장에 고유 숫자를 지정해 놓았습니다. 내가 자주타는 버스도 버스 번호가 있고 그 번호도 숫자 입니다. 지금이 몇시인지도 숫자로 표현한것 입니다. 오늘이 서기 1년 1월 1일 자정부터 몇초가 흘러온 시점인지도 숫자로 표현 가능합니다. 아파트의 단지 내의 우리집도 숫자로 표현할 ..
-
Process 생성하기Elixir 프로그래밍 2022. 7. 19. 18:13
앞글에도 적었지만, Elixir 의 Process는 주요 특성이 있습니다. Process는 독립적으로 동시에 실행된다. 한 Process의 종료가 다른 Process에 영향을 미치지 않는다. (Link 라는 개념으로 영향을 줄수도 있는데, 이는 다음에 적겠습니다.)Process 간에 공유되는 것은 없으며, Process간의 협업은 Message 전달로 이루어진다. (함수 호출이 아닌, 메세지 전달) 이들에 대해서 하나씩, 상세히 적어보겠습니다. 우선, 가장 쉽게 Process를 느껴보도록 하죠..iex 를 실행시킨 후, 아래와 같이 self() 명령을 치면, #PID 과 같은 Process ID 가 나옵니다. 이 PID 는 iex 자체의 Process 입니다. 즉 , iex 도 Elixir..
-
Process (OTP) 들어가기,Elixir 프로그래밍 2022. 7. 12. 13:49
글의 연재를 다시 시작하긴 하는데, 이전과 같이 꾸준히 올릴수 있을지는 모르겠습니다. 아무튼, Process 부터 한참 동안 안쓴 글을 다시 올리겠습니다. Elixir라는 언어는 문법의 간결성, 함축성 외에 Process를 통한 분산처리, 장애대응이 가능한 코드의 개발이 큰 장점입니다. Elixir 의 기반인 Erlang 은 Ericson 사에서 대규모 네트워크 장비의 개발을 위해 만든 언어입니다. 통신 중계기의 특성상 높은 안정성, 병렬처리, 분산처리가 가능해야, Erlang은 이런 시스템의 개발이 가능하도록 만들어진 언어(플랫폼의 성격을 포함한) 입니다. Process는 이런 안정성, 병렬처리, 분산처리를 구현하는 중요한 요소이며 , 사실 이를 위해서 함수형 언어가 만들어졌다고 할수 있습니다. 기술내..
-
Elixir Phoenix : Session 관리Elixir 프로그래밍 2019. 10. 22. 21:34
앞장에서 적은 assigns는 , 하나의 connection을 처리하기 위한 과정에서 Controller와 View 간의 데이터 전달 방법이였습니다. Conn 에 Assigns로 할당된 값은 connection의 처리가 완결된 이후에는 사라집니다. 이번글에서는, 웹에서 사용자의 로그인 처리등에 사용되는 Session의 관리에 대한 내용을 적겠습니다. 이번글은 https://phoenixframework.org/blog/sessions에 대한 설명이라 할 수 있습니다. Elixir Phoenix에서는 session관리가 대단히 편리하게, Key, Value로 원하는 값을 관리할 수 있습니다. Session관련함수는 다음의 4개의 함수 입니다. https://hexdocs.pm/plug/Plug.Conn.h..
-
Elixir Phoenix : Controller와 View(Template)간의 데이터 전달 : assignsElixir 프로그래밍 2019. 10. 15. 21:50
Contorller에서 URI의 parameter를 받아서, 이를 HTML 내에 표현해야 하는 경우가 있습니다. 또는 사용자의 요청에 따라서 DB를 조회하고 그 결과를 HTML에 표현해야 하는 경우도 있습니다. 이와 같이 Controller 에서 Template내에 표현되어야하는 어떤 데이터를 전달할때 assigns를 사용합니다. assigns는 controller의 conn(Plug.Conn)에 할당을 해도되며, render 함수의 3번째 파라미터로 전달해도 됩니다. router에 두개의 URI을 다음과 같이 추가하여, 이에 대한 설명을 진행하겠습니다. scope "/", HelloWebWeb do pipe_through :browser get "/", PageController, :index get ..
-
Elixir Phoenix : View와 TemplateElixir 프로그래밍 2019. 10. 13. 14:22
Elixir Phoenix는 MVC 모델을 따릅니다. 이전의 글에서 Controller에 대한 내용을 적었고, 이번글에서는 View에 대한 내용입니다. Model에 해당하는 Ecto는 다음글에 적겠습니다. 이전글에서 Controller는 Router의 설정에 따라 각각의 URI에 대한 어떤 처리를 수행하고, 그 결과인 HTML이나 JSON을 반환하였습니다. JSON인 경우, Map이나 List 등의 Elixir의 데이터 구조체를 주면 자동으로 JSON으로 변환되어 코드가 지저분해지거나 그러진 않습니다. 하지만, HTML의 경우는 def now(conn,_param) do now = :calendar.local_time() |> NaiveDateTime.from_erl! |> NaiveDateTime.to..
-
Elixir Phoenix : Router와 ControllerElixir 프로그래밍 2019. 10. 8. 01:21
Router는 request URI를 어떤 모듈의 어떤 함수가 처리할지를 지정하는 모듈입니다. router 모듈내에는 복수개의 pipeline을 둘수 있으며, pipeline은 http request를 받았을 때 해야하는 일련의 일들의 모임이라 생각할 수 있습니다. 위의 소스코드에서는 두개의 pineline이 있으며, :browser와 :api로 각각 html request와 json api 를 처리하는 경우에 대한 정의라고 생각하면 됩니다. 이에 대한 자세한 설명은 https://hexdocs.pm/phoenix/routing.html#pipelines을 참조하면 되며, 일반적인 경우 이에 대한 기능 추가는 하지 않아도 됩니다. 위의 코드에서 중요한 부분은 scope "/", HelloWebWeb do..