2013년쯤 몬스터 길들이기가 출시되고 나서 엄청난 인기를 끌었고, 현재까지도 엄청난 인기를 끌고 있습니다. 그 후에 몬스터 길들이기와 같은 류의 게임이 어마어마하게 쏟아졌죠. 현재까지도 그런 비슷한 류의 게임이 출시되고 있는데, 그 중에 제가 최근에 열심히 하고 있는 영웅 for Kakao를 소개하려고 합니다.

출시시점부터 시작해서 아직까지 하고 있는데요. 뭐 아직까지는 안질리고 열심히 잘 하고 있네요. 제가 몬스터 길들이기는 1년정도 했었는데, 이건 언제까지 할지 모르겠네요ㅠ

뭐 암튼, 영웅도 모바일에 최적화되어 있습니다. PC MMORPG처럼 뭐 필드로 걸어나가서 무한 마우스클릭으로 잡는 게 아니라, 지역과 스테이지를 선택해서 모험던전에 들어가면 자기가 알아서 열심히 싸워주는 전투형식입니다. 그리고, 다양한 컨텐츠 중 하나인 결투장, 왕좌의탑, 시련의 탑, 시쿤동산 등이 있는데, 아직 레이드시스템이 개장하지 않았는데, 언넝 개장했으면 좋겠네요.

아래는 제 덱입니다. 휴... 정말 열심히 했네요ㅠ 아직 태생5성이 없다는 게 아쉽네요ㅠ


0. 기본 자산

스테미나: 모험할 때 필요한 스테미나입니다. 시간이 지나면 차기도 하고, 친구한테 선물을 받을 수 있습니다.
골드: 케릭터 합성, 룬변환, 아이템 구입 등 다양한 곳에 쓰이는 돈입니다.
명예포인트: 결투장, 왕좌의 탑, 시련의 탑에서 얻을 수 있으며, 이걸로 룬을 살 수 있습니다.
우정포인트: 친구한테 스태미나를 보내면 10씩 주고, 자고 있는 사이에 친구가 내 케릭터를 불러 모험에 들어가도 자동으로 획득합니다. 이걸로 스테미나를 살 수 있고, 케릭터를 뽑을 수 있습니다.

보통 우정포인트는 스테미나 구입하는 게 개이득입니다. 우정포인트 열심히 모아서 케릭터뽑으면 200씩 드는데, 1성아님 2성입니다-_- 스테미나 사서(50듬!) 모험돌리면 4번돌릴 수 있는데, 4번 중 두 번은 2성케릭터 나올 듯-_- 암튼 알아서 판단을!

명예포인트도 열심히 모아두세요. 룬구매할 때 겁나 필요합니다. 룬합성할 때에도 필요하고요. 명예포인트가 룬작할 때 꼭 필요하니 왕탑, 결장, 시탑 빠짐없이 하세요ㅠ


1. 케릭터 강화/진화 시스템

- 강화

강화는 강화하려는 대상 케릭터에 재료 케릭터를 넣어서 강화합니다. 확률로 하는 것이 아니라 일정 케릭터를 처 박아 넣으면 강화퍼센트가 쌓이면서 100%가 되면 1강씩 됩니다. 강화는 최대 5강까지 됩니다. 

- 진화

이 강화한 케릭터를 가지고 진화를 할 수 있습니다. 케릭터 최대레벨에 5강 + 아무레벨에 재료 5강으로 진화할 수 있습니다. 진화의 최대치는 아래 사진처럼, 별이 표시해줍니다. 빈칸이 있어야 진화가 가능한 케릭터 입니다. 최대는 6성까지이며 언젠가 노가다를 하게 되면 뭐든 6성을 만들 수 있습니다. 시간이 약이라지만, 그래도 잘 알아보고 좋은 케릭터를 선별해서 키워야겠죠?


2. 룬 시스템

이 게임이 아이템 그리기 귀찮았는지, 아이템을 룬으로 다 처리해버렸습니다. 결국 장비 시스템은 없고, 룬 시스템이 존재합니다. 룬은 골드룬, 블루룬, 레드룬, 그린룬이 있으며(RGB네요...), 이 룬들은 1~5성까지 존재합니다.

케릭터 당 룬 종류별로 3개씩 장착할 수 있습니다. 케릭터당 총 12개의 룬이 필요하네요...


- 룬합성

같은 등급 룬5개가 모이면 다음 등급의 룬 1개로 합성을 할 수 있습니다. 합성할 때 명예점수가 듭니다. 결국 노가다를 열심히 하면 5성룬 셋으로 맞출 수 있다는 기대감이 있습니다....그게 언제일까......

- 룬진화

룬합성을 하게 되면 랜덤으로 다음 것이 나오기 때문에 원하는 룬이 나오지 않을 확률이 높습니다. 그래서 룬 진화 시스템이 있습니다. 이것은 2성 공격력룬을 원한다면 1성 공격력 룬으로 진화를 하는 것입니다! 다만 재료 룬으로 2성잡룬 4개가 필요한....-_- 이거 초반에는 그냥 하지말고, 나중에 5성까지 진화했는데 그지같은 룬이 나오면 그때 5성으로 갈 때 진화하는 게 나을겁니다. 어차피 룬이 겁나 많기 때문에 계속 합성하면 원하는것은 3~4성까지는 나옵니다-_- 5성 때 하는걸로....

