2015.07.22 18:23

구글의 App engine은 App Engine Hosting 과 Managed VMs Hosting 두 가지 중 한가지를 선택할 수 있습니다. 


이번에는 이 둘의 차이점과 앞으로 사용할 Managed VMs Hosting에 대해 상세히 정리해 보겠습니다. Managed VMs Hosting은 2015년 7월 현재 베타 서비스 중이며, 이곳에 기록되는 내용은 이후 계속 변화할 수 있음을 참고하세요. ..... 를 줄줄이 쓰려 했으나 사실 공식 페이지에 워낙 잘 나와있어서, 괜히 사족 안달고  간단히 정리합니다. 


둘은 차이점은 https://cloud.google.com/appengine/docs/managed-vms/ 의 중간 정도에 나와있는 표를 보시면 쉽게 이해하실 수 있습니다.


제가 생각하는 가장 큰 장점은 기존에 정해진 Java, Go, Python, PHP가 아닌 다른 언어로 제작된 어플리케이션을 올릴 수 있다는거죠. 끝!! 


이 아니고.. 기존에 쓰려던 글 중 둘의 차이를 설명한 내용만 아래 남겨두었습니다. 굳이 보실 필요는 없지만... 한번 간단히 읽어 보셔도 됩니다. ^^


=============================================================================


이전 세대에서는 게임 서비스를 위해 IDC와 회선을 임대하고 IBM과 같은 회사에서 서버 시스템을 구매하여 IDC에 설치해야 했으며, 규모가 클 경우 이를 관리하기 위한 인력을 IDC 센터 내에 직원을 두어야 했습니다. 유저가 급격히 증가할 경우를 대비해 시스템 공급업체와 협상하여 빠른 시간안에 시스템을 투입하기 위한 계약을 했어야 했죠. 해외에 서비스를 위해서는 더 복잡한 절차가 기다리고 있었습니다. 게다가 서비스를 위한 대부분의 기능을 직접 개발을 해야 했습니다. 보안 업데이트와 같은 중요한 OS 변경 때마다 개발자와 운영자들의 스트레스를 극도로 상승시키곤 했죠.


Google App Engine 은 Platform as a Service입니다. 

이제 우리는 서비스할 기능을 구현하고, Google의 인프라스트럭쳐에 올려 빌드하고 간단히 배포할 수 있습니다. Google Console을 이용해 원격으로 시스템의 상태를 실시간으로 확인할 수 있으며, 유저의 증감에 따라 GAE에 설정한 대로 어플리케이션을 실행하는 서버들이 자동으로 증가,감소가 진행됩니다. GAE의 메인터넌스는 이제 다운없이 진행이 됩니다.(이에 대해서는 이곳을 참고해 보세요. 아.. 나프다 애청하고 있습니다. 더 많은 개발자 분들이 들으시길 바랩니다. ^^)이전과는 비교할 수 없을 정도로 간편해 졌으며, 운영비용을 획기적으로 줄일 수 있게 되었습니다.


이를 통해 로컬의 작은 회사조차도 전세계에 자사의 서비스를 사용할 수 있게 되었습니다.


기존에 GAE를 활용하는 방법을 기술한 훌륭한 서적들과 아티클들이 많이 있지만 굳이 제 블로그에 다시 정리하는 이유는, 제 경험이 미천하여 기록하며 배우고자 함이며, 저와 같은 시도를 하시는 분들께 조금이나마 도움이 되었으면 하는 마음입니다.


서론이 길었네요. 이제 본론으로 들어가겠습니다.


