본문 바로가기

Learning

JAVA9 jshell(REPL) JAVA9에 새로이 소개된 기능중에 하나는 jshell 프로그램이다. REPLRead Evaluate Print Loop의 약자인 REPL은 간단한 콘솔 입력 프로그램을 통해 개발자가 입력한 명령어를 실행하고 바로 화면에 출력하는 실행환경을 의미한다. 많은 프로그램 언어들이 이 방식을 지원하고 있다. JAVA9를 설치하고 'bin'디렉토리에 있는 'jshell' 프로그램을 터미널창 혹은 커맨드창에서 실행하면 된다. (JDK 9.0.4를 기준으로) 실행하면 '/help intro' 명령을 입력해보라고 한다. 아래 해당 사항 실행 및 결과이다. home:~$ ./apps/java/jdk1.9/bin/jshell | Welcome to JShell -- Version 9.0.4| For an introduct.. 더보기
My-SQL 8 RC2 흘끗보기 - JSON My-SQL이 버전을 확 올린 버전8을 준비중이고, 이미 RC본을 두번째인 RC2를 발표했다. 오라클사에 따르면 빅데이터 처리에 많이 공들였다고 한다. 이 글은 우선 보강된 JSON처리 부분을 소개하려 한다. 이미 JSON에 대한 처리는 기존의 My-SQL5에서 지원되고 있다. 준비보기로 사용할 테이블을 아래처럼 준비했다. 테이블 이름은 'books'이고 3개의 컬럼을 갖고 있다. 임의의 데이터를 몇개 등록한 상태이다.mysql> create table books (cnum varchar(8), name varchar(255), author varchar(255));Query OK, 0 rows affected (3.62 sec) 데이터를 입력한다.... mysql> select * from books;.. 더보기
프로그램언어 GO 흘끗 보기 주중에 프로그램 언어인 GO에 대한 소개 메일을 받아보고 갑자기 언어에 대해 궁금해졌다. 관련 책을 간단히 읽고 정리해봤다. 깊은 내용은 없다. GO에 대한 간단한 소개2007년도쯤 구글에서 고안된 프로그램 언어로 인터넷상에서 혼동되지 않기 위해 'GOLANG'으로 호칭한다. 이 문서에서도 GOLANG으로 호칭한다. GOLANG관련 책 혹은 문서들을 보면 아래의 항목으로 요약해서 언어를 설명한다.statistically-typed language의 빠른 성능, 안정성dynamically-typed interpreted language의 편리함아주 쉬운 병렬/분산 프로그래밍특성을 보면 세상의 모든 언어의 장점만을 모은 것 같지만, 세상에 그런 물건은 없다. GOLANG의 장점을 얘기할 때, 빠른 컴파일 속.. 더보기
자바스크립트 프레임웤 vue.js 흘끗보기 웹 관련 기술은 발전도 빠를뿐더러 다양하고, 광범위해서 사람을 늘 겸손하게 만든다. 약 한두달전에 vue.js라는 자바스크립트 프레임웤을 알게 되었다. 언제 나왔는지 모르지만 버전이 2.x인 것을 보면 꽤 된 듯하다. 살짝 살펴보니 웹서비스 기반의 솔루션 혹은 웹사이트에 적합한 프레임웤인듯 했다. 이걸 이제야 알다니... 높은 통합성서버상 MVC 프레임웤들은 각각 기능들을 잘 갖추고 있지만 고유의 프로그램언어에 종속되어 있다. 어떤 프로젝트들은 기능상, 비용상 혹은 숙련된 개발자 수급상 다른 프로그램언어 기반의 프레임웤으로 시스템을 재 구축하는 것이기도 하는데, 이때 대개의 경우 다른 언어로 구현된 모듈들은 폐기가 된다. 그러나 자바스크립트상에서 MVC관련 기능들이 제공된다면 서버가 어떤 프로그램언어를 .. 더보기
JAVA 9 모듈방식(modularity) 코딩 힐끗보기 JAVA 9가 점점 우리에게 다가오는 것이 느껴진다. 소개된 새로운 특징들을 보니, 모듈방식 코딩 지원과 'jshell'이 눈에 띈다. 모듈방식 (Modularity)모듈에 대한 구체적인 지원을 담는 내용이 포함된 이유는 무엇일까? 모듈 혹은 서비스 그리고 이전에는 객체 중심의 개발이 설계 및 유지보수등에 주는 이점에 대한 얘기는 너무도 당연하게 여겨지는데, JAVA 9 에서는 이를 언어스펙으로 넣어 버렸다. 그래서 코딩단계부터 컴파일 심지어는 새로이 도입된 링크에 모듈 기능이 추가 되었고, 20년 이상 유지해온 기존의(레거시) 라이브러리들 또한 재설계를 했다.모든 개발자들의 마음이 같지 않다.보통 인터페이스 와 이를 구현한 객체, 부모 객체와 자식 객체가 있다면 데이터 형을 선언할 때 가능한 상위 객체.. 더보기
JAVA 람다함수 총정리 유래λ-calculus(람다대수)에서 유래했다. 어것은 1930년경 논리학등에 사용하기 위해 제안된 수학적 형식인데, 예를 들면 아래와 같다. 의미는 "매개변수를 받아 1을 더해서 반환한다" 이다.λx.x+1 'λ'다음에 매개변수 'x'가 선언되고, '.'뒤에 함수의 내용이 정의된다. 이 형식은 2가지 중요한 의미를 가진다. 하나는 '함수를 정의' 한다는 것이고 다른 하나는 함수의 이름이 없다는 것이다. 따라서 λ는 Anonymous function을 의미한다. 왜 λ(람다)를 쓰게 되었을까?현대의 프로그래밍 언어는 대부분 객체지향이거나 적어도 이 방식에 근거를 한다. 대표적인 언어가 JAVA인데, 객체지향적인 언어의 규약이 가끔은 비효율적인 경우가 있다. λ(람다)는 이를 해결하기 위해 도입이 되었다... 더보기