지난번에 우연곡절 끝에 rails server를 정상적으로 가동하는데 성공했다. 


하지만 이후, 프로젝트를 만들 때 Gemfile은 항상 말썽이다. 


일단 이에 대한 상세원인은 다시 상세히 검토하여 다시 글을 올려둬야겠다.



일단 rails에서 DB를 다루어 API 서버를 만들어 보는게 목표이기에 코딩을 시작해 봐야지. 


그 시작은  "http://guides.rubyonrails.org/getting_started.html" 요기!! 공식 튜토리얼이니 찬찬히 보면서 시작해보자. 


아래는 "http://guides.rubyonrails.org/getting_started.html" 의 내용을 나름대로 정리한 내용이다.


rails --version 의 결과는 4.1.0 샘플과 같다.


blog라는 이름의 어플리케이션을 만들어 보자.


$rails new blog


cd blog로 들어가서 실행


$rails server

tzinfo에러는 여전히 발생. gemfile 파일을 수정하고 재실행하면 가동!


웹 브라우져에서 localhost:3000 으로 접속하면 "Welcome aboard" 화면 등장!


localhost:3000/blog 입력하면 아직 에러 화면 뜸. 이제 하나씩 만들어 보자.



튜토리얼 순서대로 "Hello!!"라고 말하는 레일즈를 만들어본다. 이를 위해서는 최소한 controller와 view가 필요하다.


controller의 역할은 어플리케이션으로부터 어떤 요청을 받는 것이다. Routing은 요청들을 어떤 controller가 받을지 결정한다. 종종, 하나의 controller에 하나 이상의 route가 존재하기도 하며, 각 route들은 서로 다른 action들을 제공하기도 한다. action의 목적은 view에서 보여줄 정보를 모으는 것이다.


view의 목적은 여러 정보를 우리가 읽을 수 있도록 만들어 출력하는 것이다. view는 단지 출력용이며, view 템플릿은 기본적으로 eRuby라는 언어로 작성되어진다.


이제 controller를 만들어보자.


$rails generate controller welcome index


"index"라고 불리는 action을 가진 "welcome"  controller를 생성한 것이다.


controller는 app/controller/welcom_controller.rb, view는 app/views/welcome/index.html.erb에 생성되었다.


"app/views/welcome/index.html.erb" 파일을 열어, 불필요한 것들을 지우고, 아래와 같이 바꿔보자.


<h1> 안뇽! rails~! </h1>


잘 나오는지 확인해보려고 localhost:3000/welcome/index 들어갔는데.. 헉!! 에러남. 알고보니 한글 인식 문제였음. 스크립트 파일이라 그런건가. 일단, 아래와 같이 일단 수정해서 정상 출력확인.


<h1> Hello! rails~! </h1>


이제 localhost:3000으로 입력했을 때 저 문장이 나오도록 해보자.


config/rubtes.rb 열어서 아래와 같이 수정해보라.


get 'welcome/index' 부분을 root 'welcome#index' 로 수정.


이제 localhost:3000으로 들어가면 변경된 내용을 확인할 수 있다.








'개발/경험' 카테고리의 다른 글

ruby on rails 시작해보기 - 2  (0) 2014.05.06
ruby on rails 시작해보기 - 1-1. 보충설명.  (0) 2014.05.04
ruby on rails 시작해보기 - 1  (0) 2014.05.03
ruby on rails 윈도우 설치  (0) 2014.04.20
Ruby on Rails  (0) 2014.04.16
SVN 속도 문제  (0) 2014.04.14



1. ruby 설치

   http://rubyinstaller.org/downloads/ 에서 ruby 설치


2. rubygems 설치. 이것은 ruby를 위한 패키지 관리 프레임웍이다. 이를 설치하는 과정은 아래.

   gem update --system  입력하여 rubygem 설치

   gem install rubygems-update 입력

   update_rubygems 입력


3. rails 설치

   gem install rails 

  -> 설치 중 아래 에러 발생

Installing ri documentation for actionpack-4.1.0

ERROR:  While executing gem ... (Errno::EINVAL)

    Invalid argument - ./ActionDispatch/Routing/Mapper/Scoping/:

  -> gem install rdoc 한 후 재설치를 시작했지만 반응 없음. 중단!!

  -> gem uninstall rails 실행하여 삭제. 

  -> gem install rails 재입력. 에러 없음. 단, 이전에 에러가 난 actionpack-4.1.0을 재설치한 것이 아니라 이상함.

  -> gem install actionpack 재설치 시도. 정상적임.


3-1. rails new hello로 테스트 시도. 아래 에러 발생.

 Gem::InstallError: The 'json' native gem requires installed build tools.


