1) node.js

https://nodejs.org/en/download/

 

OS와 상황에 맞게 다운로드. 일반적으로는 이미지에 선택된 것으로.

 

원하는 폴더에 압축해제 한다.

 

환경변수에 node 경로 추가(제어판 - 시스템 - 고급시스템 설정 - 고급 탭 - 환경변수 - PATH, Windows7 기준)

 

터미널에서 위와 같이 실행하여 정상 출력되면 설정 완료.

 

파일 - 작업영역에 폴더 추가 한 후

터미널에서 해당 작업폴더에 접근한다.

 

위와 같이 명령어를 작성하면 package.json 파일이 생성된다.

 

해당 폴더에서 app.js라는 이름의 새 파일을 작성하고

테스트 소스코드를 작성한다.

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello Second\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

 

디버그 - 디버깅 시작 하면

디버그 콘솔에 아래와 같이 console.log의 내용이 찍히고,

브라우저로 접근했을때 res.end 의 내용이 출력되면 정상.

vscode 화면
브라우저로 URL 접근 시 출력화면

 

 

2) mysql / sql mapper

먼저 mysql 을 설치.

 

mysql 설치 및 설치결과 화면

 

 

업무용으로 사용하는 것이 전제되었기 때문에 sql 관리는 필수이다.

다행히도 mybatis의 node.js 버전을 찾았다.

 

mybatis 설치 및 설치결과 화면

 

설치 후 mapper xml 작성.

테이블 생성 및 데이터는 모두가 알고 있을 것이므로 생략.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com_emp">  
  <select id="SEL001">
    SELECT *
    FROM COM_EMP_INFO
    WHERE EMP_NO = #{EMP_NO}
  </select>
</mapper>

app.js로 콘솔에 json 데이터 출력

const mysql = require('mysql');  //My-sql
const mybatisMapper = require('mybatis-mapper');  //mybatis
 
const connection = mysql.createConnection({  //create connection
    host: '127.0.0.1',
    port: '3306',
    user: 'study',
    database: 'study',
    password : 'study1!'
});
 
//mapper load
mybatisMapper.createMapper([ './sql/com/com_emp.xml' ]);
 
//param
var param = {
    EMP_NO : '10000002'
}
 
//create query
var format = {language: 'sql', indent: '  '};
var query = mybatisMapper.getStatement('com_emp', 'SEL001', param, format);
//getStatement([map namespace], [sql id], [param], format);

console.log(query);  //qury print

connection.connect();
connection.query(query, function (error, results, fields) {  
    if (error) {
        console.log(error);
    }
    console.log(results); //result print
});
connection.end();

실행결과(맵핑된 쿼리 및 결과값)

 

1) Visual Studio Code

https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

 

기본 설치 후 실행화면

 

한국어 언어팩 설정

 

한국어 언어팩 설치 후

 

개발환경을 선택해야 했다.

 

우선적으로 고려해야 했던 것은 

통합개발환경이어야 한다는 것.

front 따로 back 따로 별도의 환경에서 코드를 작성하고 싶지는 않았다.

 

그래서 고민했던 3가지

IntelliJ IDEA

Visual Studio Code(VSCode)

Eclipse(STS)

 

IntelliJ는 속도도, 기능도 가장 괜찮다고 판단되었다. 

다만, 매년 500~300달러를 내고 유지하는 것이 맞는지는 좀 의문이었다.

 

VSCode는 가볍고 플러그인을 이용한 확장도 나쁘지 않다고 판단되었다.

무료라는 것도 큰 장점.

 

Eclipse. 10년 넘게 썼으므로 익숙하다.

무겁고, 느리다.

(요즘 많이 개선되었다고는 하나, 스트레스는 회사에서만....)

 

그 중에 일단 해보자는 취지에 맞고,

여러가지 개발언어를 다 사용해보기 위해서는 

VSCode가 적합하다고 판단했다.

 

물론, 어느정도 시간이 지난 후에는

IntelliJ도 써보고 공부해볼 필요는 있다고 생각한다.

꼭 해볼 예정이다.

 

그리고, 또 하나의 전제.

개발환경에서의 배포 및 테스트가 불편하다면,