- 룬변환

해당 등급의 룬을 변환할 수 있습니다! 하지만 이 듭니다! 그리고 랜덤입니다! 돈도 20만~30만골드입니다! 변환했는데 그지같은거 나오면 아마 폰 던질 듯...


3. 모험

모험은 난이도가 수련, 실전, 고행, 설원, 4가지 난이도로 나눠져 있습니다. 최초 오픈했을 때에는 3가지(수련, 실전, 고행) 밖에 없었는데, 얼마전에 설원이 오픈되었습니다.

- 수련 실전 고행

수련, 실전, 고행은 한세트로 총 60스테이지가 있습니다. 6성5강라일라 정도만 있으면 다 클리어할 수 있는 정도입니다. 

그리고 대부분 컨트롤 하기 귀찮아서 자동사냥 하는 곳을 많이 찾는데, 이순신정도 있으면 혼자서 돌 수 있는 최대 스테이지는 고행 51정도입니다. 대부분이 경험치를 키우거나 자사(자동사냥) 노가다하는 곳이 여기일 것입니다.  저는 51스테이지에서 이순신+키울애들2명 데리고 51에서 노가다를 주로 합니다(현재는 설원 자사하지만...). 여기에서는 아주 가~~~~~~~~~~끔 라일라나 제갈량 등 특수한 4성케릭이 떨어지기도 합니다. 저도 라일라1번 획득, 제갈량 한 번 구경정도한 것 같네요ㅠ 그리고 아주 빠른 속도로 클리어할 수 있기때문에 스테미나 녹이기에 좋기도 합니다. 아래 동영상 보시죠!


- 설원

설원은 최근에 업데이트 되었는데, 난이도가 극악이네요. 여기에 맞춰서 룬시스템도 최대 4성->5성룬으로 늘어났죠. 5성룬 맞춰서 돌려라 라는 의도였던 것 같습니다. 그래서 어중간한 3~4성룬으로는 6성5강 케릭 3개여도 자동사냥 돌리기가 힘들죠. 그래도 열심히 손컨하면 다 클리어할 수 있습니다.

설원은 보스 스테이지를 제외한 스테이지는 라일라만 있으면 전부 다 클리어는 할 수 있습니다만(라일라 만능설...), 보스스테이지는 조금 어려운 편입니다. 보통 보스랑 싸울 때에는 3힐러로 많이 씁니다. 3힐러가 편한 이유는 잘 안죽어요-_- 게다가 맞으면 기력이 차기 때문에 셋이서 그냥 번갈아가면서 바꾸면 힐링도 되고 그래서 보스 잡을 때 시간이 오래 걸려도 쉽게 클리어할 수 있습니다. 저는 라일라, 링, 헬레나로 했습니다.

설원1보스는 메리다인데, 처음에 할 때 마법 쏘면 피가 미친듯이 달아서 그냥 멘붕이 왔는데, 몇 번 부활하니까 클리어가 되었네요. 설원2지역 보스는 이상한 하얀곰탱이인데, 기절 때문에 짱났던 것 같은데, 사실 여기 기절은 여기에 맛배기에 불과-_- 얘도 뭐 몇 번 부활하면 깸-_- 설원3도 누타우였나...이속감 계속 거는데, 헬레나가 알아서 잘 풀어줌. 얘도 몇 번 부활해서 깼...

마지막 설원4지역 보스는 정말 잼을 겁나 썼는데도 답이 없었습니다. 얘가 4연속 돌진을 하면 피할 수도 없고, 한 번 맞자마자 기절이 됩니다. 그래서 한 번 맞으면 죽습니다...뭐 이런 스테이지가 다 있어 하면서 돌진 안맞으려고 피하면서 생쑈를 했는데, 안되길래 공략을 보니까... 이 녀석 잘 몰면 왼쪽 상단으로 잘 몰면 튀어나온 부분이 있는데 거기에 끼워버리면 거기 끼인 곳에서만 계속 돌진합니다. 그때 졸라 패면 됩니다-_-

설원에서 자동사냥이 가장 쉬운 스테이지가 확인해보니 1-3인 것 같습니다. 이순신-라일라-쫄 팟으로 서포터즈는 알리, 제갈량, 헬레나, 링, 메리다로 쓰니 열에 아홉은 성공하는 것 같습니다. 가끔 미친 몹들이 크리터지고, 방어감소, 공속감소 막 걸리면 교체 잘못되어서 죽기도 합니다만 대부분 성공합니다. 룬만 좀 더 갖추면 100%성공할 듯.



4. 결투장

상대방 유저랑 3:3으로 PvP를 하는 것인데, 실시간은 아닙니다. 이런 류 게임에서 꼭 있는 팀대전입니다. 근데, 영웅에서는 좀 특이한 시스템이 있는 게 보통 팀대전을 하게 되면 컨트롤을 할 수 없는데, 얘는 결장에서 컨트롤을 할 수 있습니다. 근데 귀찮아서 컨트롤 안합니다-_- 

