2020년 4월 22일 수요일

안드로이드 기본 Layout 속성 의미정리



참고
https://www.tutorialspoint.com/android/android_ui_design.htm

android UI UX


UI에 대한 프로그램 추천

전반적인 black white UI 설명
https://material.io/design/color/dark-theme.html#properties

UI 움직임 페턴 설명 (app & user 상호작용)
https://material.io/design/material-studies/basil.html#motion

UI UX 모아놓은 사이트
https://monsterdesign.tistory.com/1630
화면찾기
https://medium.com/google-design/how-to-find-device-metrics-for-any-screen-62b9ad84d097
참고
https://www.mockplus.com/blog/post/android-ui-design-tool


액티비티 생명주기 (LifeCycle) : 네이버 블로그



한국어가 필요하다고 느끼시면 여기로 가시면 됩니닷
https://kairo96.gitbooks.io/android/content/ch2.4.1.html

Activity를 startActivity로 호출하는 경우 어디까지 호출될지 궁금하다 
STOP()까지 호출 될 것 같다.
그렇다 그렇게 호출된다. 

(호출되는 시점에 로그가 찍히도록 코드를 작성했음)

04-22 09:45:54.471 3627-3627/(패키지 이름)D/call onPause:  OK
04-22 09:45:55.267 3627-3627/(패키지 이름) D/call onStop:  OK

여기에서는 당연히 Destroy가 호출되지는 않는다. 
그렇다면 어떻게 해야 Destroy를 호출할까 ?

 StartActivity호출 후 finish()를 선언한다면 이런 Destroy 호출이 가능하다.

04-22 09:50:55.779 3885-3885/(패키지 이름) D/call Destroy: : OK


호출 메소드 설명을 간략하게 했다. 관심 있다면 읽어보자
사실 안드로이드를 만들고자 하는 독자들은 외우면 좋다. 나는 이해한답시고
자만하다 과제할 때 계속 들어가서 보곤 했다.

onCreate()
생성될 때 호출,사용자 인터페이스 초기화에 사용 

onRestart()
엑티비티가 멈추고서 다시 시작되기 전 호출

onStart()
엑티비티가 사용자에게 보여지기 바로 직전에 호출

onResume()
엑티비티가 사용자와 상호작용하기 바로 전 호출

onPause()
다른 엑티비티가 보여질 때 호출, 데이터 저장 ,스레드 중지 등의 처리를 하기 적당

onStop()
엑티비티가 사용자에게 보여지지 않을 때 호출 
메모리가 부족하다면 호출여부는 불투명

onDestroy()
엑티비티가 소멸될 때 호출됨 
ex) finish() 메소드가 호출, 메모리 확보를 위해 호출



참고
https://kairo96.gitbooks.io/android/content/ch2.4.1.html
https://limkydev.tistory.com/32
https://brunch.co.kr/@mystoryg/80

2020년 4월 21일 화요일

코로나 조지기

https://www.ibs.re.kr/cop/bbs/BBSMSTR_000000000971/selectBoardArticle.do?nttId=18178

http://scienceon.hani.co.kr/?document_srl=283903

http://nifds.go.kr/brd/m_480/view.do?seq=13509&srchFr=&srchTo=&srchWord=&srchTp=&itm_seq_1=0&itm_seq_2=0&multi_itm_seq=0&company_cd=&company_nm=&page=1

2020년 4월 19일 일요일

CGI란 무엇인가



1. 규약
2. 프로그램이나 SW (PERL)





참고
https://kldp.org/node/73386

웹서버 대체 무엇인가

웹 서버 

Cafe24를 이용한 프로젝트를 하면서도 사실 웹 서버에 대한 개념만 알고 있지 
뭔가 뜬 구름 잡는 것 같아서 자세히 살펴보도록 한다.

우선 웹 서버는 서버 스크립트 파일을 실행하지 못한다. 
그래서 CGI(Common Gateway Interface)를 사용하여 웹 서버는 php 파일을 처리합니다.
그렇게 하여 동적 웹페이지를 받을 수 있습니다. 

사실 여기에서 이해과정 중 문제가 발생했다. 
https://www.cafe24.com/?controller=product_page&type=basic&page=autoban

이 사이트에 들어가면 "php7 서버 환경에서는 cgi 사용이 불가능합니다." 이런 문구가 있는데 
그렇다면 웹 서버 아파치 2가 있다 하더라도 php 실행이 안되는 것인가? 
아니다 프로젝트에 ftp로 php를 전송해서 해당 URL에 php명을 붙여서 
호출한 기억이 선명하다. 

