호야도 핸델 김나지움으로..

지우에 이어 호야도 핸델 김나지움에 합격했다.

핸델 김나지움의 특징은 학교 이름에서도 알 수 있지만 음악에 특성화 된 학교이다. 모든 학생들이 오케스트라나 합창단 혹은 실용음악과 같은 음악활동을 의무적으로 해야 하고 때때로 이 음악활동이 학업보다 우선할 때도 있다. 그렇다고 학업 성적이 뒤쳐지는건 아니다. 늘 베를린 아비투어 성적에서 최상위권에 들어있는 학교 중 하나이다.

그럼 학교에서 ‘특별히’ 뭔가를 더 가르치느냐 하면 그것도 아니다. 학교 분위기 자체가 그냥 그런 분위기 일 수 밖에 없는게 어려서부터 이런 저런 악기를 시키는/좋아하는 집에서 자란 학생들이 모였으니 그 분위기가 다른것 같다. 아이들 교육에 극성인 가정도 많지만 여유있게 삶을 즐기고자 하는 가정도 많다. 여느 10대 아이들 처럼 일탈도 하고 방황도 하지만 그 정도가 심하지 않는것 같다.

나와 정은이한테 중요한 것은 바로 이 부분이다. 음악도, 공부도 중요하지만 아이들이 세상의 전부 혹은 대부분으로 느끼는 가정과 학교가 어떻게 보이는지에 따라 자신의 기준을 결정할 수 있기 때문이다. 이곳에서도 같이 시작했지만 1-2년이 지나 굉장히 다른 방향으로 가는 친구들이 보인다. 처음의 그 작은 차이는 아마도 가족과의 관계나 관심의 차이에서 시작되었을 것이다.

지우는 이 학교에서 더 얻을게 있을까 싶을 정도로 열심히 그리고 잘 하고 있다. 호야 또한 그렇게 되리라 믿어 의심치 않는다. 엄마아빠한테 먹이만 받아먹던 아기새에서 이제 자신이 날 수 있을지 시험해 보는 작은새로 성장한 호야. 무엇이든 다 경험해 보고 즐기고 도전하고 또 실패해 보는 시간을 가졌으면 좋겠다.

[GameShell] 설계

지난 개발일지 이후 가족들의 코로나 감염, 그리고 간만의 몸살(코로나는 걸리지도 않고..), 그 직후 10여일간의 부활절 가족 여행, 부모님 방문까지 연이은 이벤트로 모든 개인프로젝트가 중단되었었다.

nocnoc 서비스 아이디어를 조금 더 구체적으로 정리하는 동안 유니티로 게임 프레임워크를 만들기로 했다. 사실 지금 하는 프로젝트의 프레임워크를 조금 더 모듈화 되고 범용적으로 만드는게 목표인데, 연초에 이미 2주정도 시간을 들여 정리한 바 있다. 그 프로젝트를 이어서 진행할까 생각했는데 당시 UI 와 테스트 모듈까지 다루려던 욕심에 코드가 명확히 분리 되지 못했던 기존의 문제를 그대로 가지고 있었기에 다시 처음부터 만들기로 했다.

먼저 모든것을 잊고 모바일 게임의 기본 로직을 구성하는 프레임워크와 지원 라이브러리를 구성하는 것을 목표로 했다. 범용성 있게 설계하지만 너무 이 주제에 집착해서 개발 속도가 느려지는 일이 없도록 주의했다. 기본 구성은 현재 진행하는 프로젝트와 마찬가지로 JSON 기반의 자료 정적/동적 자료 저장과 로컬 액션 기반의 사용자 액션 히스토리 구성을 통해 클라이언트에서의 독립성과 서버 검증을 함께 처리하려고 한다.

사용되는 SDK들은 동적으로 이용할 수 있도록 인터페이스를 설계하고 최대한 실 사용자가 자동화된 방식으로 사용할 수 있도록 했다. 결과적으로 사용자는 자신이 사용하고자 하는 자료구조와 로컬 액션을 처리하는 클라이언트/백엔드 페어 로직을 작성하면 나머지 부분은 프레임워크가 알아서 처리해 주는 식이다.