언제든 개발환경은 변경될 수 있다.

 

처음에는 cgi(perl)로, php, asp를 지나 jsp로 웹개발을 이어왔다.

하지만 이제 이렇게 새로 개발하는 사람은 거의 없을 것이다.

 

jquery도 접한지 그리 오래되지 않은 나였지만,

지금은 그것조차도 이미 지난 이야기가 되어버린 듯 하다.

(물론 지금 쓰지 않는다는것은 아니다.)

 

먼저 언어에 대해서는 두가지 선택을 해야했다.

front-end 와 back-end.

 

1) front-end

일단, 단순히 jquery만으로 하고 싶지는 않았다.

지금의 트렌드에도 맞지 않는다고 생각했지만,

지금 업무에 적용하고 있는 것을 그대로 하는것은 스터디로써의 의미도 없으므로.

 

다들 알고 있겠지만 내 눈에 먼저 들어온 것은

  • angular.js
  • react.js
  • vue.js

과정은 생략하고

react.js와 vue.js 두개 중 하나로 선택하기로 마음먹었다.

하지만 고민이 되었고, 지금도 고민하고 있는 것.

 

react.js는 개발 레퍼런스나 사용자수에서 많다. 즉 문제가 생겼을때 해결이 좀 더 용이할 듯 했다.

그리고, react native가 존재하여, 차후 앱개발시에도 쉽게 접근할 수 있을 것 같았다.

 

vue.js가 끌렸던 이유는 명확했다. 간결하고 쉬워보였다.

누구든 빨리 쉽게 개발할 수 있게 하는 것이 목적이라면, vue.js의 소스가 정답일 듯 싶었다.

 

2) back-end

처음 준비를 시작하면서는 당연히 node.js 여야 한다고 생각했다.

아니, 위의 front-end 프레임워크와 맞는 것은 그것밖에 없다고 생각했다.

 

하지만 최근에 와서 눈에 들어온 것이 spring.

front-end의 선택 이유와 배치되는 이유이긴 하지만

업무용으로 만들어야 한다면,

기존 java개발자들이 쉽게 접근할 수 있고,

회사의 차세대 시스템을 만들더라도 로직이 들어있는 서버쪽은

그대로 재사용을 할 가능성이 높을 수도 있다는 생각을 했다.

 

이것도 아직은 고민 중.

 

결론.

다 해보자. 스터디니까.

내가 직접 각각의 조합으로 게시판이라도 하나 만들어보고,

최종 결정을 하는게 맞다 싶었다.

십수년을 중소SI 회사에서, 그리고 프리랜서로 SI개발자로 살아왔다.

 

SI개발자에서 SM(유지보수) 업무를 시작한지 만 2년을 앞두고

안주하고 있는 나 자신을 바로잡기 위해서 새로운 스터디를 하기로 마음먹었다.

 

그중에서도 예전부터 만들고 싶었던 것에 도전하기로 했다.

명칭을 framework라 해야 할 지, package라 해야 할 지도 잘 모르겠지만...

웹 개발환경과 각종 컨트롤 및 기본 업무기능이 다 준비되어있어서

어디서든 어떤 업무든 바로 프로젝트에 적용하여 개발 가능한 것을 만들고 싶었다.

 

내가 예전에 몸담았던 회사에서도 만들고 싶던 것이었는데

중소 SI회사의 특성인지, 임원진의 생각이었는지는 판단할수 없지만

거기에 투자할 여력은 없다 했다.

 

그래서 새로운 프로젝트 개발에 나서는 직원들은

비슷한 이전의 소스들을 그대로 가져와 커스터마이징(?) 하거나

이클립스 혹은 비주얼스튜디오를 가지고

처음부터 새로 개발환경을 만들곤 했다.

 

.....

 

하지만 내가 회사에 맞추고 현실에 맞추어 사는 동안

특히나 web이라 불리는 환경은 엄청난 속도로 변했고,

개발언어의 선택부터 IDE의 선택까지 무엇하나 편안한건 없었다.

 

이에,

나와 같은 사람이 몇명정도는 더 있을까 싶어서

여러가지를 비교해보면서

직접 하나씩 부딪혀 볼까 한다.

 

 

+ Recent posts