그리고, 결투 시작을 선택하면 상대방이 어떤 덱인지 나오는데, 여기서 골드1000만 들이면 다른 유저를 찾을 수 있습니다. 그래서 가끔 쫄들 키우려는 덱이 걸리는데, 그럴 때 때려잡으면 상위랭킹에 들 수 있습니다.

승리메시지를 설정할 수 있는데, 제가 만약 지면 상대방이 설정한 승리메시지를 볼 수 있습니다. 이게 은근히 기분나쁜게...대부분 좋지 않은 멘트들이...뭐 좁빱, 현질 더하고 와라, ㅋㅋㅋ 등이 많아요. 이런 기능을 왜 넣은건지 모르겠...

열심히 결장을 하게 되면 일요일 밤12시까지 랭킹을 매겨서 수늬권이면 루비를 보상으로 주니 매주 꼭 해주는 것이 좋습니다.


5. 왕좌의 탑

몬스터 길들이기에서 무한대전 같은 것입니다. 근데, 총 50스테이지까지 정해져있으며, 이걸 얼마나 빨리 클리어하냐가 랭킹에 영향을 미칩니다. 

그리고 클리어 때마다 룬을 주는데, 이 룬은 왕좌의룬으로 케릭터 당 1개밖에 장착할 수 없습니다. 룬이 능력이가 두개가 섞여서 있습니다. 공격력, 마방 이렇게 둘 다 있어서 꽤 좋은 룬을 많이 줍니다만, 1개밖에 장착할 수 없어요. 이것도 2개 장착할 수 있는 BM요소가 나올 것 같지만 모르겠네요-_-

카페에서 왕좌의 탑 동영상을 보면서 열심히 연습해봤는데, 그래도 전 8분대밖에 안나오네요ㅠ 빠른 사람들은 대부분 6분대더군요. 제가 한 것 보세요. 겁나 삽질하면서 하지만... 그래도 이게 1퍼대정도 입니다ㅠ 이것도 마찬가지로 일요일 밤12시까지 열심히 하면 랭커들에게 순위별로 젬을 줘요.


6. 시련의 탑

시련의 탑은 총 70층까지 있으며 한층한층 클리어 시 마다 보상을 줍니다. 그래서 클리어할 수 있는 만큼 계속 클리어 해야 합니다. 게다가 한 번 클리어한 층은 반복적으로 다시 클리어할 수 있는데, 다시 클리어할 때에는 명예점수와 골드를 줍니다. 그래서 이것도 꾸준히 해주는 것이 좋습니다. 보통 자동사냥이 되는 쉬운 구역은 50층정도인 것 같습니다. 상위층이랑 보상이 별로 차이가 안나서 50층만 돌려도 될듯염.

시련의 탑도 마찬가지로 만능 케릭터 라일라만 있으면 대부분 클리어가 가능합니다만, 헬레나도 같이 있어야 하는 스테이지도 있습니다. 한 50~60층 사이에서 JD가 나오는데, 이놈이 이동속도 감소를 자꾸 겁니다. 그러면 느리게 걷다가 JD한테 쳐 맞고 데집니다. 그렇기 때문에 라일라로 단검던지다가 이동속도감소 걸리면 헬레나로 바꾼 뒤(헬레나는 태그 시 상태이상 회복함) 회복하고 다시 라일라도 단검 던지면 60층까지 충분히 클리어 가능합니다. 60층 보상은 무려 6성케릭터 랜덤 증정! 꼭 클리어 하세요!(물론 저는 마르쿠스가 나왔습니다......후......)

최근 70층까지 업데이트가 되었는데요. 보상들이 4성룬선택권과 4성영웅선택권을 줍니다. 물론 70층을 클리어해야 4성 케릭터 선택권을 줍니다. 
61~70층 애들은 힐링 위주에 애들이 나옵니다. 그래서 라일라 얍쌉이가 안통합니다. 라일라는 시간만 있으면 클리어 했었는데, 힐러들 때문에 시간이 지나면 피가 다시 차서 깰려면 극딜러로 조낸 때려야 합니다.

아마 고비는 65층의 실버랑 70층 황충 라그나일듯요. 저도 아직 70층은 못깼는데, 65층 실버는 그냥 서포터즈 극딜러 모아놓고, 친구 서포터즈 모아놓고, 한 번에 서포터즈 다 같이 꺼내서 조지면 돼요. 만약 죽으면 그냥 부활하세요. 그러면 서포터즈 리젠되거든요. 그때 다시 한 번에 같이 모아서 때리면 죽을겁니다.

70층 깨려고 하는데, 4성선택권이라 나중 업데이트 추이를 보고 깰 생각이에요ㅠ


5. 피쿤동산

몬길에 강화란이 있다면 영웅에는 피쿤(돼지)이 있습니다. 케릭터 강화할 때 더욱 많은 포인트를 추가할 수 있게 해줍니다. 피쿤동산은 난이도 3가지가 있는데, 6성 두개쯤 있으면 상급해도 됩니다. 쉽습니다. 하루에 1번밖에 클리어할 수 없다는 게 아쉽네요.

클리어를 하면 보상으로 돼지 3~6성을 주는데, 매일매일 3성만 줍니다. 4성 확율을 좀 증가해줬으면...-_-