이번 프로젝트에서 가장 의미없이 많은 시간을 투자해야 했던 백엔드 부분의 버그처리나 테스트가 모듈화 되어 이루어질 수 있는 기반이 만들어 지는 것이다. 클라이언트에서도 훨씬 간결해진 프로세스를 통해 실제 유저가 Crash 나 ANR을 경험할 경우 쉽게 재현이나 문제가 되는 포인트를 리포트하고 디버깅 할 수 있을 것이다.

1차적으로 구현할 기능은 다음과 같다. 샘플 사용 백엔드는 Firebase 로..

  • Authentication
  • Local action process
  • Dynamic data
  • Static data
  • Local data
  • Shortened key
  • External asset

1차 기능 구현이 완료되면 기본 UI Framework 을 만들어 볼 생각이다. 이 역시 코드와 UI 가 분리되고 모듈로 동작할 수 있도록 구현 예정.

그 외 기본 구현 예정 기능들

  • Force update
  • Force kick-out
  • Dynamic data sync
  • Push notification
  • IAP
  • Subscription
  • Reward Video
  • Google/Apple/Facebook login
  • Switch account
  • Sound/Haptic control
  • Localisation

이미 구현해 본 기능들이고 개선 방향을 알고 있으므로 구현에 문제는 없어보이지만 어떤 방식으로 모듈화 할 지가 고민이다. 물론 고민에 시간이 너무 걸린다면 일단 구현해 놓고 볼 문제… 1차 구현 목표는 이번 주말 전 까지.

[nocnoc] Edit post

간단한 포스트 수정 기능 추가.

39도까지 열이나서 병가를 냈다. 이 회사로 옮겨 2년만의 첫 병가… 독일 회사에서 기본 10일은 병가로 쓰는데 나는 뭐 이리 열심히 일하는지 모르겠네. 아스피린 먹고 파라세타몰 먹고 땀 뺀다음 열이 좀 내려서 얼른 기능 추가.

이 다음은 무엇을 해야 할까?

  • 화면 전환 효과
  • 카테고리(룸) 만들기
  • 이미지 에디터
  • 사진 선택
  • 잠금
  • 백업
  • 공유
  • 사용자 기본 관리 메뉴

[nocnoc] 썸네일

원본 사진으로 그리드 뷰에서 너무 느리기 때문에 포스트 저장 시 썸네일 생성. 원본사진 보기에서도 쓸 때없이 큰 사진을 볼 이유가 없으므로 상세보기용 중간크기 리사이즈 이미지도 생성. 그럼 원본 파일은 언제 사용? 그냥 백업용으로 일단 저장.

추후 이미지 에디터가 들어가면 이것들을 어떻게 처리할 지 고민해 보도록 하자. 썸네일 만드는데 의외로 시간이 걸려서 오버레이 로딩 스피너도 집어 넣음.

오늘 몸 컨디션이 최악인데… 그래도 무조건 1일 1기능 추가..아무리 작은 기능이라도 꼭 추가하는 것을 목표로 한다..

[nocnoc] delete post

delete post

image 파일도 함께 지워야 한다.

TODO

  • 처음 포스팅 할 때 이미지는 임시저장소에 저장 후 포스트 저장 시 최종 저장소로 이동해야 함.
  • 삭제 확인 팝업
  • 다음 작업은 수정. 이미지 수정이나 교체 없이 텍스트만

[nocnoc] 이미지 저장

오늘은 여러 일이 많아 간단하게 imagePicker 에서 불러온 이미지 localStorage 에 저장만…

썸네일 만들고 이런것 보다 상세보기/수정/삭제 부터 만들어야 겠다.

[nocnoc] 기본 포스팅 저장/불러오기

