post list

2014년 9월 27일 토요일

스타트업 꿀 팁 5. 클라우드 펀딩


클라우드 펀딩?

군중(crowd)으로부터 자금조달(funding)을 받는다는 의미로, 자금이 필요한 개인, 단체, 기업이 웹이나 모바일 네트워크 등을 이용해 불특정다수로부터 자금을 모으는 것을 말한다. 소셜 네트워크 서비스(SNS)를 통해 참여하는 경우가 많아 소셜 펀딩이라고도 한다. 크라우드 펀딩은 크게 대출형, 투자형, 후원형, 기부형으로 나눌 수 있다.
[네이버 지식백과] 크라우드 펀딩 [crowd funding] (두산백과)

스타트업을 할때 제품이 소프트웨어가 아니라 하드웨어 일경우, 그리고 기초자금이 많이 들경우, 무턱대고 뛰어들기에 좀 확신 부족해 반응을 보고 싶을 경우
클라우드 펀딩이 훌륭한 대안이 되지 않을 까 합니다. 


 킥스타터
가장 유명한 미국의 대표적인 클라우드 펀딩 사이트입니다.








유캔펀딩
이건 한국의 대표적인  클라우드펀딩 사이트









텀블벅
또 한국의 클라우드 펀딩 사이트

2014년 9월 21일 일요일

스타트업 꿀 팁 4. 이지비즈


이지비즈는 전국에 중소기업 지원사업을 한 눈에 보여주는 아주 유용한 사이트입니다.
여기는 진짜 수시로 들어가 주셔야 수월하게 스타트업이 가능하지 않을 까 합니다.

정말 유용한 지원사업들이 엄청나게 많으니 꼭 한번 둘러보세요

꼭 스타트업이 아니라 이미 여러가지 중소기업을 위한 교육, 경영, it 관련 정보가 많아요

스타트업 꿀 팁 3.모바일팜


모파일팜
무료로 모바일 최적화 사이트를 만들어 주는  서비스 입니다. 무료 도메인도 주고 다양하고 세련된 템플릿도 제공해서  스타트업을 준비중인데 모바일 사이트를  순식간에 만들어 버리고 싶은 사람이 사용하면 좋을 서비스네요

스타트업 꿀 팁 2. 스타트업 얼라이언스








WHO WE ARE
스타트업 얼라이언스는 한국의 스타트업 생태계를 활성화하고 한국스타트업의 해외진출을 지원하기 위해 미래창조과학부와 네이버, 다음, 카카오, SK플래닛 등 인터넷선도기업, 투자기관, 창업보육기관 등이 힘을 합쳐 만든 민관협력네트워크입니다.

지원 해주는 것은 3가지로 요약 가능합니다.

1. 파워톡
2. &스페이스
3. 파워 서포트


powertalk_DAUM
1. 파워톡
파워톡은 관련 회사와 연계해서  초기 스타트업을 위한 1:1 집중 컨설팅 프로그램 입니다
지금은  sk에서 지원을 받더군요  매번 바뀝니다. 저번은 다음이었으니


2. &스페이스
스타트업을 위한 강의/세미나/컨퍼런스와 스타트업의 행사를 목적으로 하는 경우 전액 무료로 장소를 빌려줍니다. 좋습니다.


3.파워 서포트


네이버의 클라우드 서버 지원 프로그램인 Eco Square(에코스퀘어)를 2년동안 무료로 제공합니다.
필요에 따라 아래 세 가지 패키지 중 하나를 선택할 수 있습니다.
spec


업무용 커뮤니케이션 및 협업 솔루션인 NAVER Works를 무료로 지원합니다.
Web과 App을 통해 기업용 메일, 캘린더, 주소록, 드라이브, 웹 오피스를 이용하실 수 있습니다.
works

스타트업 꿀 팁 1. 네이버 벤처스




 한국에서 가장 큰 포털 사이트인 네이버는
스타트업에 많은 지원을 하고 있는 회사 중 하나입니다.

네이버 벤처스 홈페이지는  네이버가 진행하는 스타트업 지원사업을 종합해 알려줍니다.

스타트업을 계획하고 있다면 이 홈페이지를 자주 들락날락 거리면 좋습니다.





스프라이트 킷 5. 파티클 이미터 (SKEmitterNode class)

파티클 이미터는  게임에 특수효과를 주기 위해 사용합니다.

파티클 이미터를 사용하기 위해서 Xcode5 에 있는 이미터 편집기를 사용합니다.

파티클 이미터 프로퍼티들


background