(* 아래 단락의 참고/이미지출처 사이트: https://cloud.google.com/appengine/docs/managed-vms/)


GAE는 2015년 7월 현재, 두 가지 호스팅 옵션을 제공합니다. 하나는 기존의 App Engine Hosting 이며, 2014년경부터 지원하기 시작하여 아직 베타 서비스 중인, Managed VMs Hosting 입니다. 


이 둘의 차이를 아래의 이미지에서 간단히 이해할 수 있습니다.



위 참고 사이트의 중간쯤을 보시면 아래의 표를 보실 수 있는데, 위 그림과 같이 보시면 startup time이 왜 이렇게 차이가 나는지 알 수 있습니다.


Instance startup time을 언급한 이유는 App Engine sandbox와 비교해 이 요소 이외에 단점이 거의 없기 때문입니다.


.

.

.




연재 순서


 1. Node.js로 App Engine 사용하기 - 들어가며... 

 2. Node.js로 App Engine 사용하기 - App Engine Hosting과 Managed VMs Hosting

 3. Node.js로 App Engine 사용하기 - Hello World with Node.js

 4. Node.js로 App Engine 사용하기 - 데이터 다루기

 5. Node.js로 App Engine 사용하기 - 인증

 6. Node.js로 App Engine 사용하기 - 로깅

 7. Node.js로 App Engine 사용하기 - Cloud Pub/Sub 서비스 시용하기

 8. Node.js로 App Engine 사용하기 - Cloud 설정하기

 9. Node.js로 App Engine 사용하기 - 게임 릴리즈 절차 정리

10. Node.js로 App Engine 사용하기 - 마무리 하며...


그럼 다음 글에서 뵙겠습니다. 



저작자 표시 비영리 동일 조건 변경 허락
신고
2015.07.22 00:48

현재 구글 앱 엔진은 java, python, go,php 네 가지 언어를 사용한 어플리케이션을 지원합니다.


위 언어 이외의 언어들(nodejs, perl, runy 등등)은 앱 엔진의 runtime 옵션에 custom 이 추가되면서 사용이 가능해졌습니다. (app.yaml의 옵션에서 설정이 가능합니다.)


현재 베타로 운영되고 있으며, 서버는 베타 기간 동안은 오직 북미에서만 운영된다고 합니다. 


가격에 대해서는 사용한 만큼 측정한다고 되어 있는데, 얼마나 써야 유료가 되는지, 유료로 전환할 경우 대략적인 비용이 얼만지는 바로 다음 글에서 측정해 보겠습니다.


이를 위해 Docker를 같이 다룰텐데, Docker에 대해서는 상세히 언급하지는 않을 예정입니다. 


Node.js와 Docker에 대해서는 이미 알고 계시다고 가정하고 진행하겠습니다. Docker는 깊이 있게 다루지 않으니 모르셔도 일단 진행하시면서 익히셔도 되니 참고하세요.


=============================================================================


시작하기 전에 아래 내용에 대한 준비가 필요합니다. 


- gmail 생성

- https://cloud.google.com/appengine/ 에서 무료평가판 신청

- google app engine sdk를 설치. 이는 로컬에서 구글앱엔진의 가상환경을 구축합니다.

- nodejs 설치


=============================================================================


https://cloud.google.com/nodejs/getting-started

https://github.com/GoogleCloudPlatform/nodejs-getting-started


위 두 사이트를 지속적으로 참고하세요. 앞으로 길지 않은 글을 작성하는 동안 위 샘플 프로젝트와 공식 사이트를 많이 참고할 예정입니다.


제 블로그의 글들은 대부분 사전에 알고 있는 지식을 쓰는 경우보다는 스터디나 실제 업무를 진행하면서 부딪히거나 힘들었던 내용들을 실시간으로 올리면서 작성됩니다. 그래서 잘못된 내용이 올라가기도 하고, 글이 완료된 후 퇴고 혹은 내용을 수정하는 경우가 종종 있습니다. 참고해 주세요. ^^;


이 글의 연재 목표는 아래와 같습니다. 


Google App Engine을 활용하여 게임 서버를 구축하는 것이며, 이를 위해 아래 내용들을 직접 제작/설정해 볼 예정입니다. 

- 유저의 게임 진행 데이터 저장 , 리더보드 제공

- 게임 이벤트 로깅

- 클라우드 플렛폼 활용법 

샘플 게임 클라이언트는 html5 Canvas를 사용할 예정이며, 클라이언트에서 사용될 코드들은 javascript로 제작할 예정입니다.


앞으로 연재되는 내용의 순서는 아래와 같습니다. 진행하면서 상황에 따라 변경될 수 있으니 양해 바랍니다. 주 내용은 이곳을 참고하여 따라갈 예정이며, 기존 내용에 제가 테스트를 진행하면서 발생하는 추가 내용들을 기록할 예정입니다. 


연재 순서


 1. Node.js로 App Engine 사용하기 - 들어가며... 

 2. Node.js로 App Engine 사용하기 - App Engine Hosting과 Managed VMs Hosting

 3. Node.js로 App Engine 사용하기 - Hello World with Node.js

 4. Node.js로 App Engine 사용하기 - 데이터 다루기

 5. Node.js로 App Engine 사용하기 - 인증

 6. Node.js로 App Engine 사용하기 - 로깅

 7. Node.js로 App Engine 사용하기 - Cloud Pub/Sub 서비스 시용하기

 8. Node.js로 App Engine 사용하기 - Cloud 설정하기

 9. Node.js로 App Engine 사용하기 - 게임 릴리즈 절차 정리

10. Node.js로 App Engine 사용하기 - 마무리 하며...


그럼 다음 글에서 뵙겠습니다. 



저작자 표시 비영리 동일 조건 변경 허락
신고
2015.07.20 10:49

오랜만에 포켓몬스터 카드 구매를 했음. 


마트에 우연히 BW 확장팩이 있어서 구매했고, 아들이 동내 문방구에서 xy 확장팩 6탄인 메가레쿠자EX를 봤다길래 주말에 달려가서 구매함. 




 


아들에게 내리 두 판을 지고, 메가레쿠자EX로 덱을 변경해 혼란을 겪고 있는 틈을 타, 겨우 1승을 건짐.


나날이 강해지네 이 놈. -_-a


그나저나 메가레쿠자 데미지 300이다. 사기아냐 이거 --

저작자 표시 비영리 동일 조건 변경 허락
신고
2015.07.16 19:04

요즘은 개발을 위해 이런저런 게임을 많이 해본다. 특히 모바일 게임은 ...


최근 핫했던(?) 뮤 오리진은 정말 상상을 못햇는데.. 


여러가지 우연곡절 끝에 만들어진 게임이 다행히 대박을 친 케이스인데, 




기존의 중국 웹 MMORPG를 그대로 차용한 시스템이라 뮤라는 타이틀 이외의 어떤 매력이 있는건지 궁금해서 해봤다. 


그런데.. 아무런 느낌을 못 느끼겠는거야 ㅠ_ㅜ 


늙은건가?? 아니면 내가 트랜드를 못 따라 가는건가?? 아님 그냥 다들 뮤라는 타이틀만 보고 하는건가??


개발자로서 감이 확 떨어진건지, 아니면 이 게임이 원래 이런거라 다들 게임성 보다는 친구가 하니까 하는거고, 맨날 광고나 나오니 그냥 하는건지.. 


경험치 증가에 대한 레벨링은 괜찮은 듯. 뭔가 아슬아슬 할 때 잠시 쉴틈을 주네.


특이한 시스템은 없는데, 끝없이 뭔가 할게 있어. 잡다하게... 이거저거... 


그냥 멍 하니 보다가 클릭 한번 하는걸 끝없이 반복하는 느낌. 


세세하게 보자면, 몹이 걸린다던가, 자동 이동하다가 걸린다던가, UI가 중첩되어 같은 캐릭터 포트릿이 화면에 두개 뜬다던가... 이런 자잘한 것들이 끊임없이 보이지만, 그런 시시콜콜한 것들은 과감하게 버려버린 듯..


게임의 세계관이나 뭐. 그런걸 즐긴다기 보다는 그냥 있기 심심하면 켜두는 그런 게임인 것 같다. 








저작자 표시 비영리 동일 조건 변경 허락
신고
2015.07.15 19:05



앱만장자

저자
크리스 스티븐스 지음
출판사
제이펍 | 2012-09-05 출간
카테고리
컴퓨터/IT
책소개
베스트셀러 앱 ‘앨리스 포 아이패드’의 제작자가 직접 취재한 앱...
가격비교

57. 이제는 전설이 되어버린 건지도 모를 인디 개발자들의 초기 고군분투(?)를 서술한 이야기들.


개발자라면 한번쯤은 꿈꾸는 이야기긴 할텐데...


이제는 워낙 대기업들이 많이 진출한 시장이다보니 초기 앱마켓의 전설은 재연하기 힘들지 않을까.


하지만 지금도 간간히 터지고 있는 "길건너친구들" 같은 작품들을 보면 불가능은 아니라고 생각된다. 


나도... ??  ^^

저작자 표시 비영리 동일 조건 변경 허락
신고
2015.07.10 11:00

GAME SETUP AND LIGHTING


1. Mesh Collider에 Mesh 말고 Material이 추가로 있음.

  : 충돌체에 매터리얼이 필요한 이유가 뭐지??


2. Camera의 Rendering Path 선택 옵션이 다름.

  4.x >>  Vertex Lit, forward, Deferred Lighting

  5.x >>  forward, Deferred, legacy Vertex lit, legacy Deferred (light prepass)

  : 기존의 Deferred Lighting 이 legacy Deferred가 된건가? (그러니까 legacy가 된거겠지??)

  : 그럼 현재의 Deferred와 legacy Deferred의 차이는 무엇일까?


3. Edit -> Render Setting은 Window -> Lighting 으로 이동됨. fog 설정탭이 이 안에 존재함.

   예제와 비슷하게 하려면 보간 방식을 linear로 설정할 것. Color 를 포함한 소수 옵션을 조절할 수 있지만, Global Fog image effect를 사용할 것을 권장하고 있음. 나중에 Global Fog image effect를 어떻게 활용하는지 찾아보고 장,단점을 정리해보자.

   

4. windows -> Light mapping 메뉴는 Lighting 메뉴로 수정되었으며, 이 튜토리얼에 있는 baking 설정은 General GI와 Baked GI에 분리되어 있다. 




카드키 삭제할 때 Destroy(gameObject) -> GameObject.Destroy(gameObject); 임.


Body Mask 는 Humanoid로 이름이 변경됨.




전반적으로, 크게 바뀐 UI는 내용이 없고, 다른 것들은 따라할 정도 수준.









  

  

저작자 표시 비영리 동일 조건 변경 허락
신고
2015.07.09 17:47

굳이 이럴 필요 없으나, 이 샘플이 워낙 잘 구성되어 있다고 하니, 이걸 5.x에서 가동시키면 여러모로 도움될 듯 해서 시도해 봄. 할 일 없어서 이거 하는거는 비밀.. 


처음 import 받으면 발생하는 에러들.


1. UnityEngine.Component 로 사용되는 것들을 GetComponent<>()로 수정할 것! 한 50개 정도 되는 듯.


2. doneSceneFadeInOut.cs는 주석처리. 

   Assets/Done/DoneScripts/ScreenFaderScripts/DoneSceneFadeInOut.cs(15,28): error CS1061: Type `UnityEngine.Component' does not contain a definition for `pixelInset' and no extension method `pixelInset' of type `UnityEngine.Component' could be found (are you missing a using directive or an assembly reference?)


3. 네비매쉬 다시 rebake하고.. 

   windows -> Navigation 열고 리베이크.


4. NpShape::setFlag(s): triangle mesh and heightfield triggers are not supported! 에러는 Unity 5.0이 PhysX3.3 SDK로 업그레이드 되면서 발생한 문제다.

 PhysX의 제약사항인데, TerrainCollider는 더 이상 isTrigger 플레그를 지원하지 않으며, Mesh Collider는 convex 모양에서만 트리거를 가질 수 있게 되었다. 이제 MeshCollider 중 isTrigger를 가지지만, convex가 아닌 것을 찾아 convex로 수정하자. 수동으로... 고고!!하면 죽을 지도 --;


Hierachy에 객체를 생성하고, 새로운 스크립트를 추가하자. 그리고 해당 스크립트에 아래 코드를 넣자.


      MeshCollider [] glist;


void Start(){

glist = FindObjectsOfType<MeshCollider> ();


foreach (MeshCollider mc in glist) {

if(mc.isTrigger == true && mc.convex == false)

Debug.LogWarning("Found triggered mesh : " + mc.name);

}

}

1 ~ 4까지의 에러들을 수정했다면 가동은 될 것이다. 위 코드를 삽입 후 가동하면 console창에 문제의 오브젝트 이름이 출력되며, Hierachy에서 해당 객체 이름을 넣은 후 클릭 -> Inspector 창에서 MeshCollider를 찾아 convex를 활성화하면 끝!!


이제 에러없이 샘플이 실행됨을 알 수 있다. 



자... 그럼 이제  이 곳 으로 가서 데모 프로젝트를 배워보자. +_+


저작자 표시 비영리 동일 조건 변경 허락
신고
2015.07.09 11:09

한 가지 핑계를 대고 넘어가야겠다. 어제 로깅 코드를 만들 때 모든 데이터를 event로 처리한 걸 기억하길 바란다. 사실 모든 게임의 로그를 이벤트로만 처리하는 것은 당연히 잘못된 방법이다. 하지만, 이 글은 Google Analytics와 Unity를 연동하는 과정을 설명하는데 목적을 두고 있다. 구글 애널리틱스에 적합하게 로깅하고 리포트를 분석하는 글이 아님을 밝힌다.(절대 몰라서 그런거... 맞음. --)


아마 대부분의 통계툴이 그렇겠지만, 데이터를 샘플링한다. 그래서 모든 데이터를 세세하게 보지는 못한다. 이번 테스트에서는 어제 게임 두 판만 했음. 팔이 아파서..데이터가 적기 때문에 추론하는 방법만 간단히 언급하겠다.


이제 본론 시작!!


데이터 조회는 보고서 속성에 설정한 시간대에 정리가 된다. 1일마다 리포트되며, 필요한 경우 아래 화면에서 변경 가능하다. 



금일 업데이트 되어 어제 테스트 한 내용을 검토해 볼 수 있게 되었다. 어제는 모든 데이터를 event로 처리했으니,  좌측 메뉴에서 "방문 형태" -> "이벤트" -> "인기 이벤트"로 먼저 가보자. 그럼 아래와 같은 결과를 볼 수 있다.



이전에 목표로 잡았던 총 세 가지 지표를 검토해 보자. 


1. 몇번째 스테이지에서 좌절하는가.

 : Category "game" -> Action "gameover" -> Label "last day" 로 설정했던 값을 검토해보자.

(* 순 이벤트 수란 : 한 세션 기준으로 첫 행동만 기록되는 이벤트의 합계. 즉, 어제 나 혼자, 게임을 두번 했는데, 하나의 세션이었으니, 그 중 첫번째 게임의 데이터를 말한다. 이벤트 값은 10. 두번째는 99판까지 갔다능...)


총 두번 플레이 되었으며,  순 이벤트 수 기준으로 이벤트 값은 10. 이를 통해 유저들은 평균 day 5 플레이 한다는 말도 안되는 결과를 알 수 있다. (모수가 많다면 우리 모두 공감할만한 결과를 얻을 수 있다. 지금은 그냥 패스 --a) 


2. Food의 획득, 이동 시 사용하는 량, 좀비에게 타격받아 소비되는 량

 : Category "food" -> Action "loss","get" -> Label "move","attacked","food","soda"  로 설정했던 값을 검토해보자.


Label 기준으로 본 화면이다. move, attacked는 loss, food, soda는 get action의 값이니 참고하자.


게임에서 이동 시 소비되는 food는 1이다. 평균값이 1인걸 확인할 수 있으며, 총 이벤트수는 90%에 육박하고 있는 걸 볼 수 있다. 그에 비해 attacked는 총 3.91%로 미비하다. (좀비가 우쉽나?)  좀비의 무서움을 더 알릴 필요가 있겠다. 


획득은 food가 soda의 획득 비율은 비슷하다. action "get"을 기준으로 food와 soda를 비교해보면 각각 56%와 44%임을 알 수 있었다. (몰랐는데 뭘 먹으나 food 증가량은 10이었네 --a 모양만 다르고 효율은 같았구나.)


3. 각 스테이지 별로 몇 번 정도의 이동으로 클리어 하는가

 : Category "day" -> Action "clear" -> Label "total move"로 설정했던 값을 검토해보자.

 위 분류는 사실 목적에 알맞지 않은 설정이었다. label을 day 1, day 2 등으로 분류하여 각 day별로 이동 횟수를 볼 수 있게 했어야 했다. 혹시 4번째 글에서 소스를 받은 분들은 이 부분을 개선해서 테스트 해보면 더 좋을 듯. 


day 별로 구분되지 않은 건 아쉽지만, 평균 약 20회 이동으로 스테이지를 클리어 하는 결과를 볼 수 있다.



이상. Unity + Google Analytics 연동에 대한 글을 마친다.


블로그 자체를 개인 저장소로 생각하며 글을 올리다보니 실수가 여기저기 보이네.


가끔 와서 보시는 분들께 심심한 사과의 말씀을 ^^a


다들 행복한 하루 하루 되세요. ~ 




저작자 표시 비영리 동일 조건 변경 허락
신고
2015.07.08 15:01


GameManager.zip

기반 준비는 다 되었다. 이제 실제 이벤트를 전송하고 그 결과를 어떻게 보는지 살펴보자.


이 전 글에서 공유했던 목표는 아래와 같다. 


1. 몇번째 스테이지에서 주로 좌절하는가

 : Game Over되는 시점의 Day 날짜를 전달하자.


2. Food의 획득, 이동 시 사용하는 량, 좀비에게 타격받아 소비되는 량

 : Food 나 Soda 획득시 획득량 전달

 : 이동할 때마다 1씩 소비됨. 이 정보 전달

 : 좀비에게 공격 당하면 10씩 소비된다. 이 정보 전달.


3. 각 스테이지 별로 몇 번 정도의 이동으로 클리어 하는가.

 : 각 스테이지가 클리어 될 때 총 이동 횟수 전달.


event parameter는 총 4개로 구성되며, string category, string action, string label, int value로 구성된다. 위 세 가지 이벤트를 위해 아래와 같은 분류를 만들자.


Category

"game" - 게임 전체에 대한 대분류

"day"   - 한 턴 끝날 때.

"food"  - 게임의 중요 요소, Food


Action

"clear" - 턴 클리어 시

"gameover" - 게임 종료 시

"get"   - 획득

"loss"  - 손실


Label

"total move" - 한 턴의 총 이동 횟수

"Last Day" - 마지막 day 

"food","soda" - 획득 시 구분되는 요소

"attacked","move" - 손실 시 구분되는 요소

 

관련된 코드는 첨부된 파일, GameManager.cs, Player.cs를 참고할 것!


테스트 한 실시간 그래프는 아래처럼 볼 수 있다.



Google Analytics에서는 이벤트 기록을 상세 분석하기 위해서는 하루가 지나야 가능하기 때문에 


리포트 상세보기는 내일 이어서 업데이트 할 예정


저작자 표시 비영리 동일 조건 변경 허락
신고
2015.07.08 11:51

일 이야기는 아니고... 


모든 아빠가 그렇겠지만, 나의 아빠도 정말 옆 길 한번 안보고, 인생 열심히 사셨다. 


시골의 어른들에게 매번 생활비를 보내고, 힘든 형제들 돌보면서도 XX은행의 최연소 지점장이 되었다. 


어떨 땐 호랑이 같고, 어떨 땐 한 없이 인자한 아빠의 모습을 보며, 내가 어른이 되면 이런 어른이 될거라며 생각하며 자랐다. 물론 삐뚤어질 땐, 아빠같은 어른은 되지 말아야지 하는 생각도 많이 했지 --ㅋ


하여간.. 다행히 좋은 부모 만나서, 큰 풍파없이 인생을 살아오며 나중에 성공하면 나도 내가 받은 사랑의 반만큼이라도 세상에 값고 살아야지 했지만... 


아직 성공했다고 하긴 좀 ㅜ_ㅡ 스쳐가는 월급보며 한숨을 쉬고 있지만, 어느날엔가.. 자신의 인생을 항상 행복해하며, 자신보다 조금이라도 힘든 사람들을 돌보기에 인생을 바치는 사람들을 보니 성공하면 남을 도와야지 라는 생각이 얼마나 부끄러운지 되돌아 보게 되었다. 


그래서 몇 해 전부터 조금씩이나마 후원를 하기 시작했고, 최근 한 곳을 더 추가했는데 매우 인상적인 사회 기업이었다. 


(기존에 하고 있던 후원)

http://fhs.pmsys.kr/index.php ==> 새희망씨앗. 불우한 환경의 학생들에게 교육의 기회를 주는 곳. 내 기부가 어떤 어린이에게 전달되는지 알 수 있다.

http://www.minjok.or.kr/ ==> 민족문제연구소. 좀 너무 치우친 것 아닌가라는 생각이 들어 한때 중단할지 고민했었지만, 다른 시각도 필요하지 않을까 라는 생각에 계속 후원 중.


여기가 오늘 소개할 곳인데, 매일 TV에 나오는 대출 광고를 보며 아이에게 절대 하지 말라고 말은 했지만, 언제 우리 가족에게 닥칠지 모르는 문제 아닌가. 또 이런 상황에 대해서 좀 더 많은 정보를 가지고 있다면 쉽게 당하지 않을텐데 라고 생각만 했는데, 이런 좋은 기업이 있을 줄이야. 


http://strikedebt.kr/ ==> 희망살림

http://cafe.daum.net/edufp ==> 여기 영상보고 후원 시작함.



(2015.7.14) http://www.greenpeace.org/korea/ ==> 유명한 그린피스. 딴거하자 캠패인 보면서 동참시작. 이전에도 해양 생물 보호 등의 동영상을 쭉 봐오면서 어떻게 할까 했는데.. ^^


후원하지 않더라도 꼭 한번 강연 보시고, 글 보면 평소에 접하지 못하는 좋은 정보들이 많이 있다. 


한번씩 꼭 읽어보시길.. 

저작자 표시 비영리 동일 조건 변경 허락
신고

'주저리' 카테고리의 다른 글

잡것들 모음.  (0) 2015.09.10
개인 희망(??) 프로젝트들...  (0) 2015.07.08
동기부여  (0) 2015.03.16
미아찾기 플러그인 붙이면서...  (0) 2014.04.29
헌법 34조 6항  (0) 2014.04.28
말주변 없는 나에게 필요한 것! 기록하고 항상 되뇌이자.  (0) 2014.03.12
1 2 3 4 5 6 7 8 9 ... 29


티스토리 툴바