출장 전 1주일 업무처리와 출장 1주일 때문에 2 주간 공백이 있었다. 빨리 배우는 대신 빨리 잊기 때문에 2주는 참 긴 공백… 다행히 가장 복잡한 부분의 구조를 계속 머릿속에서 생각하며 개선할 수 있는 시간이 있었다.

오늘은 실제 포스팅 저장 시 클래스 -> Json -> File system 으로 저장 한 후, 다시 불러오는 서비스 매니저를 작성했다. 실제 UI 컨트롤러에서는 저장/불러오기만 신경쓰고 인터페이스가 완성 되었으니 나중에 암호화를 하든 로컬 DB에 넣든 클라우드에 보내든 하면 된다.

유니티에 비해 Json 입출력이 조금 번거로웠지만 일단 JsonSerializer 로 사용. Json은 파일로 일단 저장했는데 realm local db에 통으로 넣는것도 좋을것 같다. 완벽을 생각하면 완성을 할 수 없으니 대략 큰 틀만 붙여나가는 형식으로 완성했다.

주로 프로그램 설계를 A4 에 낙서 하듯이 하거나 머릿속에 담아두는데 딜레이가 생기면 바로 잊혀지는 관계로 요즘은 원노트에 간단히 메모하거나 코드 속에 TODO로 할 일을 관리하고 있다. 실제 메타 정보 저장/불러오는 틀이 완성되었으니 앨범에서 가져온 이미지를 복사해서 로컬 저장소에 넣거나 공용저장소에 넣기, 압축, 썸네일 생성 등 이미지처리에 관한 기본 기능을 구현해야 한다.

[nocnoc] Flow 만들기 / DB 스키마

간단한 네비게이션 플로우를 만들었다.

서비스가 실행되기 위한 가장 기본적인 구조작업으로, CRUD 기능과 사진 파일 저장 및 리스트 보기, 네비게이션 구조 Route 설정 등에 대한 자료를 공부하고 고민해 보았다. 서비스가 추구하는 방향이 closed, secured 방향이기 때문에 로컬 디비 기반으로 돌아가고 백업과 공유는 optional 로 처리되도록 구조를 잡아야 했다.

보안에 크게 상관없고 편의를 중요하시 하는 유저는 조금 쉬운 백업과 공유가 가능하도록 하고 프론트에서는 두 구조를 구분하지 않고 보여주도록…

실제 구현은 간단한 하단 네비게이션 바에 사진 선택까지, 화면 간 파라매터나 리턴값 가져오는 구조와 해당 데이터를 Json으로 로컬에 입출력하는 부분까지 구현되었다.

다음 목표 실제 이미지 파일저장(압축/리사이즈 포함), 로컬 json 저장/불러오기 및 메모리 이슈없는 무한 그리드 뷰

[nocnoc] 도메인 및 기타 CD 설정 및 로고 디자인

오늘은 개발 보다는 여러 환경 설정과 계정 설정에 시간을 보냈다.

먼저 개발 기간동안 사용할 로고를 디자인 했다. 완벽을 추구하면 1년넘게 로고만 만들고 있을 가능성이 있으니 일단 무조건 완성하는 걸로…

고민의 흔적들..
최종

로고는 최대한 단순하고 서비스 명을 알릴 수 있도록 디자인했다. 아이콘으로서 가독성이 있도록 다른 패턴이나 아이콘은 넣지 않았다. 노크를 표현하려 했지만 너무 복잡해서 포기.

각종 서비스 계정을 설정, 페북은 나중에.

https://www.instagram.com/nocnoc.me/

https://twitter.com/nocnoc_me

도메인 이메일 연결. Yandex 로 하려다 전쟁 때문에 일단 임시로 다음 스마트워크에 연결해 두었다.

[email protected]

호스팅 설정은 파이어베이스 호스팅으로. 깃헙에 머지 시 자동 디플로이되도록 설정했다.

www.nocnoc.me / nocnoc.me

그 외 자잘한 파이어베이스 툴들 설정과 자동화 설정을 끝냈다.

이제 개발만 하면 끝?