파티클이 제대로 표혐이 되는지  여러 배경에서 테스트를 할수 있습니다. 
파티클 색상이 배경과 혼합되도록 설정한경우  배경에 따라 색상이 달라질수 있어서 미리 배경색상을 미리 테스트 해보는 것이 좋습니다.


particle texture

이미터 내에서 파티클을 표현하는 이미지 입니다. 

Particle Birthrate

birthrate 노드에서 생성되는 새로운 파티클의 비율을 설정합니다.
maximum 파티클 최대 개수입니다.  0 이라면 무한히 생성됩니다.

Particle Life Cycle

start : 파티클이 생성되고  사라질때까지 시간입니다.
range  : 0과 지정된 시간 값 사이의 랜덤값을 기반으로 수명에 랜덤으로 변형을 줍니다.


Particle Position Range

 파티클이 생성되는 위치 범위를 정합니다.
예를 들어 x값이 커지면  파티클이 생성되는 위치가 중심으로 부터 넓어 지게 됩니다.


Angle

방출되는 파티클의 각도가 0도 값에서(좌표평면에서 x 축 방향) 에서 시계 방향으로 각도가 움직입니다.  
range 각도를 랜덤하게 변화시킵니다. 

Particle Speed

파티클이 생성될때 초기 속도를 정한다.
range 랜덤 편차를 준다.


Particle Acceleration

파티클이 방출된 이후 가속도 값을 줄 수 있습니다. 

Particle Scale

파티클 크기를 설정합니다.  수명동안 점점 커지게 할 수 도있고  랜덤하게 바꿀 수 도 있습니다.

Particle Rotation

파티클의 회전 속도를 설정합니다. 

 Particle Color

파티클의 수명동안 색상의 변화를 설정할 수 있습니다. 

Particle Blend Mode

파티클이 생성되는 화면의 색상들과 혼합되는 방법을 설정합니다. 

alpha - 파티클의 푸명 픽셀을 배경과 혼합한다.
add = 파티클 픽셀을 해당 배경이미지 픽셀에 더한다.
subtract - 해당 배경 이미지 픽셀에서 파티클 픽셀을 뺀다.
Multiply -파티클 픽셀에 해당 배경 이미지 픽셍르 곱하며, 더 어두운 파티클 효과가 된다.
MultiplyX2 = 표준 multiply 모드 보다 더 어두운 파티클 효과를 생성한다. 
screen - 픽셀들을 반전하고 곱하고 다시 반전하여 좀더 밝은 파티클 효과가 난다
replace - 배경과 혼합하지 않는다. 

이상 설정 방법이었습니다. 


다음 글에서 파티클 생성하고 사용하는 것을 보도록 하죠 

2014년 9월 14일 일요일

스프라이트 킷 4. 화면 전환 (SKTransition class)


SKTransition 클래스는 Scene 사이를 왔다갔다 할때 사용 합니다.


Tasks


Creating Transition Objects


Configuring Whether Scenes Are Paused During the Transition


그냥 예제 보는게 답입니다. 

스프라이트 킷 템플릿을 선택해서 프로젝트를 생성합니다. 

Transition 이라는 이름의 프로젝트를 만들었습니다.

바로 run을 눌러보면  클릭할때마다 제트기가 빙빙 도는 scene을 볼수 있습니다. 

먼저  새로운 SKScene class 파일을 생성합니다. 

HomeScene 이라는 이름으로 클래스를 생성했습니다.

이제  viewController.m 에서 기존 scene대신 homeScene 을 임포트 하고
표시할 scene을 homeScene으로 대체합니다.

didMoveToView 메소드를 통해서  메시지를 띄웁니다.



메시지를 띄우는 skLabelNode를 만들어주는 메소드를 작성합니다.

이제 run을 눌러보면 다음 화면을 볼수 있습니다.  그러나 아직 전환은 없습니다.


touchesBegan 메소드를 작성합니다.

name 프로퍼티로 textNode를 생성한후 textNode를 사라지게 하는 액션을 넣어줍니다.
그리고 사라지고 나면  화면전환이 일어나는 코드입니다.
sceneWithSize: 는
 [[TransitionMyscene alloc]initWithSize:self.size]; 이것과 같은 뜻입니다.



이제 화면을 터치하면 전환이 일어나고 처음에 봤던 scene으로 넘어가는 것을 확인 할 수 있습니다.



2014년 9월 13일 토요일

스프라이트킷 3. 액션 사용하기 (SKAction클래스)

액션은 화면에서 노드가 수행하는 움직임이다
회전이나  페이드인/아웃 움직임, 크기변화 등을 수행 할 수 있다.

일단 skAction class reference 입니다.