우선, 위 내용을 바탕으로 생긴 궁금증을 검색한 결과
아파치는 모듈을 통해 실행
              또는
php가 cgi를 통해 실행

이 2가지 방법 중 하나로 실행되는 것 같다
아파치 모듈 사용법을 눈으로만 봤지 사용은 안해봐서 CGI와 무슨 차이인지는 모르겠다만
우선 이 2가지로 PHP를 처리할 수 있기에 CAFE 24 에서 CGI 사용 불가라는 내용이 있다 하더라도 php 실행이 되는 이유를 알 수 있다.

자세한건 또 시간이 나면 찾아보리다 



참고 
https://doorbw.tistory.com/29
https://stackoverrun.com/ko/q/4590516

2020년 4월 15일 수요일

패턴

생성(Creational)패턴

추상팩토리 패턴

빌더 패턴

프로토타입 패턴
사용 예 ( 몬스터 리스폰, NPC 아이템 창 구현..)
장점 :  다수의 객체 생성 시 비용을 줄일 수 있다.
단점 : class들이 clone함수를 구현해야 함

실글톤 패턴

구조패턴 

어뎁터
장점: 호완성 문제로 같이 쓸 수 없는 Class를 사용할 수 있다

Composite
장점: 전체 부분의 관계를 갖는 객체들 사이의 관계를 정의할 때 유용
ex) 컴퓨터를 중심으로 (모니터, 마우스, 스피커 .. )

decoator
장점: 기본 기능에 추가할 기능이 많은 경우 유용

Facade
장점: 복잡한 소프트웨어를 사용할 수 있도록 간편한 인터페이스 제공

Flyweight
비용이 큰 자원이 중복되어 생성될 가능성이 높은 경우 좋음

Proxy
장점:원하던 작업을 수행하면서 부가적인 서비스 실행에 적합 ,객체 접근방법 제어

행위패턴

Interpreter
언어의 문법과 해석방법에 용이
ex)MySql 구문분석

Command
장점: 실행될 기능을 캡슐화하여 재사용성 향상

Iterator
장점: 집합객체 요소 접근/순회방법

Mediator
장점: 여러 객체들 사이에서 통신의 복잡함을 감소시켜준다.

Observer
장점: 일대다 관계에서 수정된 값이나 목표달성과 같은 알림을 보내는 데 유용.

State
장점: 객체에 따라 상황을 달리 할 수 있는 상황에서 유용

Strategy
장점: 전략 알고리즘을 쉽게 변화시킬 수 있음

Visitor
데이터 구조와 연산을 분리하여 데이터 구조 변경없이 데이터 연산을 추가할 수 있음



2020년 4월 14일 화요일

디자인 패턴

디자인 패턴의 4요소 

패턴 이름
 -설계의 의도를 표현
문제 
 -언제 패턴을 사용하는가를 서술
해법 
 -설계를 구성하는 요소들과 요소들과의 협력관계 서술
결과
 -디자인 패턴의 결과물과 장단점을 서술 


디자인 패턴의 종류로 -> 생성패턴, 구조패턴, 행위패턴

생성패턴 : 객체의 생성방식을 결정한다. 
구조패턴 : 객체를 조직화하는 일반적인 방법을 제시 
행위패턴 : 객체의 행위를 조직화 관리 , 연합한다.

사실 이렇게 글만 써놓고 보면 잘 와닿지 않는다. 

다음 글을 통해 자세히 살펴보자

2019년 12월 11일 수요일

cocos2d를 다루던 중 Sprite에서 에러를 맞이 하고 있는 당신에게


void GameScene::onTouchMoved(Touch* touch, Event* unused_event) {
          Vec2 location = touch->getLocation();
       
                   flightMove(location);
}


void GameScene::flightMove(Vec2 location) {
          if (beganTouchVec2 != location) {
                   Vec2 v2 = location - beganTouchVec2;
                   flight->setPosition(flight->getPosition()+ v2);
          }
          beganTouchVec2 = location;

}


이전 위치가 아니라 터치가 움직였다면 포지션을 바꿔주는 방법이었는데
요 moved 함수에 잘 못 넣었다가 크게 당했다.
조금만 생각해보면 flight객체가 지워지는 순간 애러가 발생하는 것을 ..
flight 객체가 지워지면 내가 작성했던 코드에서는  Gavaover 이미지가 띄워지고 모든 스케쥴이 중단된다. 리스너를 해체해줄까 이런 생각도 들었지만 조금 더 내 귀잖음이 나를 생각의 길로 이끌었다.

 한참 고민하다가 Unity에서 하던 방식이 생각났다.

