전체 글
-
mhtml - ajax 호출web/mhtml 2021. 8. 11. 19:51
코드 import mhtml._ import mhtml.future.syntax.FutureToRxSyntax import org.scalajs.dom.ext.Ajax import scala.concurrent.ExecutionContext.Implicits.global import scala.util.Success def crawl(url: String): Rx[Option[String]] = Ajax.get(url).toRx.map { case Some(Success(request)) => Some(request.responseText) case _ => None } 설명 ajax 결과를 toRx 를 이용해 Rx 로 만들면, mhtml Rx 이해하기 - Ajax 호출시 경험 처럼 처리가 복잡해지는 것..
-
-
Scala State Monadscala/basic 2021. 8. 3. 12:12
문제 State Monad 를 만들고, 이를 사용해 다음을 계산하라. 골프 공을 쳐서 처음에는 20m, 두번째는 10m, 세번째는 15m 를 보냈다. 그런데 시작라인에서 3m 를 더 나온 위치에 공을 두고 쳤다면 최종 골프공은 시작라인에서 어느정도 떨어져 있을까? 3 + 20 + 10 + 15 = 48 코드 case class State[S, A](run: S => (S, A)) { def flatMap[B](f: A => State[S, B]): State[S, B] = State { s0 => val (s, a) = run(s0) // 현재 상태의 run 을 적용하고 f(a).run(s) // 이후에 f 를 적용해 S => (S, A) 함수를 갱신함 } // 기존 run 과는 다른 새롭게 정의된 S ..
-
피보나치(fibonacci) 수열을 Scala Stream, ZStream 으로 각각 구현zio/zio1 2021. 8. 3. 00:47
문제 피보나치(fibonacci) 수열 앞 10개를 출력하는 프로그램을 아래 2가지 방법으로 각각 구현하라 scala stream 을 이용해 구현 ZStream 을 이용해 구현 코드 scala stream 을 이용한 구현 object ScalaStreamFibo { def main(args: Array[String]): Unit = { def fibonacci(h: Long, n: Long): Stream[Long] = h #:: fibonacci(n, h + n) fibonacci(0, 1).take(10).foreach(println) } } ZStream 을 이용한 구현 import zio._ import zio.stream.ZStream object ZStreamFibo extends App { ..
-
BranchPythonOperator 로 조건에 따라 task 분기하기airflow 2021. 7. 31. 17:51
문제 조건에 따라 다음 task 를 선택해 실행되도록 dag 을 구성하고 싶다. Code import random from datetime import datetime from airflow import DAG from airflow.operators.bash import BashOperator from airflow.operators.python import BranchPythonOperator default_args = { 'start_date': datetime(2021, 7, 31), 'schedule_interval': '@daily' } def choose_branch(**kwargs): branches = ['b1', 'b2', 'b3'] chosen = random.choice(branch..
-
동일한 docker image 를 사용했는데 실행 결과가 다르다?docker 2021. 7. 31. 15:33
문제 네이버 검색 결과를 스크래핑(scraping) 할 필요가 있어서 rendertron 을 사용했다. rendertron 을 쉽게 사용할 수 있도록 한 docker image 를 활용해 서버 2대에 각각 설치후 아래처럼 실행했다. docker run -it --rm -p 3000:3000 dockette/rendertron 그런데 서버 2대에서 API Response 가 각각 다르다!!! (Server-B 의 경우 이미지가 노출되지 않는다) Server-A 에 설치된 rendertron 결과 Server-B 에 설치된 rendertron 결과 설명 동일한 docker 이미지를 이용했지만, Server-A 와 Server-B 의 네트워크 설정이 달랐던 것이다. 사내 인프라에 접속하기 위해 /etc/doc..