ETC. 앞으로 업데이트

앞으로 초월 시스템이 업데이트 예정이라네요. 초월은 같은 케릭터를 합성해서 최대레벨을 증가하는 시스템인데요. 이게 나오면 앞으로 설원 자사 되는 지역이 더욱 늘어날 것 같아요.

랜덤진화시스템도 업데이트 예정인데, 몬스터길들이기는 진화 시스템이 없고, 합성이 있는데, 합성은 같은 등급케릭터5강 2개로 합치면 다음 등급 랜덤 케릭터가 나오는 시스템이에요. 그런데 영웅은 무조건 그 케릭터로만 진화를 해서 새로운 케릭터는 영웅뽑기나 모험에서 얻을 수 밖에 없죠.
그래서 랜덤진화 시스템은 진화할 때 다음등급을 랜덤으로 나오게 하는 것이라고 하네요. 근데 이것이...무려 한 번 하는데 250젬!-_- 가격은 좀 조정했으면 좋겠네요. 태생5성을 뽑을 좋은 기회의 업데이트라고 보네요. 

영웅도 뭐 몬스터 길들이기류와 다르진 않은데요. 케릭터 수집, 결투장랭킹 경쟁, 왕좌의탑 랭킹 경쟁, 각종 모험 클리어 등의 재미요소는 매우 비슷합니다. 앞으로 이런 류의 게임이 얼마나 갈지 모르겠지만, 확실히 아직까진 혼자하는 게임의 느낌이 강합니다. 물론 혼자서 케릭터가 강해지는 것을 지켜보는 것도 꽤나 재미는 있지만요!

지금도 컨텐츠가 꽤나 많다고 생각합니다만, 레이드 시스템도 언넝 업데이트 되었으면 좋겠네요. 길드전도 넣어서 길드원들과 무엇을 할 수 있는 시스템도 언넝 업데이트 되었으면 좋겠네요!

 
Posted by 머드초보
,
 

회사에서 처음 알게된 Mroonga인데요. 원래 InnoDB를 쓰면 Fulltext 검색을 사용할 수 없어요. MyISAM에서 밖에 안되죠. Mroonga는 InnoDB의 특징인 트랜잭션, 외래키락 등을 지원하고 Fulltext 검색까지 원하는 엔진이에요. 

마리아디비가 10.0.15로 업데이트되면서 Mroonga가 기본적으로 포함이 되어 있어요.


1. 마리아디비 최신버전 설치

https://downloads.mariadb.org/mariadb/repositories/#mirror=kaist

리눅스계열은 소스를 받아서 컴파일하는 것보다 위처럼 레포지토리를 추가해서 하라는대로 해서 설치하는 게 빠릅니다. 위처럼 설치하면 잘 설치가 될꺼에요. 저는 우분투라 아래와 같이 설치했습니다.

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://ftp.kaist.ac.kr/mariadb/repo/10.0/ubuntu trusty main'

키를 추가하고 레포지토리를 추가하면 최신버전의 mariadb를 설치할 수 있습니다.

sudo apt-get update
sudo apt-get install mariadb-server


2. Mroonga 플러그인 설치하기

원래 Mroonga도 소스받아서 컴파일하고 설치해야하는데, 최신버전인 10.0.15가 설치가 되어있다면 그냥 바로 아래 명령어로 플러그인이 설치가 됩니다.

deploy@jared-dev:/usr/bin$ mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 38
Server version: 10.0.15-MariaDB-1~trusty mariadb.org binary distribution

Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> INSTALL SONAME 'ha_mroonga';
Query OK, 0 rows affected (0.04 sec)

MariaDB [(none)]> show engines;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                                         | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                                      | NO           | NO   | NO         |
| MRG_MyISAM         | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |
| Mroonga            | YES     | CJK-ready fulltext search, column store                                    | NO           | NO   | NO         |
| FEDERATED          | YES     | FederatedX pluggable storage engine                                        | YES          | NO   | YES        |
| InnoDB             | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| Aria               | YES     | Crash-safe tables with MyISAM heritage                                     | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                                     | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
11 rows in set (0.01 sec)

MariaDB [(none)]> 


3. Mroonga로 테이블 생성, InnoDB로 테이블 생성 후 비교.

Mroonga로 만드려면 아래와 같이 Engine은 Mroonga로 쓰고, fulltext key를 추가하고, fulltext key에 코멘트로 검색 옵션을 지정하면 돼요. 그리고 Engine에 코멘트를 달 수가 있는데, 이것은 InnoDB에 Wrapper Mode로 사용하겠다는 것이에요. 기본적으로 Mroonga를 생성하면 Storage Mode가 되는데, 이걸로 만들면 Transaction을 사용할 수 없어요.

CREATE TABLE `random_hangul` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `hangul` text NOT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `hangul` (`hangul`) COMMENT 'parser "TokenBigramIgnoreBlankSplitSymbolAlphaDigit"' ) ENGINE=Mroonga DEFAULT CHARSET=utf8 COMMENT='engine "InnoDB"'

아래는 그냥 InnoDB

CREATE TABLE `random_hangul2` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `hangul` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

