크게 프로젝트 설정 파일들이 모여 있는 config, 실제 비지니스/모델/라우팅 부분인 api, 프로젝트의 스태틱 리소스가 위치하는 assets, 그리고 화면 뷰 영역 파일(Sails.js에서는 EJS를 기본 포맷으로 사용 한다.)이 위치하는 views가 있다.
데이터베이스 연결이 준비되지 않았을 경우에도 기본으로 sails-disk라는 데이터베이스 어댑터를 이용해서 자체 제공하는 파일 기반 데이터베이스를 사용할 수 있다. config/connections.js파일을 열어보면 어댑터를 설정할 수 있고 개발/운영 모드에 따라서 별 개의 데이터베이스를 설정할 수 있다. 그리고 sails-disk(local disk storage)는 개발모드에서만 사용해야 한다. 실제 서비스용으로 사용하기에는 무리가 크다.
config/models.js 아래 2라인을 찾아서 주석을 해제 한다.
connection: 'localDiskDb',
migrate: 'alter'
sails 프로젝트를 기동할 시에 데이터베이스 migration 되는데 migrate옵션은 총 3가지다.
safe : 마이그레이션 하지 않음. 사용자가 직접 데이터베이스를 수정해야 한다.
alter : 기존에 생성된 데이터는 두고 sails에서 자동으로 마이그레이션.(완벽하지 않음)
drop : 스키마/데이터 모두 삭제하고 다시 생성.
sails프로젝트를 운영모두로 기동할 경우에는 safe만 가능 하고 개발모드에서 3가지 모두 사용할 수 있다.
env/development.js에서 연결 정보를 local disk storage로 설정 한다.
최근에 간단한 앱 API서버 프로토타입을 만들 일이 생겨서 검색으로 조사해봤다. 일단 일의 메인 프로젝트가 자바기반이긴 하지만 프로토타입을 만드는 서브 프로젝트라서 자바는 배제를 시켰고 최근에 관심을(아니 관심만) 가지고 있는 node.js기반의 프레임워크를 찾다가 관심을 가지게 된 프레임워크다. 현재 버전은 0.11.0이고 구글링 한국어로는 페이지가 몇 안 나오는 걸로 보아 인기가 얻거나 나온지 얼마 안됬구나 했는데 Git 히스토리를 보니 대략 2012년부터 해온 프로젝트다.
Mike Mcneil(https://www.linkedin.com/in/mikermcneil) 이라는 친구가 처음 만들어서 오픈소스로 올렸고 처음에는 rails like한 node’js 프레임워크를 만들려고 했던 것으로 보인다. 그래서 이름 역시 (ruby on) rails와 유사한 sails(‘js)이다. 이 친구가 sails’js기반으로 테크 스타트업회사인 treeline(https://treeline.io/) 을 하고 있다. treeline에 올라온 영상을 보면 알겠지만 코딩 없이 앱이나 모바일/웹 서비스의 백엔드를 만들어주는 서비스로 보인다. 개인적으로 sails’js에 관심을 가지는 이유는 사물인터넷의 백엔드 프레임워크로 괜찮다(아직까진)라는 느낌을 받아서인데 확신은 없지만 괜찮은 선택으로 보인다.
sails’js 관련 글을 몇 개 더 올릴 생각인데, 먼저 나 스스로가 node’js를 실제 업무에서 사용하는 개발자가 아님을 염두에 두길 바란다. 잘못된 부분있으면 댓글을 달아주시고 댓글을 확인하면 아무도 모르게 슬쩍 고쳐놓겠다. 그리고 가장 중요한 점은 나 스스토로 공부하기(삽질하기 위해서) 위해서 정리 겸 해서 올리는 포스팅이다. 결국엔 나도 잘 모른다는 이야기다. ;Q
당근 자바스크립트 언어 구성이고, 내부적으로 Waterline이라는 ORM 플러그인을 내장하고 있어서 기존 Mysql과 같은 SQL기반 데이터베이스뿐만 아니라 MongoDB같은 noSQL 데이터베이스도 사용이 가능하고 모델을 통한 쿼리도 가능하다. 모바일 앱이나 게임에서 필요한 REST API 바로 생성할 수 있는 기능은 프로토타입핑하기엔 편리하다. 웹소켓 기능도 기본으로 들어가 있는데 아직까진 사용해본 적이 없어서 모르겠고 위 2가지 사항만으로도 충분한 강점이 있어 보인다.
올초에 부산에서 스타트업을 시도하면서(결국 시도만 해보고 실패함) 부산에서 스타트업 관련 인프라가 너무 힘들다는 사실을 깨달았다. 그런 고민으로 스타트업 부산이라는 주제로 블로그와 페이지를 열고 오프라인 네트워킹 모임을 개최할려고 시도 했었는데 귀차니즘..이 아니라 쉽게 포기하는 내 성격 때문에 중도 포기하고 말았다. 그렇게 몇 달이 흘렀고 얼마전에 구글 뉴스를 통해서 아래 기사를 접했다.
형식은 부산시와 돈많은 B모그룹이 공동 출자하여 100억(!)이라는 엔젤펀드 기금을 마련(지역 기업가들을 통해서)하겠다는 취지고 그런 창구 역할을 부산 스타트업 카페에서 하겠다는 이야기다. 돈의 액수가 중요한 게 아니라 카페 홈페이지에도 나와 있듯이 “지속 가능한 지원 시스템”이 중요해 보인다. 창업 생태계를 만들겠다는 부산 최초의 의미있는 시도(?)라 개인적으로는 높이 평가해본다.
분명 부산이 서울보다는 미지근하지만 스타트업에 관한 열기는 분명히 있다. 다만 이런 열기를 가진 사람들이 시도를 해볼 수 있는 인프라와 그리고.. 부산이라는 지역적 특성인지 모르겠지만 부산의 기업 문화가 보수적이고, 닫혀 있다는 느낌을 많이 받았는데 그 속에서 스타트업이라는 새로운 문화가 어떻게 커갈 수 있을 지 지켜볼만한 부분이라 생각 된다.
개발 일을 처음 시작할 때 vi(m)을 처음 배웠는데 배운 이유가 간단 했다. 멋있어 보여서다. 검은 터미널 화면에서 vi(m)에디터 하나로 자동완성, 문법체킹 이런 거 하나 없이 한땀한땀 코드를 입력하는 게 멋있어 보여서 배우기 시작 했다. 그야말로 겉멋 개발자였던 셈이다.
시간이 지나고 새로운 대세 에디터들(textmate, sublime, atom)이 나오면서 굳이 vi(m)을 쓸 필요가 없을 정도로 강려크한 에디터들이 등장 했다. 애정이 생긴 만큼 vi(m)을 계속 쓰고 싶었지만 vi(m)의 학습곡선이란게 이렇다. 손에 익숙해질만 하면 어려워지고…..아래 선처럼….
최근에는 sublime으로 잘 써먹었고, 깃헙에서 나온 Atom에디터도 이쁘긴 한데 몇 메가짜리 로그 파일 열어보다가 느려지는 거 보곤 기겁해서 삭제해 버렸다.
그러다가 요즘 라이브코딩 티비를 보다 vi(m)으로 코딩하는 모습을 보면서 다시 vi(m)을 보다 보니 이런게 있어서 소개 해드릴려고 한다.
게중에 NERDTree(토글 키는 <C-E>로 기본 바인딩되어 있다.)야 워낙에 유명하고, ctrlp.vim은 파일 명으로 바로 파일을 찾아서 열어주는 플러그인. 다른 에디터(sublime, atom)에는 기본 기능인데 vi(m)에도 되니깐 감동이다. ㅠ.ㅠ
그밖에도 git관련 플러그인도 있고 이 정도면 sublime이나 atom 안 부럽다. .vim디렉토리에 설치된 플러그인을 리스팅해보면 아래와 같이 많다… 아마 저게 어떤 플러그인인지는 몇 년이 지난 후에나 알 수 있지 않을 까 싶다.(이렇게 많은 플러그인 때문인지 vim 구동이 좀 무겁게 느껴진다.)