게임/마인크래프트 앱 개발일기 10

<마크의 모든것> 1화

외주의 길내 사업이 없어지고나서 좋았던건 아래와 같은 것이었다.1) 경쟁과 사업에대한 걱정이 사라졌다.2) 그 앱에 대한 불확실성이 사라졌다. 하지만 막상 없어지고 몇 개월 지내보니 다른 쪽에서 단점이 생겨버렸다.1) 돈에 대한 걱정이 생겼다.2) 미래에 대한 불확실성이 생겼다. 이렇든 저렇든, 어쨌든 불확실하다면,움직이는 쪽이 좋다고 생각했다. 내 사업(앱)없이 외주의 길을 걸으면서 계속 을의 입장에만 있을 수 만은 없었다. 그래서 다시, 마크의 모든것짤린다면 아이폰 앱에라도 뛰어들 생각이다. 아니면 웹이라도!이게 한 달에 1만원이 벌리든 10만원이 벌리든 작은 돈이라도 들어온다면 성공하는 것이라 생각한다.유저 요구사항은 컨텐츠가 많아야 한다는 거고... 내 요구사항은 최대한 유지/보수를 덜 해도 시스..

Node.js와 git을 만나다

1월 중순 부터 지금까지 약 한 달간 Node.js 관련 업무를 하면서 Node.js와 git과 친해지게 되었다.나는 그동안 배운 지식을 활용해 마인크래프트 유튜브 영상 공유소인 '마인팟' 이라는 새로운 서비스를 내 놓았다.아직은 유튜브 공유소이지만 차차 기능을 더해서 마인크래프트 커뮤니티로 만들 예정이다. 유저는 마인크래프트 앱에서 일부 끌어오려 하고 있다.나중에 로그인과 커뮤니티 기능이 만들어지고 사용자 수 1000명 이상이 되면 따로 앱으로도 출시할 것이다. 그리고 기존 마인크래프트 앱에 있는 기능들을 node.js api 서버를 통해 좀더 빠르게 로드될 수 있도록 수정했다.지금은 4년간 가장 문제였던 아이템 정보 부분을 불러오는 api 를 만들고 있다. 인생의 사건 하나 하나가 점이되어 하나의 선..

마인크래프트 앱 개발기 9편, 자료구조를 배우다!

이번 학기, 나는 자료구조라는 수업을 듣고 있다.자료구조와 알고리즘 정도는 알고 있어야 프로그래머라고 생각했기 때문에 가장 신경쓰며 듣는 중이다.단순 성적 따기가 아닌, 수업 내용 하나 하나를 흡수하는데 집중하고 있다는 말이다.자료구조 책 초반에 Big O 계산법이 나오는데, 저번에 알고리즘 독학하며 그냥 넘겼던 부분이 알고리즘의 시간복잡도를 따지는 데 중요하단 것을 깨달았다.그리고 중첩 for 문이 상당히 효율이 떨어지는 방법이라는 것도 말이다. 말로만 들었지, 시간복잡도를 따지니 자료가 많아질 수록 중첩 for문의 성능은 기하급수적으로 떨어졌다. 마인크래프트 앱에서 가장 많이 사용하는 기능이 아이템 리스트 펼치긴데, 나는 그 기능을 중첩 for 문으로 구현 해 놓았다.수업을 듣고 여러 실습들을 하면서..

마인크래프트 앱 개발기 8편 <Markdown에 관하여>

새로운 기능, 패치 노트요즘 추가하고 있는 기능은 패치노트라고 하는 버전 히스토리를 보는 기능이다.마인크래프트 게임은 특이하게도 매번 업데이트를 할 때마다 유저들이 패치노트를 주의깊게 살펴보기에 필요성이 있겠다 싶어 넣었다. 저번에 앱에 추가한 서버 확인 기능은 잠시 안보이게 넣어두고이번 패치노트를 그 자리에 끼워 넣으려고 한다.서버 확인 기능을 접은 이유는 아래에 따로 적도록 하고, 패치노트 기능에 대해서 적어보겠다. 패치노트 기능은 저번에 블로그에서도 찬양했었던 FireBase를 이용해 구현했다.마인크래프트 패치는 자주되는 편이기 때문에 그때그때마다 실시간으로 업데이트 해주기 위해서 Firebase Storage에 마크다운으로 적은 패치노트를 업로드한 뒤 Firebase Realtime Databas..

마인크래프트 앱 개발기 7편 "앱 레이아웃 정리!"

안드로이드 앱 성능에 관한 강의를 듣고, 마인크래프트 조합 가이드 앱을 최적화 시키기 시작했다.프로그래밍적인 부분 보다는 디자인적인 부분만 일단 살펴보고 레이아웃 정리에 들어갔다.깔끔하게 짠건 최근에 만든 부분이었고 옛날에 만든건 LinearLayout > LinearLayout > RelativeLayout > LinearLayout 이딴식(?)으로마구마구 뷰가 엉켜있었다. 메인화면 부터 말이다...디자인 타협이 살짝 들어간 부분도 있으나 수정 전 뷰를 그리는 시간이 25ms 였다면 수정 후 15ms 정도로 줄여 뿌듯하다!레이아웃 드로잉에 걸리는 시간 측정은 Hierarchy Viewer를 통해 할 수 있다.