데이터를 아래와 같이 허접한 php스크립트로 넣고-_- 넣다보니 120만개 넣었는데, 지금부터 막 느려지더라구요ㅠ 구린 컴이라ㅠ

<?php

$servername = "localhost";
$username = "root";
$password = "1234";
$db = "mudchobo";

$words = ['가', '나', '다', '라', '마', '바', '사', '아', '자', '차', '카', '타', '파', '하'];

// Create connection
$conn = mysqli_connect($servername, $username, $password, $db);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
$conn->query("set names utf8");
for ($i = 0; $i < 1000000; $i++) {
    $randomWords = '';
    for ($j = 0; $j < 100; $j++) {
        $randomWords .= $words[mt_rand(0, count($words) - 1)];
    }
    echo 'randomWords = ' . $randomWords . PHP_EOL;

    $conn->query("insert into random_hangul(hangul) values ('$randomWords')");
}

$conn->close();


그리고 검색하면....뭐 거의 비슷한데....이상하네... 암튼 그래도 조금 더 빠르네요. 아 잘모르겠네요... 동시접속하면 더 빠르려나요 ㄷㄷ

MariaDB [mudchobo]> select count(*) from random_hangul;
+----------+
| count(*) |
+----------+
|  1298192 |
+----------+
1 row in set (0.00 sec)

MariaDB [mudchobo]> select * from random_hangul where match(hangul) against('가나다' in boolean mode);
...
45681 rows in set (1.69 sec)

MariaDB [mudchobo]> select count(*) from random_hangul2;
+----------+
| count(*) |
+----------+
|  1297523 |
+----------+
1 row in set (0.00 sec)

MariaDB [mudchobo]> select * from random_hangul2 where hangul like '%가나다%';
...
45904 rows in set (3.53 sec)

암튼 Fulltext에 옵션이 있는데, 공백과 검색, or and검색 등 다양한 옵션을 제공하니 참고요.
http://mroonga.org/docs/tutorial/wrapper.html#how-to-use-wrapper-mode

확실히 간단하게 사용할 검색이라면 쓰기에 좋을 것 같습니다.

 
Posted by 머드초보
,
 

회사에 CI서버 셋팅할라고 삽질하는데 Ruby가 컴파일 하는데 겁나 에러나서 기록용-_-

yum install ruby로 설치되는 루비 버전이 2.1이여서 2.2.0을 설치하기 위해서 rbenv를 설치하려고 했는데, rbenv는 사실 그냥 스크립트라서 git으로 받으면 되는것인데, rbenv가 문제가 아니라 2.2.0이 컴파일이 잘 안되었어요.그래서 열심히 로그를 살펴본 결과 의존성패키지를 덜 설치해서 그렇더라구요.

아래사이트는 6.5에서 하는 방법인데, 여기에서 몇 개 더 설치를 해줘야 해요.

http://mmclub.github.io/blog/2014/03/30/install-ruby-on-rails-on-centos/


1. 필요 패키지 설치

sudo yum update
sudo yum install git
sudo yum groupinstall -y 'development tools'
sudo yum install -y gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel  sqlite-devel
sudo yum install glibc-devel libffi-devel

맨 아래줄에 있는 거 설치안하면 컴파일할 때 에러나더라구요. 


2. rbenv 설치

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv

다른 계정에서도 실행할 수 있게 하려면 보통 /usr/local/rbenv 위치에 설치하기도 합니다. 


3. ruby-build 설치

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

rbenv에 설치한 경로 안에 plugins/ruby-build 디렉토리에 설치합니다.


4. 환경변수 설정

글로벌 하게 쓰려면 /etc/profile.d/rbenv.sh로 파일을 생성해서 전체 유저에 영향받게 하고, 해당 유저만 사용하려면 그냥 .bashrc에 넣어도 됩니다.

일반적으로 RBENV_ROOT가 ~/.rbenv로 되어 있습니다. 이걸 바꾸고 싶으면 RBENV_ROOT환경변수를 정의하면 됩니다. 

rbenv를 /usr/local/rbenv에 설치한 경우 /etc/profile.d/rbenv.sh 추가

export RBENV_ROOT="/usr/local/rbenv"
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"

그냥 .rbenv에 설치한 경우에는 rbenv path만 잡아주면 됩니다. (~/.bashrc)

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"


5. 루비를 설치

rbenv install 2.2.0
rbenv rehash
rbenv global 2.2.0
ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]


6. 레일즈도 해볼까...

gem install rails


오 잘된다!

 
Posted by 머드초보
,
 

스마트폰을 아이폰6플러스로 바꿨습니다. 그 동안 할부원금(?) 아이폰보다 싼 안드로이드폰을 계속 써왔는데요.

처음에 멋도 모르고 난 구글이 좋으니까 한국 최초 출시된 안드로이드폰인 모토로이 쓰다가 SKT안드로이드 공모전에서 앱을 내고 받은 갤럭시S! 그러다가 갤럭시S3 대란이 뽐뿌발로 펼쳐지면서 탑승! 그 뒤에 G2가 미친듯한 가격하락으로 급뽐뿌가 와서 구매! 

골드 + 에어자켓(클리어메이트)입니다! 겁나 이뻐!


이러다보니 가격 방어 잘 되는 아이폰 계열을 쓸 기회가 없었네요. 그러다가 회사에서 아이폰6플러스를 줘서 갈아타게 되었습니다(사...사....아니 감사합니다 회사님ㅠ). 

확실히 안드로이드를 쓰다가 아이폰을 쓰니 장점도 있고, 단점도 있네요. 외관이야 뭐 많이 봤을테니 제가 주로 사용하는 기능 위주로 리뷰를...(뭐 주로 하는 게 게임이지만ㅠ)

가장 기본적인 음악과 동영상 기능부터...

1. 음악 넣기

안드로이드폰은 그냥 컴퓨터랑 연결해서 mp3파일을 복사하고 음악플레이어를 실행하면 자동으로 파일을 스캔해서 리스트에 떠서 바로 재생할 수 있는 구조입니다. 그래서 보통 음악 폴더를 통째로 올리고, 음악폴더별로 재생이 가능하고, 재생목록도 만들 수 있어서 듣고 싶은 음악 리스트를 넣을 수 있습니다.

아이폰에서는 mp3를 폴더로 복사하는 기능이 없고(뭐 다른 방법이 있겠지만 보편적으로 itunes로 해야하는 것 같더라구요), 아이튠즈에서 음악을 드래그로 추가해서 재생목록을 만든 뒤 동기화를 시키면 바로 아이폰에서 동일한 재생목록으로 그대로 들을 수 있습니다. 맥과 아이폰끼리 서로 완벽히 동기화가 된다는 장점이 있습니다. 맥에서 재생목록만 잘 관리하면 매우 편합니다.

아..걸스데이 노래 겁나 좋네요. 몇 년을 들어도 안질려요.

그리고 아이폰 전용 이어폰이 꽤 맘에 드네요. 귀에 쏙 맞고 음질도 꽤 괜찮아요(이어팟이라는 이름이 있네요). 그리고 다른 것보다 맘에 드는 것은 맥북에 연결하면 맥북 볼륨 조절도 된다는 것입니다!! 회사 맥북에 모니터 연결해서 쓰고 있는데, 볼륨 조절 하려면 맥북에 있는 fn+F10~F12로 조절해야 해서(윈도우 세대로 fn키를 켜놨...) 귀찮았는데, 바로 누르니 볼륨 조절이 됩니다.


2. 동영상 넣기

안드로이드는 음악처럼 동영상 파일 그대로 안드로이드폰에 복사해버리면 플레이어가 알아서 인식해서 재생할 수 있습니다. 음악이랑 똑같죠. 그리고, 보편적인 코덱은 대부분 지원해서 복사만하면 재생못하는 영상은 거의 없습니다. 그래서 꽤나 편했죠.

근데, 아이폰은 비디오 재생을 하려면 기본 내장된 비디오앱에서 iTunes에서 구매를 하거나 인코딩해서 동영상을 동기화하는 방법이 있습니다. 

다른 방법으로는 써드파티 동영상앱을 설치하고, 아이튠즈를 통해 파일공유라는 기능을 이용해서 무인코딩 동영상을 넣어서 재생할 수 있습니다. 대부분 써드파티 동영상앱으로 하는 방법을 선호하죠. 아래 사이트에 잘 나와 있네요.

http://azdesigntm.com/700


우사미짱. 잘 나오네요. kmp플레이어에요.

동영상도 위와 같은 방법으로 넣으면 쉽게 넣을 순 있어요. 근데, 코덱이 재생할 수 있는 앱이 있고, 재생할 수 없는 앱들이 있어요. 동영상 앱 선택할 때 신중히 선택하셔서 구매하세요.


3. 가로로 전환?

이건 쓰면서 느낀건데 제 폰이 맛이 간건지 원래 그런건지는 정확하게는 잘 모르겠어요. 안드로이드 같은 경우는 폰을 애초부터 가로 거꾸로 잡고 있고, 거꾸로 잡고 있으면 앱이 실행될 때 자동으로 거꾸로 된 위치가 바뀌는데, 아이폰은 안그렇더라구요. 애초에 거꾸로 잡고 가로앱을 실행하면, 계속 거꾸로 되는데, 다시 폰을 돌렸다가 다시 거꾸로 돌리면 그때 화면이 바뀌더라구요. 뭐 별거 아니지만 그냥 그렇다구요... 써놓고 보니 뭔말이지....무...무시하세요...


4. 스팸전화 필터 앱

안드로이드폰은 전화올 때 이벤트 같은 것을 써드파티앱이 받을 수 있습니다. 그래서 후후, 후스콜 처럼 전화가 오면 그 전화번호를 자신의 스팸데이터에서 검색을 해서 이게 스팸전화인지 아닌지를 알 수 있는 앱들이 있죠.

아이폰에서는 이런 필터앱 구현을 할 수 없습니다. 그래서 "뭐야 이번호"라는 앱이 있는데, 아이폰에서는 연락처에는 접근할 수 있어서 그 연락처에 모든 스팸번호를 등록해서 그 스팸번호로 전화가 오면 뭐야이번호로 저장된 번호로 전화가 옵니다. 

최신정보를 앱을 실행해서 받아줘야하는 단점이 있습니다ㅠ


스팸전화 두 개 걸렀네요.

위와 같이 전화가 오면 뭐야이번호로 오기 때문에 안받으면 됩니다. 연락처에 다양한 전화번호가 저장될 수 있어서 가능한 것 같습니다. 만든 사람 머리 좋네요. 스팸전화를 어제 두 건이나 받았는데, 걸렀네요.

또 다른 방식의 스팸필터앱 중에 후스콜(안드로이드 처럼 실시간 앱이 아님)이라는 게 있는데, 이것은 모르는 번호에 전화가 오면 받지 않고 끊은 다음에 전화번호를 복사하면 그 번호로 인터넷을 통해 검색을 해서 위젯에 표시해주는 원리의 앱입니다.
전화번호에서 최근통화해서 i버튼을 누르면 전화번호가 나오는데, 그거 오래 누르고 있으면 복사하기가 되는데 복사하자마자 후스콜이 바로 검사를 해줍니다. 위에서 위젯을 보여주면 이게 스팸인지 아닌지 나와요......귀찮아 하는 사람들은 전화받고 스팸이면 끊는 게 더 낫겠어요.

텔레마케팅이라고 나오네요.


5. 움직이는 아이콘!

오 신기했던 게 바탕화면에 있는 아이콘에 오늘 날짜가 표기되고, 시계는 초침이 움직이면서 현재 시계가 아날로그로 표기되고 있어요! 근데, 이거 개발자가 앱으로 구현할 수는 없는거죠? 이런 종류의 앱을 본 적이 없어서... 암튼 신기한 아이콘이네요. 아 근데 생각해보니 안드로이드는 위젯이 있으니...별로 신기할 것도 없는데, 뭔가 더욱 깔끔해보여서 신기하게 느껴지는 것 같네요.


6. 웹브라우저 사파리(Safari)

저는 크롬이 좋아서 크롬을 깔았는데, 깔자마자 네이버들어가고 바로 지웠습니다. 속도가 안드로이드폰이나 기본 아이폰 사파리에 비해서 너무 느렸어요. 그래서 그냥 사파리를 쓰기로 했습니다. 

브라우저는 빠릿빠릿해서 좋네요. 더욱 좋은 점은 컨트롤인데, 처음에 안드로이드는 뒤로가기 할 때 그냥 뒤로가기 버튼 누르면 알아서 뒤로 가는데, 아이폰은 그 버튼이 없어서 뒤로가기 하려면 버튼을 눌러야 하는데, 버튼을 누르려면 스크롤을 다시 올려야 메뉴가 나오는데, 그때 좌측하단에 있는 버튼을 눌러야 뒤로 갈 수 있습니다. ㅣㄴ아러ㅣㅏㅁㄴㄹ얼ㅇ 아오 뒤로가기 겁나 힘드네 하고 있는데, 다른 사람들 쓰는 거 보니 왼쪽끝에서 오른쪽으로 드래그를 하니 뒤로 가집니다!

전체 열려 있는 탭이 간지나게 나오네요. 역시 UI는 애플이죠. 왼쪽으로 밀면 바로 닫을 수 있어요 짱이에요.


드래그로 뒤로가기를 쉽게 할 수 있어요!


7. 건강

오 이런 기능은 정말 처음이네요. 안드로이드에는 없어요ㅠ 자신이 얼마나 걸었는지 계단 오르내리기를 얼마나 했는지 그래프로 이쁘게 보여줍니다. 아...볼 때마다 운동해야지 하는데...회사가 코앞이라... 하루에 2km미만으로 걷고 있네요ㅠ

이제 계단으로 출퇴근해야겠다...3계단이라니...


8. 핫스팟 기능

핫스팟이 좀 맘에 안드는 게 이상하게 연결이 잘 안됩니다ㅠ 제가 안드로이드 게임밖에 없는 게임을 위해 폰을 안드로이드폰과 같이 들고 다니는데, 핫스팟기능을 켜면 한 번에 연결이 안될 때가 많습니다(설마 이것도 내 폰만 문제인건가ㅠ). 몇 번 다시 껐다켜면 연결이 되더라구요. 

좋은 점이 폰이 연결이 되면 몇 개 연결이 되었는지 상단에 나와요. 그래서 어떤 놈이 내꺼 몰래 쓰고 있는지 나오죠. 그리고, 안드로이드는 테더링이라고 표시하는데, 타임아웃 시간을 지정할 수 있습니다. 무제한까지 가능한데, 아이폰은 타임아웃 시간을 지정하는 것이 없고, 그냥 한 5분동안 인터넷을 하지 않으면 끊어지는 느낌입니다ㅠ 끊어지면 또 바로 연결이 안되고, 핫스팟 기능을 다시 껐다 켜야 하더라구요.  

우오오! 저기 선택하면 설정화면으로 가요.


9. NFC기능이 없...

이거 좀 아쉽습니다. 원래 NFC가 아이폰에 들어는 있는데, 애플페이 만을 위한 기능이라고 하네요. 예전에 안드로이드폰에는 NFC가 있어서 체크카드가 없을 때 NFC를 이용해서 ATM에서 돈을 뺄 수 있는데, 그걸 할 수 없어요ㅠ 교통카드 기능도 되는데ㅠ 애플이 하루 빨리 풀어줘야 한다고 생각합니다.


10. 지문인식 기능

지문인식 기능 겁나 신세계입니다. 화면 잠금 풀 때 자연스럽게 가운데 버튼을 누르면 잠금이 풀립니다. 이렇게 지문인식이 신기하게 잘 되는 거 처음보네요. 예전에 제 노트북이 소니지문인식노트북이였는데, 살 때 처음 테스트해보고 봉인했었는데, 이건 인식율이 너무 좋으니 이걸 활용한 앱들이 나오면 좋을 것 같습니다(아..근데 이것도 사용자가 구현할 수 있나 모르겠네요). 

그리고, 앱스토어에서 앱을 구매 및 다운로드할 때에도 비밀번호 겁나 쳐야하는데, 지문인식만으로 앱을 구매 및 다운로드할 수 있어요. 근데 안드로이드에서는 사실 무료앱 다운로드할 때에는 비밀번호 안물어보죠. 유료앱살 때 결제할 때에만 비밀번호를 물어보죠. 앱스토어도 무료앱살 때에는 비번 안치게 좀......


11. 게임

게임은 안드로이드폰보다 훨씬 부드럽게 잘 돌아가네요. 요즘 즐겨하는 게임 중 영웅이 있는데요. 확실히 G2에서 하던 것보단 렉도 없이 잘 돌아갑니다. G2에서 할 때에는 몹이 미친듯이 많아지면 렉이 걸려서 죽기 일쑤여서 해상도 조절을 최하로 맞춰놓고 했는데요(그래서 렉걸리고...ㅠㅠ). 아이폰에서는 그런 게 전혀 없어서 좋네요. 고해상도로 해놔도 매우 부드럽게 잘 돌아가요! 게임은 아이폰에서 하는 게 좋을 것 같아요.

단.... 아이폰 게임이.... 출시가.... 잘 .... 안됩...니다.... 카카오게임만 해도 주로 안드로이드만 출시하는 게임이 대부분이에요. 아이폰 유저가 좀 더 늘어나야 게임 개발사들이 아이폰에 더 눈을 돌릴텐데요ㅠ 우리나라 현실은 그렇지 않으니 안타깝네요.


결론

이제 쓴 지 한달이 다되어가는데요. 장점도 있고 단점도 있는 것 같습니다. 일부 안타까운 단점은 뭐 그닥 불편한 점은 아니고, 게임을 주로(?)하기 때문에 매우 만족스럽습니다. 지금 하고 있는 영웅이 매우 잘 돌아가서 기쁘네요ㅠ 그리고 맘에 드는 점은 부드러운 UI전환과 애니메이션입니다. 아주 깔끔해요. 이래서 다들 아이폰아이폰 하나 봅니다. 

인기 있고 유명한 게임(이런 게임들은 대부분 아이폰도 같이 냄!)만 하실 분들은 아이폰 강추합니다. 게임이 잘 돌아갑니다! 최고의 게임기 입니다!

 
Posted by 머드초보
,
 

기존에 syntax highlighter라는 플러그인은 js를 업로드하거나 script로 include해서 <code></code>태그를 찾아서 css를 입히는 형태가 있습니다. 근데 티스토리에서 할라니까 html skin도 편집해야 하고 js, css파일도 업로드해야 합니다. 이거 말고도 https://highlightjs.org/라는 플러그인도 있지만, 이것도 위와 같은 동일한 형태입니다.

결정적으로 글을 쓸 때 html형태는 Syntax Highlight를 하기 힘들더라구요. 그래서 찾다보니 그냥 소스코드를 붙여넣으면 바로 css까지 입힌 형태의 소스코드를 생성합니다. 그래서 티스토리에서 글을 쓸 때 그냥 <p></p>사이에 코드를 그대로 넣으면 매우 잘 나옵니다.

사이트 주소

http://hilite.me/

아래와 같이 그냥 소스코드 대추 붙여놓으면 이쁘게 html로 바꿔서 오른쪽에 표시해줍니다.


아래는 html태그를 붙인 예제입니다.

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div>
    테스트입니다.
</div>
</body>
</html>


php도 붙여보니 잘되네요.

<?php
$osInfo = strtoupper(substr(PHP_OS, 0, 3));

if (count($argv) <= 4)
{
    echo 'argv enter. area stage isChallenge device deviceip ex) 5 3 1 genymotion (101)' . PHP_EOL;
    exit;
}
$area = $argv[1];
$stage = $argv[2];
$isChallenge = ($argv[3] == '1') ? true : false;
$device = $argv[4];
$data = json_decode(file_get_contents("$device.json"), true);
if ($data == null) {
    echo 'Error!' . PHP_EOL;
    exit;
}


프로그래밍 언어 관련 글 쓰시는 분들 잘 애용하세요. 보니까 소스코드도 공개되어 있더라구요. 혹시나 사이트가 나중에 죽어버려도 소스가 깃헙에 있으니 괜찮을 것 같아요.

 
Posted by 머드초보
,