Tasks


Creating Actions That Move Nodes


Creating Actions That Rotate Nodes


Creating Actions That Change a Node’s Animation Speed


Creating Actions That Change a Node’s Scale


Creating Actions That Change a Node’s Transparency


Creating Actions That Change a Sprite Node’s Content


Playing Sounds


Removing Nodes from the Scene


Creating Actions That Perform Actions on a Node’s Child


Creating Actions That Combine or Repeat Other Actions


Creating an Action to Introduce a Delay into a Sequence


Creating Custom Actions


Reversing an Action


Inspecting an Action’s Animation Properties


액션은 별로 설명할게 없어요
일단 property에 관해서 설명합니다

duration 
액션이 수행되는데 걸리는 시간이에요 

speed
액션이 얼마나 빨리 수행되는지 정해주는 프로퍼티입니다. 
기본값은 1이고 2를 넣으면 두배로 빨리 액션이 수행되겠네요

 timingMode
액션이 점점 빨리지던지,  빨라졌다 느려지고, 점점 느려지는 것들을 정해줍니다.


액션은 sequence, group, repeating액션으로 구분할수 있습니다.
sequence 는 차례차례 액션을 수행하게 할수 있고 , group은 병렬적수행을 할수 있고 , 
repeating Action은 반복합니다. 

바로 예제를 보도록하겠습니다. 
텍스쳐 아틀라스 사용하기 에서 작성했던 예제를 사용하도록 하겠스빈다.

나루토를 터치하면   회전하고   다른 곳을 터치하면 그 곳으로 그림자분신술하는 예제입니다.
기존 코드를 좀 바꿔줄 필요가 있습니다. 
아래 코드처럼 _narutoNode를 인스턴스 변수로 선언해주고 
기존 narutoNode를 _narutoNode로 대체합니다.


메크로를 선언합니다.

naruto_aniMyScene.m에 아래 코드를 추가해줍니다.


실행결과입니다.












2014년 9월 10일 수요일

apple 2014 special event keynote에서 우리가 주목해야 할점



한국 시간으로 9월 10일 새벽 2시 부터 
apple 2014 special event keynote 가 생중계 됐습니다. 



이번에 아이폰6와 애플와치에 대해 많은 기대를 하고 봤었는데 
역시 아이폰6와 애플와치에 대한 이야기는 빠지지 않았습니다. 

키노트 발표후 인터넷의 반응은  호불호가 극하게 갈리는것 같습니다. 

인터넷 기사, 블로그에 나오는 진부한 이야기 말고
이번에 키노트를 보고 나름 인상깊었던 것들은 적어볼까 합니다. 


애플이 타협하기 시작했다. 

"아이폰은 한손으로 조작이 가능해야 한다. "

애플은 본인들이 옳다라고 생각하는 것이 아니면 하지 않는
기업철학이 투철한 회사입니다.

그런 애플이 소비자와 타협을 시작한 것 같습니다.

NFC도 탑재하고 디스플레이도 키우고
아이폰6가 바뀐게 없다라고 하던데 이정도면 엄청난 변화가 아닐까요
더이상 "아이폰은 00이 안되서 안드로이드 쓸꺼야"가 안 통할테니



하지만 애플의 한손철학을 완전히 포기한것은 아닌것 같습니다.

애플은 아이폰6를 통해 이왕에 화면 키운거
대화면 스마트폰이 나가야 할 길을 재대로 보여준 것 같습니다.


  • 한 손으로 쥐는데 불편이 없도록 폰이 얇아 졌다. (덕분에 카메라가 튀어나왔지만)
  • 모서리가 둥글다
  • 무게가 아이폰5s 와 차이가 별로 없다(아이폰6+ 는 좀더 무겁지만)
  • 전원 버튼을 한 손으로 누르기 쉽게 옮겼다.
  • 대화면 윗부분 터치가 어렵기 때문에  홈버튼은 두 번 탭하면 화면이 내려온다.













하지만

  • 키보드를 한손으로 쓰기 힘들다. (오타는 줄었다.)
  • 단어 추천기능은 (아직) 쓸모 없다.
  • 카메라 렌즈 흠집날거같다. ( 사파이어 유리를 써서 흠집 잘 안난다.) 그래도 불안하다.


이번 아이폰6+를 보고  이해할 수 없는건

레티나 HD




 레티나가 망막이란 뜻입니다.
즉 레티나 디스플레이가 인간의 망막으로 분별 하기 힘든 만큼 화소 가 작다라는 뜻인데

