새로운 프로젝트 수행을 위해서 node.js 를 사용해 보기로 했습니다. 그래서 일단 설치~~~ 저는 우분투에서 수동으로 설치해 보도록 하겠습니다. node.js URL = https://nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 1. 최신버전 다운로드 2. 임의의 경로에 복사해 주기 (node.js 홈으로 사용) node-v16.14.2-linux-x64.tar.xz 파일을 다운로드 받은 후에 압출을 풀고, /home/moonsun/node-v16 복사해 줍니다. 3. .profile에 추가하여 모든 곳에서 node를 인식할 수 있게 설정 그런 다음에 콘솔..
지난주부터 코틀린 언어로 미니 프로그램을 만들어서 완성을 시켰습니다. 오라클 SQLPlus에 spool 기능을 대체할 목적으로 만들었구요. 프로그램명은 "UnLoader"로 정했습니다. 코틀린을 사용해 본 소감은 확실히 자바에 비해서 코딩량이 줄었습니다. 프로젝트에 필요한 라이브러리(ojdbc.jar 외 다수)외에는 100% 코틀린 문법으로 개발 했습니다. 아직 회사에서 안드로이드 개발자외에는 코틀린을 사용하는 동료가 없기 때문에 당분간 없어도 되지만 있으면 업무 효율이 높아지는 유틸리티성 프로그램을 개발할 때 코틀린을 우선 사용할 계획입니다.
코드의 간결함이 매력적인 코틀린을 막 시작한 코린이 입니다. 유튜브 강좌와 "Kotlin in Action " 책을 통해서 문법을 익히고 있습니다. 최근에 1000만 행이 넘는 데이터를 오라클 데이터베이스로 부터 추출할 일이 있었는데, sqlplus "spool"이 생각보다 느려서 이전에 개발한 ETL 프로그램으로 파일을 생성해 보니 약 5배 정도 성능 차이가 났습니다. 데이터 추출 프로그램을 개발해 놓으면 두고두고 사용할 것 같아서 오늘 기본적인 설계를 한 후에 코딩을 시작했습니다. 자바로 개발한 ETL 프로그램을 참고하여 코딩을 하니 생각보다 빠르게 구현해 나갈 수 있었습니다. 더욱이 InteliJ IDEA를 사용하고 있는데, 이전에 참고할 자바 소스를 코틀린 파일에 붙여 넣으면 자동으로 코틀린 문법..
일반적으로 실행가능한 jar파일은 "java -jar test.jar" 와 같은 방법으로 실행하게 됩니다. 이처럼 실행가능한 jar 파일 있을 때 실행 바이너리 파일 처럼 만드는 방법을 소개해 드립니다. 1. jar 파일 생성 (test.jar) -> Eclipse 나 InteliJ Idea를 통해서 쉽게 만들 수 있습니다. 2. stub.sh ------------------------------------------------------------------------------- #!/bin/sh MyApp=`which "$0" 2>/dev/null` [ $? -gt 0 -a -f "$0" ] && MyApp="./$0" java=java if test -n "$JAVA_HOME"; then jav..
#[derive(Debug)] struct Rect { width: u32, height: u32 } impl Rect { fn area(&self) -> u32 { self.width * self.height } } #[derive(Debug)] struct RectT { width: T, height: T, } impl RectT{ fn get_width(&self) -> &T { &self.width } fn get_height(&self) -> &T { &self.height } } fn calc_rect(rect: &Rect) -> u32 { rect.width * rect.height } fn main() { let rect = Rect { width:300, height:200}; print..
struct Guess { value: i32, } impl Guess { pub fn new(value: i32) -> Guess { if value 256 { panic!("유효한 값은 1 ~ 256 입니다. 입력한 값:{}", value); } Guess { value } } pub fn value(&self) -> i32 { self.value } } fn main() { let guss = Guess::new(10); println!{"{}", guss.value()}; }
Cargo.toml ------------------------------------------ [dependencies.mongodb] version = "1.1.1" default-features = false features = ["sync"] main.rs -------------------------------------------- use mongodb::{ bson::{doc, Bson}, sync::Client, }; fn main() -> mongodb::error::Result { let client = Client::with_uri_str("mongodb://localhost:27017")?; let database = client.database("mobdw"); let collec..
- Total
- Today
- Yesterday
- 화분벌레
- 코라나 19
- 배당급
- 남설 팔찌
- 파나소닉 비데 DL-EH10KWS
- VARIDESK
- Sybase IQ
- yugabyteDB
- 카카오 에드
- 톡토기
- 브리다 정수기
- 별잉 빛나는 밤
- Life Chair
- weka
- 유가바이트디비
- 매직 트랙패드2
- 빈센트 반 고흐
- 오미크론
- node.js
- 고체 향수
- 증권정보포털
- JMW 헤어드라이기기
- 르세라핌
- 루미큐브 종류
- Pixel Pals
- GKRS
- 솔리드 쿨론
- 홈 오피스
- 별이 빚나는 밤
- 로니카 BCS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |