Docker로 Java App를 배포를 할 때마다 매번 JDK 설정과 파일을 복사하는 것이 낭비인 것 같아서 별도로 이미지로 만들기로 했다.
기본 JDK와 설정만 되어 있는 이미지를 만들어 놓으면, 차후 배포용 앱 이미지를 만들때 반복 작업을 하지 않아도 된다. 추가로 이미지 생성에서 발생할 수 있는 실수도 줄어 들것이다.
Scala에서 Underscore(_)의 자주 사용하게 된다. _
(Placeholder)라는 표현을 쓰는 것 같은데 맞는지 모르겠다. 이하는 내용에서는 Underscore(_)이라고 일반화해서 이야기하겠다. 용도는 “그때그때 달라요!”다. 쓰이는 곳에 따라 완전히 다른 의미를 가진다.
다양한 쓰임새 중에 본인이 알고 있는 수준에서 정리해보았다.
본인은 Java를 주력 개발언어로 사용하는 개발자이다. 새로 Scala로 공부하면서 가장 힘든 부분 중에 으뜸은 Implicit 인 것 같다. 하지만 Implicit를 이해하고 나면 Type Class라는 멋진 패턴을 만날 수 있다. Type Classes에 대해서 잘 모르지만 여기저기 자료를 찾아보고 이해한 수준으로 정리하고자 한다.
이 글은 읽기 전에 Implicit에 대해서 먼저 이해하기 바란다. Scala에서는 Implicit 키워드를 이해하지 못하면 Type Classes 코드 자체를 이해할 수 없다. 반드시 이해하고 진행하자.
그리고 여기서 Type Classes 패턴은 Scala 기준으로 설명한다. Type Classes 패턴이 하스켈에서 유래됐다고 한다. 하스켈은 잘 몰라서 Scala에서 본인이 학습한 기준으로 설명하겠다. 더 깊게 알고 싶으신 분들은 다른 글을 참고하길 바란다.
본인은 주로 Java 개발을 주업무로 하고 있다. Java 개발자로서 Scala 학습하면서 몇 가지 마법 같은(?) 기능을 접할 때마다 놀라움과 당혹감을 감출 수가 없다. 옮고 그름을 넘어 신비로울 정도이다.
본 글에서는 본인이 이해한 수준의 Implicit에 대해서 정리해보고자 한다.
이 글은 네트워크망에 대한 기본 지식이 있다고 전제로 작성하였다. 세부적인 설정은 제외하고 큰틀에서 VPC를 생성하는 방법을 순서대로 다른다. 디테일 설정은 AWS 관련 문서를 참조 바란다.
머신러링 머신러링하는데 머신러링이 먼지 간단하게 정리하고자 한다.
Reboot JAVA == GraalVM
1995년 JAVA 발표되고 이제 햇수로 27년이 되었다. 사람 나이로 27살이면 이제 청년이다. 여러 버전의 JAVA가 출시됐고 계속해서 새로운 기술이 추가되고 있지만 태생적인 조건때문에 정체되었다는 느낌을 떨칠 수가 없다. 한창이어야 할 청년이 이것 저것 트집을 잡는 꼰대가 되어 버린 느낌이다. 다이내믹하게 변하고 있는 NodeJS가 나온 JavaScript 진영이나 네이티브 개발에 요즘 많이 쓰이는 Go나 Rust, 하물며 JVM에서 돌아가는 Scala/Kotlin 같은 언어들에 비해 점점 죽어가는 느낌이다. 이런 상황에 JAVA 진영에서 변화의 시도로 보이는, 발표된지 조금 시간이 흘렸지만 많이 알려지지 않은 플랫폼 하나를 오늘 소개하고자 한다.
개발을 배우고 개발로 먹고살면서 개인적으로 여러 목적으로 웹사이트 열었다 닫았다를 반복해왔다. 초기에 엄청난 열의로 사이트를 열었다가 시간이 지남에 따라 열의가 사라져 없어진 경우도 있고, 사이트 목적 자체가 사라져 같이 사라진 경우도 있다. 그래서 20년 “전산쟁이” 인생에서 개인 웹사이트에 대한 개똥철학 같은 것이 생겼다.
그런 개똥철학으로 이번에 난생처음 블로그란 것을 오픈해보았다.