programming 썸네일형 리스트형 scala - macro keyword scala - macro keyword macro keyword? compile time에 코드를 만들어주는 기능이다. (compile-time metaprogramming) Simple example add() 함수 선언과 정의 object MacroDemo { def add[T](num1: Int, num2: Int): Int = macro add_impl def add_impl(c: blackbox.Context)(num1: c.Expr[Int], num2: c.Expr[Int]): c.Expr[Int] = { import c.universe.reify reify { num1.splice + num2.splice } } } 사용 object MacroTestMain { def main(args: A.. 더보기 [Redis] lua script를 활용한 SetIfNewer(upsert) 예제 Redis Lua script call REDIS lua script: ( https://redis.io/commands/eval ) command: EVAL 아래처럼 스크립트를 매번 호출할 때마다 포함하여 호출할 수 있다. 아래 코드의 HGET, HSET은 트랜잭션 처리가 되어 수행된다. > EVAL 'if redis.call("HGET", KEYS[1], ARGV[1]) < ARGV[2] then return redis.call("HSET",KEYS[1], ARGV[1], ARGV[2]) end return -1' 2 hashtable -1 createdate 293891 command: EVALSHA 위 처럼 호출할 수도 있고, 한 번 호출한 스크립트에 대해서 해시값으로 접근할 수 있다. (매번 스.. 더보기 scala - 소개와 intellij 로 환경 설정 chapter 1. 스칼라 소개 scala? 공식 홈페이지 객체지향 프로그래밍과 함수형 프로그래밍이 결합된 높은 수준의 언어다. 정적 타입은 복잡한 앱에서의 버그를 피하게 도와주고, JVM 과 JS 런타임은 높은 성능을 가진 시스템을 쉽게 접근할 수 있게 해준다. 1.1 왜 스칼라인가? JVM과 JS JVM에서 제공하는 라이브러리를 계승할 수 있다는 장점이 있다. scala.js 도 실험 프로젝트로 진행 중이다. 정적타입 정적 타입 지정이 필요하지만 타입 추론을 이용하여 타입 표기를 생략할 수 있게 한다. 다중 패러다임 - 객체지향 + 함수형 프로그래밍 복잡한 타입 시스템 타입 추론을 사용하여 동적 타입 언어 수준으로 간결하게 할 수 있다. 간결하고 우아하며 유연한 문법 규모 확장성 trait를 사용한 .. 더보기 scala study 시작 책을 훑어보기로 했다. 빠르면 2달, 꼼꼼하게 보면 3달까지! 더보기 이전 1 다음