아이폰6는 화소 밀도가 전작과 같은 326ppi(인치당 화소 수)지만, 아이폰6플러스는 밀도도 401ppi로 더 촘촘해졌습니다(어쩌라고 어짜피 구분도 안되는데)


애플 Pay
NFC는 절대 안넣을 것 같던 애플이 NFC까지 탑재해습니다. 
touchID와 결합하며 너무 아름다운 기능이 탄생했네요 




이제 전자기기의 디자인 트렌드는 둥글둥글
애플은 패션업계가 이번 시즌의 디자인 트랜드를 예고 하듯이 
전자기기의 디자인 트랜드를 예고 하는거 같습니다. 

아이폰5S 까지만 해도 애플은이 생명이었지만
이제는 일관되게 둥글둥글하네요 애플와치도 둥글둥글  유리마저 둥글둥글
전부 둥글둥글합니다

사람들이 예전 디자인이 더 멋지다고 많이들 이야기하는데 
너무 각진 아이폰에 익숙해서 그런거 아닐까요 ???












또 하나의 혁신

매번 키노트 끝나면 관종들은 SNS에 
"이번에도 혁신은 없었다. "
를 올리곤 했죠  

하지만 매번 애플은 혁신은 계속 됐습니다. 

 이번엔 APPLE Watch가 아닐까요



제가 혁신이라고 말하는 부분은 바로 이 부분입니다.

정말 smart watch에 다이얼을 넣은건 미친 혁신이라고 생각합니다.




이상입니다.





2014년 9월 7일 일요일

SKPhysicsbody클래스 충돌,접촉, 비트 마스크


물리몸체에 body를 할당하면 자동으로  물리 몸체 끼리 충돌,접촉에관한 설정이 이루어 집니다.

물리엔진이은 물리 운동을 2가지 방법으로 처리 합니다.

1.두 body가 겹쳐지는 것을 막는 것이 충돌입니다.
2. 두 body가 겹쳐지거나  붙을 경우 접촉이라고 합니다.


따로 설정을 바꾸지 않았을 경우에  모든 물리 몸체사이에 충돌이 일어나고  접촉은 일어나지 않습니다.
그러나 코딩을 할때는 어떤 경우에는 충돌이 일어나지 말아야하고 , 접촉이 일어나야 하는 경우가 있습니다. 이것을 처리하기 위해서 3가지의 bit mask를 이용합니다.

categoryBitMask

default  0xFFFFFFFF (all bit set)

collisionBitMask

default  0xFFFFFFFF (all bit set)

contactTestBitMask

default  0x00000000 ( all bit cleared) 

접촉 처리는 
SKPhysicsContactDelegate 의 두 메소드를 사용합니다. 

Responding to Contact Events


충돌이 일어나기 위해서는
bodyA 의 collisionbitmask 와  bodyB의 categoryBitMask 를 &연산한 결과가
0이 아닐경우입니다.

접촉이 일어나기 위해서는
bodyA의 category bit mask 와 bodyB의 contactTest bit mask 를 & 연산한 결과가
0이 아닐 경우 입니다.

======== 예시 ========
typedef NS_OPTIONS(int, EntityCategory) {
    
    EntityCategoryOne = 0x1   <<0,
    EntityCategoryTwo = 0x1   <<1,
    EntityCategoryThree =0x1  <<2,
    EntityCategoryFour = 0x1 <<3,
    

};

body1.physicsbody.categorybitmask = entitycategoryOne;
body2.physicsbody.categorybitmask = entitycategoryTwo;
body3.physicsbody.categorybitmask = entitycategoryThree;
body4.physicsbody.categorybitmask = entitycategoryFour;

//body1은  body2,body3와 충돌
body1.physicsbody.collisionbitmask = entitycategoryTwo | entitycategoryThree;

//body2 는 body2, body 4와 충돌 이때  body1과 충돌하지 않음
body2.physicsbody.collisionbitmask = entitycategoryTwo | entitycategoryFour;

 //body1과 body3이 접촉   이때 body3가 움직여서 접촉해야 접촉이 일어남
// body1 이 bodyA ,  body3이  bodyB
body3.physicsbody.contactTestbitmask = entitycategoryOne;




-(void) didBeginContact:(SKPhysicsContact *)contact
{
    SKSpriteNode* firstNode, *secondNode;
    
    firstNode = (SKSpriteNode*) contact.bodyA.node;
    secondNode = (SKSpriteNode*) contact.bodyB.node;
    
    if ((contact.bodyA.categoryBitMask == EntityCategoryOne)
        && (contact.bodyB.categoryBitMask == EntityCategoryThree)) {
        
        //접촉 처리
        
        
    }
    
}    
============================