마인크래프트 앱 개발기 6편 <Method Performance 측정>

마인크래프트 앱에 새롭게 서버 추가 기능을 만들고 있다.그런데 AsyncTask에서 속도가 영 나오지 않는다. -_-한국에서 이정도라면 아마 인터넷이 열악한 해외에서는 더 오래걸릴게 뻔하다.그래서 나는 어떤 부분에서 시간을 많이 잡아먹는지 퍼포먼스 측정을 해보기로 했다. long startTime = System.nanoTime(); YourMethod(); long endTime = System.nanoTime(); long MethodeDuration = (endTime - startTime); YourMethod() 부분에 내 수행 코드를 적으면 코드의 퍼포먼스를 측정할 수 있다.

마인크래프트 가이드 앱 개발기 5편 "개명 후 제명"

개발에 차질이 생겼다.몇 일간 열심히 했던 판올림이 화를 불렀다.앱이 구글 플레이에서 짤린 것이다.구글 플레이 특성상 자세한 이유는 알지 못한다. (알려주지 않는다...관심이없다 쉐에끼들...) 그래도 내 앱을 찾는 많은 사람들, 팬들이 있기에 일단, 재기할 희망을 가져본다.새로운 이름 로, 옛날의 그 편의성 그대로!출시 해 본다. 얼른 유저들을 만나고 싶다!

마인크래프트 가이드 앱 개발기 4편 "개명"

오늘 작업도 리팩토링이다.그래서 개발관련해서는 뭐 적을 이야기가 따로 없기는하다.리팩토링을 하던 중 마켓에 올린 앱 버전을 구할 일이 있어마켓에 라고 검색 해서 내 앱을 다운받아보았다.순위를 보니 마인크래프트 초보자 보다는 마인크래프트에 익숙한 사람들이다운받을 법한 앱이 많았다. 그에 비해서 내 앱은 마인크래프트를 처음 시작하는 유저들이 다운받을 만한 앱이다.실제로 몇몇 리뷰는 자신의 마인크래프트 지식이 너무 풍부해서 별로 쓸데없다는 내용도 있다.처음엔 나도 단순 초보 가이드 앱으로 시작했지만 지금은 중/고수, 매니아까지 끌어들일 수 있는 컨텐츠들을 확보했다.그래서 앱 이름을 개명하기로 했다! 느낌상 거의 2년? 만에.앱 이름은 이다. 처음에는 으로 하려고 했으나키워드가 뭉쳐서 검색에 어려움이 있을까봐 ..

마인크래프트 가이드 앱 개발기 2편 "왠 Python?"

오랜만에 2편을 써본다. 아무도 안기다렸지만 ㅎㅎㅎㅎ '~'방학을 맞아서 유저들에게 약속했던 7월 대규모 업데이트를 하려 다시 안드로이드 스튜디오를 켰다.그동안 코딩스타일을 배워 한 층 더 업그레이드 된 눈으로 다시 코드를 보니 엉망이었다.앱 특성상 아이템을 추가할 일이 많은데, 아이템 추가하기가 번거롭고 힘들게 되어있었다.그래서! 더욱 편하게 아이템을 추가하기 위해 나에게 조금 더 나은 인터페이스를 제공하기로 했다. 리팩토링이전에는 아이템을 추가하려면 layout에서 아이템 아이콘을 추가하고, 개별 아이템마다 onclick="아이템이름"다는작업을 한 뒤에, 아이템 정보가 담겨있는 ItemDB를 모아놓은 ArrayList인 ItemDBList에도 정보를 업데이트 해야 했다.그러나 아이템이 300개가 넘다..

마인크래프트 가이드 앱 개발기 1편

마인크래프트 가이드 앱 개발기 1편 마인크래프트 가이드 앱 개발기 1편이다. 마인크래프트 가이드 앱이 뭔지 간략히 설명하고 역사와 지금 상태를 기록하겠다! 이 앱은 MOJANG 이라는 게임회사에서 개발한 마인크래프트라는 게임을 쉽게하기 위한 앱이다. 아니 얼마나 게임이 어려우면 쉽게하기 위한 앱이 있냐고...? 게임이 어렵지는 않지만 마인크래프트는 샌드박스형 게임(유저가 마음대로 다 할수있는)이기 때문에 외우거나 기억해둘 사항이 많다. 사진처럼 활을 하나 만들기 위해서 거미줄 3개워 막대기 3개를 저 위치 그대로 놓아야한다. 나도 마인크래프트를 하다가 매번 조합법을 검색하기 귀찮아서 만들기는 했다. 그리고 데이터를 모두 소스 안에 두면되어서 그다지 큰 기술이 필요하지 않았다. 버튼, 인텐트 정도만 알면 ..