좋았어

update 스케쥴을 선언하여

void GameScene::update(float delta) {
flightMove(onTouchMovedV2);
}
이렇게 바꾸었다. 물론 .. onTouchMovedV2 저기 위에 있는 location Vec2 값이다.
중요한건 이 에러를 검사 당일날 봤다는 것 ..
고치지 못했다 후 .. 그래도 내 학점과 바꿔서 답을 찾아 냈다 !

우린 답을 찾을 것이다. 늘 그랬듯이
-인터스텔라-

누가 내 머리도 update 해주면 안되냐




2019년 11월 21일 목요일

EVE 1일차 -일기

EVE일기에 온 것을 환영한다.
사실 역기획 하려고 했으나 어디서부터 시작해야 할지 감도 안오는 게임이라
몇 일 더 해보고자 한다.
우선 튜토리얼을 플레이 하면서 꽤나 섬세한 게임이라는 것을 알 수 있다.
도킹 -> 모듈 장착

어쩌면 섬세함 보다는 함선간에 전투 발생 시 자유롭게 모듈을 교체한다면 전략이라는 요소에 마이너스가 될 수 있지 않을까.



 (그림 1 -도킹시도)

 도킹하면서 또 놀랐다. 이 거대한 함선은 함선이라 불러야 하나 ..
정거장이라 하게다.
요 정거장을 보자마자 섬뜩했다. 블소에서 이동하면서 이리저리 여기저기 상하좌우
 쳐다보면서 맵을 음미하다 싶이 하는 나로써는 놀라운 광경이었다.

다른 튜토리얼을 위해 이동하려고 하는데 이 녀석은 무엇인가. 방금 위에서 설명했듯 나란 놈은 이런 것을 보고 그냥 갈 수 없다...


(그림 2 - 행성X)..행성 이름을 몰라서 X라 하였다.
 인상 깊었던건 대적점 처럼 생긴 물체가 쉴새없이 변화된다는 것 보자마자  행성안으로도 들어가고 싶다는 생각이 들었다. (가능한지는 모르겠다..시도를 안해봐서 )

자 이제 구경은 그만하고 워프를 타서 날라 간 곳에는 두둥탁!


(그림 3 )

귀여운 적이 존재했다. 전투 조작법이 간단해서 금방 익힐 수 있었다. 어쩌면 너무
심플해서 전투 중에는 어떤 퍼포먼스를 낼 수 있을까 궁금했다. 전투중에 도탄 되는 것을 보고 월오탱이 가장 먼저 떠올랐고 도탄에 울고 웃을 날이 내게 올까 무섭다.ㅂㄷㅂㄷ

퀘스트를 마치고 정신나간 짓을 잠깐 했었는데 애드 아스트라(2019)를 재미있게 본 나란 놈은 애드 아스트라의 브레드 피드를 경험하고자 워프를 중지하고 화면을 쳐다보기 시작했다.


(그림 4)


686,654,226,437.85 m(미터) 내가 아무리 정신 나간 놈이라 해도
나의 함선 속력 650 m/s...
대략 33년이라는 시간을 깨닫고 내 자신을 반성했다.


(그림5)

나란놈은 겨우 30분밖에 쳐다볼 수 밖에 없는 난 역시나 오늘도 근성이 부족했다.. 용감한 모험자가 있다면 해보시라.

 계속해서 튜로리얼 ..이것 저것 보느라 플레이 타임이 꾸준하게 늘어간다.


(그림 6)

 이펙트가 정말 화려하다. 분명 튜토리얼 초기 잡몸을 때려 잡았는데 이런 연출을 해주니 게임의 내공이 상당하는 것을 증명해주는 것 같다.
 그리고 아직 난 할 일이 많다.

정리하자면 일기와 같이 게임에서 있었던 이야기를 잠깐 적어봤다. 그리고 플레이 하면서 느낀건 나란 놈을 제외한 뉴비들은 초반이 지루하다고 느낄 수 있을지도 모르겠는 것이다.
그런 분들은 좀 더 근성을 가지고 플레이 해보면 재미있지 않을까..
물론 나란 놈이 아직 할 말은 아니다

다시 돌아ㅇ겠다
이만
간다








© 특히하고 특별한
Maira Gall