4. devkit 설치

   https://github.com/oneclick/rubyinstaller/wiki/Development-Kit 에서 다운로드

   ruby가 설치된 폴더의 devkit폴더를 만들어 압축 품.

     * 이 사이트에서 폴더명에 공백이 있으면 안된다고 함. 전체 폴더 포함해서.

  devkit의 bin에 가서

  ruby dk.rb init/review/install 를 순서대로 처리. 모두 정상.

 

4-1. rails new hello로 다시 테스트 시도. 성공


4-2. rails server 테스트.  에러 발생

C:/Ruby200/lib/ruby/gems/2.0.0/gems/tzinfo-1.1.0/lib/tzinfo/data_source.rb:199:i

n `rescue in create_default_data_source': No timezone data source could be found

. To resolve this, either install TZInfo::Data (e.g. by running `gem install tzi

nfo-data`) or specify a zoneinfo directory using `TZInfo::DataSource.set(:zonein

fo, zoneinfo_path)`. (TZInfo::DataSourceNotFound)

  .

  .

[출처] ruby on rails 설치|작성자 바다와해

  이상한 건 설치된 tzinfo의 version이 2.2.2인 상태. 에러의 내용과 조금 다른게 아닌가 생각됨. gems 폴더에 가도 tzinfo-1.1.0 만 존재함.


4-3. bundle install 하라는 메세지가 떠서 일단 이거 실행. 에러에 대한 변화는 없음.


4-4. 아래 사이트에서 64bit 버전에서의 Gemfile에 빠져 있는 x64_mingw 옵션을 넣으면 된다는 아티클이 있지만, 역시 같은 결과임.

  http://stackoverflow.com/questions/23022258/tzinfodatasourcenotfound-error-starting-rails-v4-1-0-server-on-windows


gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]

Background

The TZInfo::DataSourceNotFound error is being raised by TZInfo, a dependency of the Active Support component of Rails. TZInfo is looking for a source of time zone data on your system, but failing to find one.

On many Unix-based systems (e.g. Linux), TZInfo is able to use the system zoneinfo directory as a source of data. However, Windows doesn't include such a directory, so the tzinfo-data gem needs to be installed instead. The tzinfo-data gem contains the same zoneinfo data, packaged as a set of Ruby modules.

Rails generates a default Gemfile when the application is first created. If the application is created on Windows, then a dependency for tzinfo-data will be included. However (as of Rails version 4.1.0), this omits :x64_mingw from the list of platforms, so doesn't work correctly on 64-bit Windows versions of Ruby. This should be fixed in future Rails releases.


4-5. devkit 32bit 버전을 재설치. 에러는 같은 상태.


4-6. 프로젝트 파일에 Gemfile 하단부에 64비트 버전 정보와 bundler 정보 추가

gem 'bundler'

gem 'tzinfo-data', platforms: [:mingw, :mswin , :x64_mingw]


4-7. rails server 성공!!



'개발/경험' 카테고리의 다른 글

ruby on rails 시작해보기 - 1-1. 보충설명.  (0) 2014.05.04
ruby on rails 시작해보기 - 1  (0) 2014.05.03
ruby on rails 윈도우 설치  (0) 2014.04.20
Ruby on Rails  (0) 2014.04.16
SVN 속도 문제  (0) 2014.04.14
애자일, xp 등등...  (0) 2014.03.19

헐... 


완전 반할 듯.


자바로만 하다가 이거보니... 속도 하나는 기가 막히네 -_- 쩐다.



'개발/경험' 카테고리의 다른 글

ruby on rails 시작해보기 - 1  (0) 2014.05.03
ruby on rails 윈도우 설치  (0) 2014.04.20
Ruby on Rails  (0) 2014.04.16
SVN 속도 문제  (0) 2014.04.14
애자일, xp 등등...  (0) 2014.03.19
git 사용기  (0) 2014.03.18

문서, 코드, 리소스 공유에 SVN을 전반적으로 사용한다. 



현재 SVN 서버에는 30여개의 세션이 붙어서 작업 중인데, 


DISK는 RAID 1+0 으로 구성. 

CPU는 (8 core) 16%

NIC는 10% 미만 

MM는 4.6GB 


이런 정도. 그런데 업데이트 속도는 30분에 3.2MBytes 다운 받음. 


미친... ㅠ_ㅜ


작업자들 아침부터 다들 난리남. 


게다가 이 SVN 서버를 회사 공유로 만들어둔 상태라 세션 강제 정리하기도 힘든 상태.


타팀에서 지난 금요일부터 SVN 정리하느라 몇십기가 되는 데이터들을 올리고 내리는 중이라고.. -_-a  (오전 회의 때 공유 해줬으면 좋을 걸.. 역시 이런건 대화 문제... )


저녁이야 되서야 겨우 양해를 구해 업데이트를 시작했음. 


Git를 사용하면 이 문제를 해결할 수 있을까.. 


SVN을 목적에 맡게 사용하지 못하는 것도 문제인 듯.


돌아버릴 것 같은 월요일 임.

'개발/경험' 카테고리의 다른 글

ruby on rails 윈도우 설치  (0) 2014.04.20
Ruby on Rails  (0) 2014.04.16
SVN 속도 문제  (0) 2014.04.14
애자일, xp 등등...  (0) 2014.03.19
git 사용기  (0) 2014.03.18
ofstream 반복 활용시...  (0) 2014.02.24

개발 방법론을 기존의 팀에 적용할 때는 최대한 작은 규모로 시작해라.


여러가지 개발 방법론에 대해서 보고, 듣고, 실행도 하면서 많은 노력을 기울였다. 


여러번 실패하고, 어떤 경우는 시도도 못하고 끝나보기도 하고.. 




그런데 최근 트렐로로 가볍게, 작은 인원 단위로 시작했는데... 


자연스럽게 진행이 되더라. 그리고 다른 팀원들도 자기들끼리 적용해보기 시작했다. 


억지로, 그리고 팀 전체에 적용하려고 할 때는 엄청난 저항에 시달렸는데.. 


이렇게 자연스럽게 시작되다니... 


기쁘기도 하고.. 한편으로 원망스럽기도 하고.. 


그래도 기분은 좋네. ! 

'개발/경험' 카테고리의 다른 글

Ruby on Rails  (0) 2014.04.16
SVN 속도 문제  (0) 2014.04.14
애자일, xp 등등...  (0) 2014.03.19
git 사용기  (0) 2014.03.18
ofstream 반복 활용시...  (0) 2014.02.24
Facebook Web 연동 막정리  (0) 2014.02.02

github 사용하려는데 private로 설정하니 유료. 얼마 안하지만, 카드 번호 입력하는게 걸려서 포기.


익숙한 code.google.com에서 git 저장소 생성. 어차피 html5 프로젝트라 용량이 별로 필요도 없고... 


tortoise git으로 구글에 접근하려니 억세스 불가. https를 지원하지 않는다고 했던가??


google에 링크되어 있던 git 유틸 다운 받음. 엥? 같은거네.


역시... https 를 지원하지 않거나 libcurl에서 꺼져있다. 는 메세지가 있군. 


구글링!!!


http://stackoverflow.com/questions/19015282/how-do-i-enable-https-support-in-libcurl


(최신 curl은 여기서 !! http://www.confusedbycode.com/curl/#downloads )


를 참고해서 curl의 ssh옵션을 활성화하면 될 줄 알았는데 잘 안되네.


다시 업무 시간. 다시 도전해야겠다. -_-a


'개발/경험' 카테고리의 다른 글

SVN 속도 문제  (0) 2014.04.14
애자일, xp 등등...  (0) 2014.03.19
git 사용기  (0) 2014.03.18
ofstream 반복 활용시...  (0) 2014.02.24
Facebook Web 연동 막정리  (0) 2014.02.02
나의 생각을 전달한다는 것.  (0) 2014.01.22

ofstream ofs;

ofs.open ... 

ofs.write .. 

ofs.close();


ofs.open => 이렇게 다시 활용할 때, 단순히 close만 하면 write해도 실제 write 안됨.  ofs.clear()를 꼭 해줘야 함.  clear 안해도 open이 정상적으로 되는게 함정.


http://www.cplusplus.com/reference/ios/ios/clear/


참고.

'개발/경험' 카테고리의 다른 글

애자일, xp 등등...  (0) 2014.03.19
git 사용기  (0) 2014.03.18
ofstream 반복 활용시...  (0) 2014.02.24
Facebook Web 연동 막정리  (0) 2014.02.02
나의 생각을 전달한다는 것.  (0) 2014.01.22
개발과 리딩의 사이  (0) 2014.01.22

로그 위치를 별도 지정하지 않았다면 일반적으로 /var/lib/mysql 에 생성됨.


바이너리 로그는 mysql-bin.0000XX 이런식으로 생성되며, 이 파일을 삭제할 경우가 생긴다면

mysql-bin.index에 기록된 정보도 같이 수정되어야 한다.

(* 이 내용이 일치하지 않으면 실행 안됨.)


바이너리 log 파일은 mysqlbinlog [로그파일명] 으로 볼 수 있으며, 텍스트 파일 형태로 변환할 때는 mysqlbinlog mysql-bin.000001 >> mysqlquerylog.txt 형태로 변경하여 볼 수 있다. 

용량이 크면 split으로 분리할 것!


/etc/my.cnf 에서 innodb_log_file_size의 용량을 수정할 때는 innodb_buffer_pool_size의 25% 이하로 설정해야 함.


innodb_log_file_size옵션값으로 설정되는 파일이 ib_logfile0과 1인데, 해당 옵션의 값을 조정하려면 아래와 같은 순서로 진행해야 한다.


1) mysql 종료

2) ib_logfile0과 1을 이동하거나 이름 변경

3) 옵션값 조정

4) 재시작


기존에 할당된 용량만큼의 사이즈로 이미 할당되어 있기에 옵션만 바꾸면 실행시 에러가 발생한다. 주의할 것!

원본 : https://developers.facebook.com/docs/javascript/quickstart


사이트 내용 전체를 번역하였다, 허락없이 번역본을 웹사이트에 공개하는 것은 저작권 침해라하여 올리지 못함.


그래서 일단 제작에 대한 내용을 별도 정리하여 업데이트 한다. 


들어가기전..

* 아래 내용을 테스트 하려면 facebook app에 대한 개발 환경이 갖추어져야 한다. 아래 내용은 웹 APP에 대한 개발을 기준으로 정리되었다.

 - facebook에서 "앱 만들기"를 통해 만들고자 하는 앱을 등록하고, ID를 발급받는다.

 - App Domain에 localhost로 등록은 안된다. 자신의 PC에 있는 hosts 파일에 원하는 이름을 넣어두고, 그 이름으로 등록하면 local test 가능하다. (해당 이름으로 사이트 URL도 맞추어야 한다.)

-------------------------------------------------------------------------------

Javascript를 위한 facebook sdk는 다른 자바스크립트 라이브러리처럼 코드상에서 세팅. html 파일의 <body> 태그 바로 아래에 아래 코드를 삽입하면 끝.

<div id="fb-root"></div>

<script>

  window.fbAsyncInit = function() {

  FB.init({

    appId      : 'your-app-id',

    status     : true, // check login status

    cookie     : true, // enable cookies to allow the server to access the session

    xfbml      : true  // parse XFBML

  });


  // Load the SDK asynchronously

  (function(d){

   var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];

   if (d.getElementById(id)) {return;}

   js = d.createElement('script'); js.id = id; js.async = true;

   js.src = "//connect.facebook.net/en_US/all.js";

   ref.parentNode.insertBefore(js, ref);

  }(document));


 - 성능을 고려해 javascript sdk는 최소화된 버전으로 로드되는데, 디버깅을 위해 아래와 같이 sdk를 세팅할 수 있다.

js.src = "//connect.facebook.net/en_US/all/debug.js";


- 소셜 플러그인 기능도 활용할 수 있는데, 대표적인 like 버튼을 아래와 같이 삽입 가능하다. 아래 코드를 body 안에 넣고 리로드 해보면 결과를 확인할 수 있다.

<div class="fb-like" data-send="true" data-width="450" data-show-faces="true"></div>

 

- 로그아웃 버튼 삽입은 아래와 같이

<a href="#" onclick="FB.logout();">logout</a>


- Feed에 글 남기기 (이미지 지정 해서)

 1) body 안에 링크 

<a href="#" onclick="postToFeed();">글 올리기</a>

  2) javascript에 추가

   function postToFeed(){

var data= {

method: 'feed',

link : 'your-url',

name : '이름',

caption : '캡션',

description : '설명'

};

function callback(response){

}

FB.ui(data, callback);

  }


- 자신의 페이지에 comment 남기기 (자신의 주소를 기준으로 포스트 내용을 facebook 서버에 저장하고, 페이지 로딩시에 불러오는 듯)

<fb:comments href="your detail url" num_posts="4" width="400"></fb:comments>



'개발/경험' 카테고리의 다른 글

git 사용기  (0) 2014.03.18
ofstream 반복 활용시...  (0) 2014.02.24
Facebook Web 연동 막정리  (0) 2014.02.02
나의 생각을 전달한다는 것.  (0) 2014.01.22
개발과 리딩의 사이  (0) 2014.01.22
개발자에서 개발자들의 리더가 된다는 것!  (0) 2014.01.22

내가 생각하는 것 그대로를 잘 전달하는 것


너무 표면적으로 설명하기 보다는, 내가 그리는 큰 목표를 좀 더 잘 설명할 수 있도록



많은 준비들이 필요하다.


정확히는 연습과 반대 의견에 대한 대비가 필요하고, 많은 경험에 의한 원활히 의견을 조율할 수 있어야 한다. 


내 의견이 다가 아님을, 다른 이의 의견이 그냥 나온것이 아님을 머리속에서 되뇌이고 되뇌인다. 



+ Recent posts