2020ë…„ 7ì›” 15ì¼
by aduris
0 comments

ì¢‹ì€ ì½”ë”©ì„ ìœ„í•œ 13 가지 간단한 규칙

나는 15ë…„ ì´ìƒì˜ ê²½ë ¥ì„ ê°€ì§„ 프로그래머ì´ë©° ë§Žì€ ì—¬ëŸ¬ 언어, 패러다임, 프레임워í¬ë¥¼ 사용해봤고 ë§Žì€ ì‚½ì§ˆì„ í•´ë´¤ë‹¤.

그리고 나는 ì¢‹ì€ ì½”ë”©ì„ ìž‘ì„±í•˜ê¸° 위한 ë‚˜ë§Œì˜ ê·œì¹™ë“¤ì„ ì—¬ëŸ¬ë¶„ì—게 ê³µìœ í•˜ê³ ìž í•œë‹¤.

최ì í™” VS ê°€ë…성. 최ì í™”보단 ê°€ë…성

코드는 í•­ìƒ ì½ê¸° 쉽고 개발ìžë“¤ì´ ì´í•´í•  수 ìžˆê²Œë” ìž‘ì„±í•˜ë¼. ì½ê¸° 어려운 코드를 ì½ëŠ”ë° ì†Œëª¨ë˜ëŠ” 시간과 ë¹„ìš©ì€ ìµœì í™”로부터 ì–»ì„ ìˆ˜ 있는 것보다 ë”ìš± í¬ë‹¤. 최ì í™”ê°€ 필요하다면, DI (ì˜ì¡´ì„± 주입)ì„ ì‚¬ìš©í•´ ë…립ì ì¸ 모듈로 만들고, 100%ì˜ í…ŒìŠ¤íŠ¸ 커버리지를 유지하여 최소 1ë…„ê°„ì€ ê±´ë“¤ì§€ ì•Šì•„ë„ ë˜ë„ë¡ ë§Œë“¤ì–´ë¼.

아키í…처 ìš°ì„ 

나는 “우리는 빨리 ê°œë°œì„ í•´ì•¼í•˜ê¸° ë•Œë¬¸ì— ì•„í‚¤í…처를 설계할 ì‹œê°„ì´ ì—†ë‹¤”ë¼ê³  ë§í•˜ëŠ” ì‚¬ëžŒì„ ë§Žì´ ë´ì™”다. 그리고 ê·¸ 중 99%ê°€ ì´ëŸ¬í•œ ìƒê° ë•Œë¬¸ì— í° ë¬¸ì œë¥¼ 겪었다.

아키í…처를 ìƒê°í•˜ì§€ ì•Šê³  코드를 작성하는 ê²ƒì€ ëª©í‘œ 달성ì„위한 계íšì—†ì´ ìžì‹ ì˜ ìš•ë§ì„ 꿈꾸는 것처럼 쓸모가 없다. 코드를 작성하기 ì „ì— ë¨¼ì € 수행 í•  ìž‘ì—…, 사용 방법, 모듈화 방법, 서비스가 서로 어떻게 ë™ìž‘하는지, 구조가 무엇ì¸ì§€, 테스트 ë° ë””ë²„ê¹… 방법, ì—…ë°ì´íŠ¸ ë°©ë²•ë“¤ì„ ë¨¼ì € ìƒê°í•˜ê³  ì´í•´í•´ì•¼í•œë‹¤.

테스트 커버리지

테스트는 ì¢‹ì€ ì¼ì´ì§€ë§Œ í•­ìƒ ë¹„ìš© 효율ì ì¸ê±´ 아니며 프로ì íŠ¸ì— ë”°ë¼ ë‹¤ë¥´ë‹¤.

테스트가 필요한 경우:

  • 최소 í•œ ë‹¬ê°„ì€ ê±´ë“¤ì§€ ì•Šì•„ë„ ë  ëª¨ë“ˆì´ë‚˜ 마ì´í¬ë¡œì„œë¹„스를 개발하는 경우
  • 오픈소스 코드를 작성하는 경우
  • 핵심 코드 ë˜ëŠ” 금전ì ì¸ 부분과 맞닿는 코드를 작성하는 경우
  • 코드를 ì—…ë°ì´íŠ¸ 하는 것과 ë™ì‹œì— 테스트를 ì—…ë°ì´íŠ¸ í•  수 있는 충분한 ë¹„ìš©ì´ ìžˆëŠ” 경우

테스트가 필요하지 않는 경우:

  • ìŠ¤íƒ€íŠ¸ì—…ì¸ ê²½ìš°
  • íŒ€ì´ ìž‘ê³  코드가 빠르게 변하는 경우
  • ì¶œë ¥ê°’ì„ ë³´ê³  간단하게 수ë™ìœ¼ë¡œ 테스트가 가능한 스í¬ë¦½íŠ¸ë¥¼ 작성하는 경우

ë‚˜ìœ í…ŒìŠ¤íŠ¸ 코드와 함께 코드를 짜는 ê²ƒì€ í…ŒìŠ¤íŠ¸ê°€ 없는 코드보다 ë” ìœ„í—˜í•  수 있ìŒì„ 기억하ë¼.

간단하고 단순하게

복잡한 코드를 작성하지 ë§ë¼. 간단하게 작성하면 버그가 줄어들고 디버깅 ì‹œê°„ë„ ì¤„ì–´ë“¤ 수 있다. 코드는 ìˆ˜ë§Žì€ ì¶”ìƒí™” ë° ê¸°íƒ€ ê°ì²´ì§€í–¥ì ì¸ 문제 (특히 Java 개발ìžì™€ ê´€ë ¨ì´ ìžˆìŒ) ì—†ì´ ë”± 필요한 ì¼ë§Œì„ 수행해야하며, ì¶”í›„ì— ê°„ë‹¨í•œ 방법으로 코드를 ì—…ë°ì´íŠ¸í•˜ê¸° 위해 필요한 ê²ƒì˜ 20%를 수행해야한다.

주ì„

주ì„ì€ ë‚˜ìœ ì½”ë“œë¥¼ 보여준다. ì¢‹ì€ ì½”ë“œëŠ” ì£¼ì„ ì—†ì´ë„ ì´í•´í•  수 있어야한다. 그러면 새로운 개발ìžë¥¼ 위해 ì‹œê°„ì„ ì ˆì•½í•˜ê¸° 위해 해야 í•  ì¼ì€ 무엇ì¸ê°€? — ë©”ì„œë“œì˜ ì •ì˜ì™€ ì‚¬ìš©ë²•ì„ ì„¤ëª…í•˜ëŠ” í•œ 줄짜리 간단한 문서를 작성하ë¼. ì´ëŠ” ì´í•´ë¥¼ 위한 ë§Žì€ ì‹œê°„ì„ ì ˆì•½í•´ 줄 것ì´ë©° — ë” ë§Žì€ ì‚¬ëžŒë“¤ì—게 메서드를 ë” ìž˜ 구현할 수 있는 기회를 제공해준다. ë˜í•œ ì´ëŠ” 글로벌 코드 문서화를 위한 ì¢‹ì€ ì‹œìž‘ì ì´ ë  ê²ƒì´ë‹¤.

ê°•í•œ ê²°í•© VS ëŠìŠ¨í•œ ê²°í•©

í•­ìƒ ë§ˆì´í¬ë¡œì„œë¹„스 아키í…처를 사용하ë„ë¡ ë…¸ë ¥í•˜ë¼. 모놀리틱 소프트웨어는 마ì´í¬ë¡œì„œë¹„스 소프트웨어보다 빠르지만, ë‹¨ì¼ ì„œë²„ 환경ì—서만 그렇다. 마ì´í¬ë¡œì„œë¹„스는 ì—¬ëŸ¬ë¶„ì˜ ì†Œí”„íŠ¸ì›¨ì–´ë¥¼ 여러 ì„œë²„ë¡œì˜ ë¶„ì‚°ë¿ë§Œ ì•„ë‹ˆë¼ ê°€ë”ì€ í•˜ë‚˜ì˜ ë¨¸ì‹ ì—ì„œì˜ ë¶„ì‚°ì²˜ë¦¬ (프로세스 ë¶„ì‚°ì„ ì˜ë¯¸í•œë‹¤)ë„ í•  수 있는 ê°€ëŠ¥ì„±ì„ ì œê³µí•´ì¤€ë‹¤.

코드 리뷰

코드 리뷰는 ì¢‹ì„ ìˆ˜ë„ ìžˆê³  ë‚˜ì  ìˆ˜ë„ ìžˆë‹¤.

ì—¬ëŸ¬ë¶„ì˜ íŒ€ì— ì½”ë“œì˜ 95%를 ì´í•´í•˜ê³  있고 시간 낭비 ì—†ì´ ëª¨ë“  ì—…ë°ì´íŠ¸ ì‚¬í•­ì„ ëª¨ë‹ˆí„°ë§ í•  수 있는 개발ìžê°€ 있는 경우ì—만 코드 리뷰를 ë„입하ë„ë¡ í•˜ë¼. ì´ ì™¸ì˜ ê²½ìš°ì—는 단지 시간 낭비가 ë  ìˆ˜ 있으며 모ë‘ê°€ ì´ë¥¼ 싫어하게 ë  ê²ƒì´ë‹¤. ì´ ë¶€ë¶„ì€ ë§Žì€ ì§ˆë¬¸ì„ ê°€ì ¸ì˜¤ê¸° ë•Œë¬¸ì— ì´ë¥¼ 좀 ë” ê¹Šê²Œ 살펴보ìž.

ë§Žì€ ì‚¬ëžŒë“¤ì€ ì½”ë“œ 리뷰가 새로운 사람ì´ë‚˜ ì½”ë“œì˜ ë‹¤ë¥¸ ë¶€ë¶„ì„ ìž‘ì—…í•˜ëŠ” 팀ì›ì„ 가르치는 ì¢‹ì€ ë°©ë²•ì´ë¼ê³  ìƒê°í•œë‹¤. 그러나 코드 ë¦¬ë·°ì˜ ì£¼ìš” 목표는 코드 í’ˆì§ˆì„ ìœ ì§€í•˜ëŠ” 것ì´ì§€ 가르치는게 아니다. ì—¬ëŸ¬ë¶„ì˜ íŒ€ì´ ì›ìžë¡œ ë˜ëŠ” 우주 로켓 엔진 ëƒ‰ê° ì‹œìŠ¤í…œì„ ì œì–´í•˜ëŠ” 코드를 작성했다고 가정해보ìž. 그리고 ì—¬ëŸ¬ë¶„ì€ ì•„ì£¼ 어려운 ë¡œì§ì—ì„œ í° ì‹¤ìˆ˜ë¥¼ 저질렀고, ì´ë¥¼ 새로운 사람ì—게 코드 리뷰를 위해 제공했다고 í•´ë³´ìž. ì´ ê²½ìš° ì—¬ëŸ¬ë¶„ì€ ì‚¬ê³  ìœ„í—˜ì— ëŒ€í•´ 어떻게 ìƒê°í•˜ëŠ”ê°€? — ë‚´ ëŒ€ë‹µì€ 70% ì´ìƒì´ë‹¤.

ì¢‹ì€ íŒ€ì€ ê°ìžê°€ ìžì‹ ì˜ ì—­í• ì„ ê°€ì§€ê³  있으며 ì¼ì˜ í•œ ë¶€ë¶„ì— ëŒ€í•´ 완전한 ì±…ìž„ê°ì„ ê°–ê³  있는 팀ì´ë‹¤. 만약 누가 ì½”ë“œì˜ ë‹¤ë¥¸ ë¶€ë¶„ì„ ì´í•´í•˜ê³  싶으면 해당 ë¶€ë¶„ì„ ë‹´ë‹¹í•˜ê³  있는 사람ì—게 찾아가 ì§ˆë¬¸ì„ í•˜ë©´ëœë‹¤. 모든걸 아는건 불가능하며 전체보다는 ì½”ë“œì˜ ìž‘ì€ ë¶€ë¶„ì„ (하지만 ì ì–´ë„ 30%는) 완전히 ì´í•´í•˜ëŠ”ê²ƒì´ ë” ë‚«ë‹¤.

리팩토ë§ì€ ìž‘ë™í•˜ì§€ 않는다

나는 ì¼í•˜ëŠ” ë™ì•ˆ â€œë‚˜ì¤‘ì— ë¦¬íŒ©í† ë§ í• ê±°ë‹ˆê¹Œ 걱정하지마뼔ë¼ëŠ” ë§ì„ ë§Žì´ ë“¤ì—ˆë‹¤. 그리고 ë‚˜ì¤‘ì— ì´ëŠ” í° ê¸°ìˆ ì  ë¶€ì±„ë¡œ ëŒì•„오거나 모든 코드를 다 삭제한 후 처ìŒë¶€í„° 다시 작성하게 ë˜ì—ˆë‹¤.

ë”°ë¼ì„œ 처ìŒë¶€í„° 여러번 소프트웨어 다시 개발할 수 있는 ìžê¸ˆì´ 있는게 아니ë¼ë©´ 부채를 만들지 ë§ë¼.

피곤하거나 ì»¨ë””ì…˜ì´ ì¢‹ì§€ ì•Šì„ë•Œ 코딩하지 ë§ë¼

개발ìžë“¤ì´ 피곤할 ë• í‰ì†Œë³´ë‹¤ 2-5ë°° ë” ë§Žì€ ë²„ê·¸ì™€ 실수를 만들어낸다. ë”°ë¼ì„œ ê³¼ì—…ì€ ë§¤ìš° 나ì˜ë‹¤. 그렇기 ë•Œë¬¸ì— í•˜ë£¨ì˜ ì—…ë¬´ì‹œê°„ì„ ì•½ 6시간으로 고려하는 국가가 ì ì  ë” ë§Žì•„ì§€ê³  있으며, ì¼ë¶€ êµ­ê°€ì—서는 ì´ë¯¸ 실천하고있다. ì •ì‹ ì ì¸ ì¼ì€ 육체ì ì¸ ì¼ì„ 다루는 것과 같지 않다.

모든걸 í•œêº¼ë²ˆì— ìž‘ì„±í•˜ìž ë§ë¼ – 반복ì ìœ¼ë¡œ 개발하ë¼

코드를 작성하기 ì „ì— ìš°ì„  ì—¬ëŸ¬ë¶„ì˜ ê³ ê°ê³¼ í´ë¼ì´ì–¸íŠ¸ê°€ ì •ë§ë¡œ 필요로 하는걸 분ì„하고 예측하고, ì§§ì€ ê¸°ê°„ë™ì•ˆ 개발할 수 있는 MVF(Most Valuable Features)를 추려내ë¼. 품질 ì—…ë°ì´íŠ¸ë¥¼ ë°°í¬í•˜ê¸° 위해 ì´ëŸ¬í•œ ë°˜ë³µì„ ì‚¬ìš©í•˜ë„ë¡ í•˜ê³  무리한 요구사항과 품질 í¬ìƒì— 시간과 ìžì›ì„ 낭비하지ë§ë¼.

ìžë™í™” VS 수ë™

ìžë™í™”는 장기ì ìœ¼ë¡œ 100% 성공ì´ë‹¤. ë”°ë¼ì„œ 지금 당장 무언가를 ìžë™í™” í•  수 ìžˆëŠ”ê²ƒì´ ìžˆë‹¤ë©´ 바로 하ë„ë¡ í•˜ë¼. “5 분 ë°–ì— ê±¸ë¦¬ì§€ 않는ë°, 왜 ìžë™í™” 해야해?“ë¼ê³  ìƒê°í•  ìˆ˜ë„ ìžˆë‹¤. 하지만 í•œ 번 계산해보ìž. 예를 들어 5ëª…ì˜ ê°œë°œìžë¡œ ì´ë£¨ì–´ì§„ íŒ€ì˜ ì¼ìƒì ì¸ ìž‘ì—…ì„ ë“¤ì–´ë³´ìž. 5분 * 5명 * 21ì¼ * 12개월 = 6,300분 = 105시간 = 13.125 ì¼ ~ 5,250$. ì§ì›ì´ 40,000ëª…ì¼ ê²½ìš°ì—” ë¹„ìš©ì´ ì–¼ë§ˆë‚˜ 커질까?

나가서 취미를 ê°–ìž

ì¼ì˜ 차별화는 ì •ì‹  ëŠ¥ë ¥ì„ í–¥ìƒì‹œí‚¤ë©° 새롭고 ì‹ ì„ í•œ ì•„ì´ë””어를 제공한다. ë”°ë¼ì„œ ìž ì‹œ 쉬고 ì‹ ì„ í•œ 공기를 마시거나 친구들과 ì´ì•¼ê¸°ë¥¼ 하거나 기타를 ì—°ì£¼í•˜ëŠ”ë“±ì˜ ì·¨ë¯¸ë¥¼ 가져ë¼.

여유 ì‹œê°„ì— ìƒˆë¡œìš´ê±¸ 배워ë¼

í•™ìŠµì„ ì¤‘ë‹¨í•˜ë©´ 퇴화하기 시작한다.

ì¢‹ì€ ì½”ë“œ ìž‘ì„±ì— ëŒ€í•œ ì•„ì´ë””어와 ê´€í–‰ì— ëŒ€í•œ ì˜ê²¬ì„ 공유해준다면 매우 ê°ì‚¬í•˜ê² ë‹¤

 

 

13 Simple Rules for Good Coding (from my 15 years of experience)를 번역한 글입니다.

2014ë…„ 5ì›” 30ì¼
by aduris
0 comments

ê°ˆë§ì˜ 아구니

2014ë…„ 1ì›” 27ì¼
by aduris
0 comments

2014ë…„ 주요 웹디ìžì¸ 트렌드 18ì„ 

 

2014ë…„ì—” ì–´ë–¤ 웹디ìžì¸ 트렌드를 보게 ë  ê±°ë¼ ìƒê°í•˜ì‹œëŠ”지? í•„ìžëŠ” 다른 것들보다 ì¢€ë” ì‹¬í”Œí•˜ê³ , ê¹”ë”하고, ìž‘ì€ í™”ë©´ 사ì´ì¦ˆì— íŠ¹í™”ëœ ê²Œ 유행할 ê±°ë¼ ë³¸ë‹¤.

ì´ ì»¬ë ‰ì…˜ì€ ì „ì²´ì ìœ¼ë¡œ 관찰과 ê²½í—˜ì— ì˜í•œ 추측, 그리고 지난 몇 달간 í•„ìžê°€ 엮어 본 다른 ë§Žì€ ê¸€ë“¤ì— ê¸°ë°˜í•´ 작성ë˜ì—ˆë‹¤. 그런 ê³ ë¡œ 다른 글들보다 ì¢€ë” ì •í™•í•  것임!

놓친 트렌드가 ìžˆì„ ìˆ˜ 있으니, ì—¬ëŸ¬ë¶„ì˜ ìƒê°ê³¼ 예ìƒì„ 아래 댓글로 달아 주시길.

 

1. 플랫(ìž…ì²´ê°ì„ 뺀) UI는 ê³„ì† ì„±ìž¥ì„¸

 

산세리프 í°íŠ¸ì˜ íŒ¬ì¸ ë‚˜ë¡œì„œëŠ” 현재 장ì‹ì ì¸ 것보다 깔ë”í•œ ê²ƒì´ íŠ¸ë Œë“œëž€ 걸 알릴 수 있어 기ì˜ë‹¤. 윈ë„ìš°8ì€ ì´ ì ì— 있어 매우 ì˜í–¥ë ¥ì´ 컸고, ê·¸ 다ìŒìœ¼ë¡œ ì• í”Œì´ iOS7ì„ ëŸ°ì¹­í•˜ë©°Â ìŠ¤íì–´ëª¨í”¼ì¦˜ì„ ë²„ë ¸ë‹¤. 플랫 ë””ìžì¸ì—는 여전히 ë§Žì€ ìž ìž¬ë ¥ì´ ìžˆë‹¤.

 

Windows 8

Apple iOS7

Skibuddy 

 

2. ëª¨ë°”ì¼ í¼ìŠ¤íŠ¸(모바ì¼ë¶€í„° ìƒê°í•˜ê¸°)

ìš” 몇년간 스마트í°ê³¼ 타블렛 사용ì˜Â ê¸‰ì¦ìœ¼ë¡œÂ ë§Žì€ 웹사ì´íŠ¸ë“¤ì—ì„œ ëª¨ë°”ì¼ íŠ¸ëž˜í”½ì´ ë°ìŠ¤í¬íƒ‘ íŠ¸ëž˜í”½ì„ ì¶”ì›”í•˜ê³ Â ìžˆë‹¤. 2014ë…„ì—ë„ ëŠ˜ì–´ë‚˜ëŠ” 모바ì¼Â ì ìœ ìœ¨ì€Â ë””ìžì´ë„ˆë“¤ì´ ë” ìž‘ì€ í™”ë©´ì—ì„œì˜ ì‚¬ìš©ìž ê²½í—˜(UX)ì„ ìž¬ê³ í•˜ê²Œë” í•  것ì´ë‹¤(물론 ë” ì»¤ì§„ í™”ë©´ë„ ê³ ë ¤í•´ì•¼ í•  것ì´ë‹¤). 모바ì¼ì—ì„œ ì´ìš© 가능한 ì‚¬ìš©ìž ë² ì´ìŠ¤ì— ì ì‘í• Â í•„ìš”ì„±ì€ í•œ íšŒì‚¬ë¥¼Â ì¢€ë” ë¯¼ì²©í•˜ê²Œ, 조ì§ë‚´Â í˜ì‹ ì„ 추ë™ì¼€ë” í•  수 있다.

 

물론 ì‹¤ì œë¡œëŠ”Â ëŒ€ë‹¤ìˆ˜ì˜ íšŒì‚¬ì—서 ’ëª¨ë°”ì¼ í¼ìŠ¤íŠ¸’ê°€ ì ìš©ì´ 잘 안 ë˜ê³  있다. ì ì–´ë„ ì•„ì§ì€ 여전히 ‘ëª¨ë°”ì¼ ì„¸ì»¨ë“œ’ì´ì§€ë§Œ, 반ì‘형과 ì ì‘형웹ì„ 수용한 ê³³ì—서는 투ìžìˆ˜ìµë¥ ì´ í¬ê²Œ 오를 수 있다.

 

3. 여전히 긴 스í¬ë¡¤

2012ë…„ì— ìŠ¤í¬ë¡¤ë§ 웹사ì´íŠ¸ë¥¼ íƒêµ¬í–ˆì„ ì ì—”Â ì•„ì§ ìŠ¤í¬ë¡¤ë§ 웹사ì´íŠ¸ê°€Â ìœ í–‰ì˜ 초기 단계였지만 그 뒤로는 ë§Žì´ ë³´ì¸ë‹¤. 스í¬ë¡¤ë§ì´Â ë§¤ìš° 쉽기 때문ì´ê¸°ë„ 하고, ë””ìžì´ë„ˆë“¤ì´ 모바ì¼ê³¼ 타블렛 ê¸°ê¸°ë“¤ì„ ê³ ë ¤í•˜ê³  ë§ˆìŒ ì†ìœ¼ë¡œ 스í¬ë¡¤(swipe)ì„ ìƒê°í•˜ê¸° 때문ì´ê¸°ë„ 하다.

 

패럴렉스 스í¬ë¡¤(Parallax Scrolling), 가로 스í¬ë¡¤, 컬럼-기반 스í¬ë¡¤, 무한 스í¬ë¡¤ì€ ëª¨ë‘ 2014ë…„ê³¼ 앞으로 ê³„ì† ë” ë³´ê²Œ ë  ê²ƒë“¤ì´ë‹¤. 다만 특히 무한 스í¬ë¡¤ 관련해서 경계할 ì ì´ 몇 가지 있다.

 

4. HTML5 장ì 

HTML5ê°€ 주는 기ì¨ì— 대해 ë‚´ê°€ 떠드는 걸 듣기보다 Codepenì„ ë°©ë¬¸í•´Â ì˜ˆì œë¥¼Â ë”°ë¼í•´ ë³´ë©° ë­ê°€ 가능한지 보길 권한다. 아니면 HTML5ì— CSS3와 jQuery를 잘 ì„žì–´ 만든 창ì˜ë ¥ 있는 ì—ì´ì „ì‹œ 사ì´íŠ¸ë“¤ì„ 보길 바란다.

 

5. HTML5 ë‚˜ìœ ì 

ì´ë¯¸ 나는 웹디ìžì¸ì„ 조악하게 만드는 것, ìžì œë ¥ 없는 ì´ë“¤ì´ ì‚¬ìš©ìž ê²½í—˜ì— ë°˜í•˜ëŠ” 범죄를 저지르는 ê²ƒì— ëŒ€í•´ ìƒì„¸ížˆ 불í‰í•œ ë°” 있다. í•  수 있다는 ê²ƒì´ ê³§ 해야 한다는 ê²ƒì„ ì˜ë¯¸í•˜ì§€ëŠ” 않는다.

 

예를 들어 ë‹¹ì‹ ì˜ í¥ë¯¸ë¡œìš´ 새 웹사ì´íŠ¸ì— 들어가는 ë°ì— 1ë¶„ì´ ê±¸ë¦°ë‹¤ë©´, ‘기다려 주세요’ë¼ëŠ” 로딩 ì•„ì´ì½˜ì´ 아무리 ë²ˆë“œë¥´ë¥´í•´ë„ ê·¸ê±´ ìž˜ëª»ëœ ê²ƒì´ë‹¤. 기다리는 ê²ƒì€ ì–¸ì œë‚˜ 짜ì¦ë‚˜ëŠ” ì¼ì´ë‹¤. 나는 브래드 í”„ë¡œìŠ¤íŠ¸ì˜ “í¼í¬ë¨¼ìŠ¤ëŠ” ë””ìžì¸ì´ë‹¤“ì— ë™ì˜í•œë‹¤.

 

ê¹”ë”í•œ ì‚¬ìš©ìž ê²½í—˜ì„ ì œë¼ê³ Â í”Œëž˜ì‹œ ì‹œì ˆì˜ ë²ˆì§€ë¥´ë¥´í•¨ìœ¼ë¡œ íšŒê·€í•˜ëŠ”Â ê²ƒì€ ì–´ë–¤ ì‹ìœ¼ë¡œë“  ì¼ì–´ë‚˜ì§€ 않기를 바란다.

 

6. 아주 소소한 UX

디테ì¼ì— 주목해 웹사ì´íŠ¸ë¥¼ 다른 것과 구별ë˜ê²Œ 만들 수 있다. 과하지 않게 ê°ê°ì„ 만족시켜주는 메뉴, 트랜지션(transition) 효과, 마우스오버 효과 등 아주 소소한 UX(micro UX) 효과가 웹사ì´íŠ¸ì— 활기를 불어넣어줄 수 있다. 예를 들어 ë°ì¼ë¦¬ ë¹„ìŠ¤íŠ¸ì§€ì˜ ì‚¬ëž‘ìŠ¤ëŸ¬ìš´ 진행 표시기를 ë³´ì‹œë¼.

 

 

7. í…스트를 ë” ì ê²Œ

웹ì— í…스트를 잔뜩 쓰는 ë°©ì‹ì´Â í›¨ì”¬ 줄어드는 듯 하다. ì¼ë¶€ 앱들과 웹사ì´íŠ¸ë“¤ì—서는 ëˆˆì— ë³´ì´ëŠ” í…스트가 ê±°ì˜ ì—†ê³  사용ìžì—게 정보를 전달하기 위해 ì´ë¯¸ì§€ì™€ ì•„ì´ì½˜ì— ì˜ì¡´í•˜ê¸°ë„ 한다.

 

ì¼ë¶€ 사례ì—서는 ì´ ë°©ì‹ì´ 잘 ìž‘ë™í–ˆì§€ë§Œ, ë³´í†µì€ í…스트를 완전히 제거하는 ê²ƒì€ ë³„ë¡œ ë„ì›€ì´ ì•ˆ ë˜ëŠ” 것 같다. 예를 들어 스냅챗(Snapchat) 홈페ì´ì§€ëŠ” 10개가 안 ë˜ëŠ” 단어를 사용하고 ìžˆëŠ”ë° ë°©ë¬¸ê°ë“¤ì´ ì´ê²ŒÂ ë­”지 ì•Œ 수 있으려면 비디오를 ë³´ë„ë¡ ìš”êµ¬í•˜ê³  있다.

 

ì˜ë£Œ 대쉬보드 컨셉

ELI – ì´ëŸ° ì‹ì˜ 배치는 í¬íŠ¸í´ë¦¬ì˜¤ 사ì´íŠ¸ì²˜ëŸ¼ ë³´ì´ê²Œ 한다.

Snapchat

 

8. 최소한ì˜(미니멀한) 네비게ì´ì…˜(메뉴바)

기본만 남긴 네비게ì´ì…˜ì˜ ìœ í–‰ì€ ê³„ì† í¼ì§€ëŠ” 듯 하다. 부분ì ìœ¼ë¡œëŠ” 모바ì¼ìš©ìœ¼ë¡œ 압축ì ì¸ 네비게ì´ì…˜ ë””ìžì¸Â ìˆ˜ìš”ì— ì˜í–¥ 받아, ì•„ì´ì½˜, 롤다운(rolldown), 페ì´ì§€ 스í¬ë¡¤ì„ 내리면 줄어드는 네비게ì´ì…˜ì— í¬ì»¤ìŠ¤ë¥¼ ë‘” 사ì´íŠ¸ë¥¼ ë§Žì´ ë³¼Â ìˆ˜ 있다.

 

미디엄Medium

스마트 홈 

 

9. CSSê°€ ì´ë¯¸ì§€ 대체

CSS를 쓸 수 ìžˆëŠ”ë° ì™œ ì´ë¯¸ì§€ë¥¼ 쓰는가? 매력ì ì¸ CSS ì²´í¬ë°•ìŠ¤ 세트를 ì›ì¹˜ ì•Šì„ ìžê°€ 누구란 ë§ì´ë‡¨?

 

10. 비디오 / 움ì§ì´ëŠ” ë°°ê²½

ì´ê±´Â ë‹¨ì—°ì½” 훨씬 ë” ë§Žì•„ì§ˆÂ ê±°ë¼ ìƒê°í•œë‹¤. ê°€ë””ì–¸ì§€ì˜ Firestormì´ ê·¸ ì¢‹ì€ ì˜ˆë¡œ, 2014ë…„ì—는 (컨í…츠 사ì´íŠ¸ë³´ë‹¤)Â ë¸Œëžœë“œë“¤ì´ ë” ë§Žì´ ë‹¤ì´ë‚˜ë¯¹í•œ ë°°ê²½ì„ í™œìš©í•  ê±°ë¼ ë³¸ë‹¤.

 

The House of Eyewear

 

11. í’부한 컨í…츠 경험

Firestormì—ì„œ ê³„ì† ë˜ëŠ” 것ì´ë‹¤. ì¼ë¶€ 언론 출íŒê³„는 í…스트, ì´ë¯¸ì§€, 비디오, ì¸í„°ëž™í‹°ë¸Œí•œ 기능들, ì ì ˆí•œ 길ì´ì˜ 스í¬ë¡¤ ë“±ì„ ì„žì€Â ì˜¨ë¼ì¸ 컨í…츠 경험 관련 쪽으로 ì´ë™í•´ 가고 있다.

 

ESPN’s Grantland

 

12. í•œ 페ì´ì§€ë¥¼Â ìµœëŒ€í•œÂ ì‚¬ìš©

ì ì  ë§Žì€ ì‚¬ì´íŠ¸ë“¤ì´ 새로운 페ì´ì§€ë¥¼ 로딩하는 ê²ƒì„ í”¼í•˜ëŠ” 대신 현재 페ì´ì§€ì— ë‚´ìš©ì„ ì¶”ê°€ì ìœ¼ë¡œ 보여주는 걸 선호하고 있다. ë¼ì´íŠ¸ë°•ìŠ¤, 오버레ì´, 확대/위치가 바뀌는 타ì¼ì€ ëª¨ë‘ í‰ê· ì ì¸ 사용ìžì˜ íƒìƒ‰ì—ì„œ í´ë¦­ 수를 줄여줄 수 있다.

 

Stories by H&M 

 

13. 다양해진 타ì´í¬ê·¸ë¼í”¼

웹í°íŠ¸ê°€ ë¶€ìƒ ì¤‘ì´ê³ , ë””ìžì´ë„ˆë“¤ì€ ì „ì— ì—†ì´ í° í°íŠ¸ë¥¼ 좋아하며 여러 í°íŠ¸ë¥¼ ì„žì–´ 매치하는 게 유행하고 있다. ë§ë¶™ì—¬Â ë°˜ì‘형 타ì´í¬ê·¸ë¼í”¼ëŠ” ë°˜ì‘형 웹디ìžì¸ì—ì„œ í° ë¶€ë¶„ì„ ì°¨ì§€í•´ì•¼ 한다.

 

14. 단색 ë””ìžì¸

2ê°œ 색ìƒê³¼ ê·¸ 색조로 충분할 ê²ƒì— ì™œ 3 가지 ìƒ‰ì„ ì“°ëŠ”ê°€? 최근 매력ì ì¸ ë‹¨ìƒ‰ì¡°ì˜ íŒ”ë ˆíŠ¸ë“¤ì„ ì¢€Â ë³´ì•˜ë‹¤.

 

Qatar Airways 

 

15. 다양한 색들

다시, ë¬´ì§€ê°œìƒ‰ì„ ë‹¤ 쓸 수 ìžˆëŠ”ë° ì™œ 2가지 ìƒ‰ì„ ì“°ëŠ”ê°€? 여러 ìƒ‰ì„ ì“´ë‹¤ê³  í•´ì„œ ê¼­ 현란하거나 ì§‘ì¤‘ì„ ë°©í•´í•˜ëŠ” ê±´ 아니다. 다색 ë””ìžì¸ì€ 특히 플랫 ë””ìžì¸ê³¼ 잘 어울리는 듯 하다.

 

컬러풀한 웹사ì´íŠ¸ì™€ ì•±ì„ í•œ 번 보시길.

 

Coloured Lines

 

16. ì¹´ë“œ/타ì¼

ë‚˜ì¤‘ì— ìƒìˆ í•  ìƒê°ì´ì§€ë§Œ ì¼ë‹¨ 왜 카드가 ‘ì›¹ì˜ ë¯¸ëž˜’ì¸ì§€ì— 대한 ê°œê´€ì„ ë³´ì‹œê¸¸. 나는 카드가 과거ì´ë©° 현재ì´ê¸°ë„ 하다고 ìƒê°í•˜ê²Œ ë다.

 

Etch

Pravda

Silktricky

 

17. ë” í¬ê³  ë” ì¢‹ì€ ì´ë¯¸ì§€í™”

í…ìŠ¤ì³ íŒ¨í„´ì— ë°˜ëŒ€ë˜ëŠ” 커다란 사진과 ë°°ê²½ ì´ë¯¸ì§€ê°€Â ì ì  ì¼ë°˜í™”ë˜ëŠ” 듯 í•œë°, 확실히 레티나 디스플레ì´ì—ì„œ 좋아 ë³´ì¸ë‹¤. Awwwardsì˜ ìµœì‹  ‘ì˜¤ëŠ˜ì˜ ì‚¬ì´íŠ¸’ 갤러리를 ë³´ë©´ 무슨 뜻ì¸ì§€ ì•Œ 것ì´ë‹¤.

 

언론 ì¶œíŒ ìª½ë„ ì „ë¡€ ì—†ì´ í° ì´ë¯¸ì§€ë“¤ì„ ì“°ê³  있다

 

Protest

 

18. 위치가 ê³ ì •ëœ ë‚´ìš©/네비게ì´ì…˜

스í¬ë¡¤ì„ ë‚´ë ¸ì„ ë•Œ 네비게ì´ì…˜(ì´ë‚˜ 다른 컨í…츠 박스)ì´ íŽ˜ì´ì§€ì— ê³ ì •ë˜ì–´ 있는 경우를 ë§í•œë‹¤. 네비게ì´ì…˜ì˜ 높ì´ê°€ 짧아질 ë•Œë„ ìžˆê³ Â í™•ëŒ€ë  ìˆ˜ 있는 ìž‘ì€ ì•„ì´ì½˜ì´ ë Â ë•Œë„ 있다. 새로 ë””ìžì¸ë˜ëŠ” 웹사ì´íŠ¸ë“¤ì—ì„œ í”히 ë³´ì´ë°, 예를 들어 Awwwards를 ê³„ì† ë³´ìž.

 

 

출처 : http://blog.jinbo.net/taiji0920/2778

2014ë…„ 1ì›” 21ì¼
by aduris
0 comments

S/W 설계 변경전 ë”°ì ¸ë´ì•¼í•  가치

2013ë…„ 12ì›” 2ì¼
by aduris
0 comments

2014년 주목할 만한 10대 전략 기술

시장조사전문업체 가트너가 2014ë…„ 주목할 만한 10대 ì „ëžµ 기술ì„ 10ì›”8ì¼(현지기준) 올랜ë„ì—ì„œ ì§„í–‰ëœ â€˜ê°€íŠ¸ë„ˆ 심í¬ì§€ì—„/ITì—‘ìŠ¤í¬ 2013′ 행사ì—서 발표했다.

가트너는 매년 10ì›”, 향후 ê¸°ì—…ë“¤ì´ ë¹„ì¦ˆë‹ˆìŠ¤ë¥¼ í•˜ëŠ”ë° ìžˆì–´ 중요한 ì˜í–¥ì„ ë¼ì¹ ì§€ 모르는 ìž ìž¬ë ¥ì„ ê°€ì§„ ‘전략기술’ 10가지를 소개한다. ì˜¬í•´ë„ ì–´ê¹€ì—†ì´ í–¥í›„ 미래를 ë°íž ê¸°ìˆ ì— ëŒ€í•´ 발표했다.

올해 가트너가 ê¼½ì€ 2014ë…„ 전략기술ì€Â â–²ë‹¤ì–‘í•œ ëª¨ë°”ì¼ ê¸°ê¸° 관리 â–²ëª¨ë°”ì¼ ì•±ê³¼ 애플리케ì´ì…˜ ▲만물ì¸í„°ë„· ▲하ì´ë¸Œë¦¬ë“œ í´ë¼ìš°ë“œì™€ 서비스 ë¸Œë¡œì»¤ë¡œì„œì˜ IT â–²í´ë¼ìš°ë“œ/í´ë¼ì´ì–¸íŠ¸ 아키í…처 â–²í¼ìŠ¤ë„ í´ë¼ìš°ë“œì˜ 시대 ▲소프트웨어 ì •ì˜ â–²ì›¹ìŠ¤ì¼€ì¼ IT ▲스마트 머신 â–²3D 프린팅 등ì´ë‹¤.

2011년부터 2014년까지 가트너가 선정한 10대 전략기술

2011ë…„ 2012ë…„ 2013ë…„ 2014ë…„
1. í´ë¼ìš°ë“œ 컴퓨팅 미디어 태블릿 ê·¸ ì´í›„ ëª¨ë°”ì¼ ëŒ€ì „ 다양한 ëª¨ë°”ì¼ ê¸°ê¸° 관리
2. ëª¨ë°”ì¼ ì•±ê³¼ 미디어 태블릿 ëª¨ë°”ì¼ ì¤‘ì‹¬ 애플리케ì´ì…˜ê³¼ ì¸í„°íŽ˜ì´ìŠ¤ ëª¨ë°”ì¼ ì•±&HTML5 ëª¨ë°”ì¼ ì•±ê³¼ 애플리케ì´ì…˜
3. 소셜 커뮤니케ì´ì…˜ ë° í˜‘ì—… ìƒí™©ì¸ì‹ê³¼ ì†Œì…œì´ ê²°í•©ëœ ì‚¬ìš©ìž ê²½í—˜ í¼ìŠ¤ë„ í´ë¼ìš°ë“œ 만물ì¸í„°ë„·
4. 비디오 사물ì¸í„°ë„· 사물ì¸í„°ë„· 하ì´ë¸Œë¦¬ë“œ í´ë¼ìš°ë“œì™€ 서비스 ë¸Œë¡œì»¤ë¡œì„œì˜ IT
5. 차세대 ë¶„ì„ ì•±ìŠ¤í† ì–´ì™€ 마켓 플레ì´ìŠ¤ 하ì´ë¸Œë¦¬ë“œIT&í´ë¼ìš°ë“œ 컴퓨팅 í´ë¼ìš°ë“œ/í´ë¼ì´ì–¸íŠ¸ 아키í…ì³
6. 소셜 ë¶„ì„ ì°¨ì„¸ëŒ€ ë¶„ì„ ì „ëžµì  ë¹…ë°ì´í„° í¼ìŠ¤ë„ í´ë¼ìš°ë“œì˜ 시대
7. ìƒí™©ì¸ì‹ 컴퓨팅 ë¹…ë°ì´í„° ì‹¤ìš©ë¶„ì„ ì†Œí”„íŠ¸ì›¨ì–´ ì •ì˜
8. 스토리지급 메모리 ì¸ë©”모리 컴퓨팅 ì¸ë©”모리 컴퓨팅 ì›¹ìŠ¤ì¼€ì¼ IT
9. 유비쿼터스 컴퓨팅 저전력 서버 통합 ìƒíƒœê³„ 스마트 머신
10. 패브릭 기반 컴퓨팅 ë° ì¸í”„ë¼ìŠ¤íŠ¸ëŸ­ì²˜ í´ë¼ìš°ë“œ 컴퓨팅 엔터프ë¼ì´ì¦ˆ 앱스토어 3D 프린팅

겉보기엔 모바ì¼, ë¹…ë°ì´í„°, í´ë¼ìš°ë“œë¥¼ ê°•ì¡°í–ˆë˜ 2013ë…„ê³¼ í¬ê²Œ 다르지 ì•Šì•„ ë³´ì¸ë‹¤. ë¹…ë°ì´í„° 분야 ë‚´ìš©ì´ ë¹ ì§€ê³  소프트웨어 ì •ì˜ì™€ 3D í”„ë¦°íŒ…ì´ ìƒˆë¡œì´ ì´ë¦„ì„ ì˜¬ë ¸ë‹¤. 사물ì¸í„°ë„·ì€ 만물ì¸í„°ë„·ìœ¼ë¡œ ‘ì¸í„°ë„·ì— ì—°ê²°ëœ ê¸°ê¸°â€™ì—ì„œ ‘ì¸í„°ë„·ì— ì—°ê²°ëœ í”Œëž«í¼â€™ìœ¼ë¡œ ê°œë…ì„ í™•ìž¥í–ˆë‹¤.

모바ì¼ê³¼ í´ë¼ìš°ë“œëŠ” 2ë…„ ì—°ì† ì£¼ëª©í•´ì•¼ í•  10대 전략기술로 ì„ ì •ë다. í¼ìŠ¤ë„ í´ë¼ìš°ë“œì™€ 하ì´ë¸Œë¦¬ë“œ í´ë¼ìš°ë“œ, í¼ë¸”릭 í´ë¼ìš°ë“œ, ëª¨ë°”ì¼ ë‹¤ì–‘ì„±, ëª¨ë°”ì¼ ê´€ë¦¬, ëª¨ë°”ì¼ ì• í”Œë¦¬ì¼€ì´ì…˜ 등으로 ê°œë…ì„ êµ¬ì²´í™”í–ˆë‹¤.

david cearley gartner 2014

매년 특정 ê¸°ìˆ ì„ ê°•ì¡°í–ˆë˜ ì§€ë‚œí•´ì™€ 달리 올해 가트너는 소셜과 모바ì¼, í´ë¼ìš°ë“œ, ì •ë³´ì˜ í†µí•©ì„ ëª¨ë‘ ì•„ìš°ë¥¼ 수 있는 ‘디지털 ì‚°ì—… 경제’를 강조했다. ì´ë²ˆì— 가트너가 ì„ ì •í•œ 2014ë…„ 10대 ì „ëžµ ê¸°ìˆ ì€ ë””ì§€í„¸ ì‚°ì—… ê²½ì œì— ë¿Œë¦¬ë¥¼ ë‘ê³  있다.

ë°ì´ë¹„ë“œ 시어리 가트너 수ì„ë¶€ì‚¬ìž¥ì€ â€œì†Œì…œê³¼ 모바ì¼, í´ë¼ìš°ë“œ, ì •ë³´ê°€ 서로 ìœµí•©ë¼ ë§Œë“¤ì–´ì§€ëŠ”Â â€™íž˜ì˜ ê²°í•©â€™ì„ ì£¼ëª©í•  필요가 있다â€ë¼ë©° â€œê° íž˜ì„ â€˜ëª¨ì´ëŠ” 힘’, ‘파ìƒë˜ëŠ” 충격’, ‘미래 혼란’으로 나눠 분류했다â€ë¼ê³  ë§í–ˆë‹¤.

ë°ì´ë¹„ë“œ ìˆ˜ì„ ë¶€ì‚¬ìž¥ì´ ë¶„ë¥˜í•œ 10대 ì „ëžµ ê¸°ìˆ ì€ ë‹¤ìŒê³¼ 같다.

gartner 2014 main

모ì´ëŠ” 힘(Converging Forces)

1. 다양한 ëª¨ë°”ì¼ ê¸°ê¸°ì˜ ê´€ë¦¬

가트너는 2018ë…„ì´ ë˜ë©´ 다양한 기기와 컴퓨팅 스타ì¼, ì‚¬ìš©ìž í™˜ê²½ì´ ë“±ìž¥í•  것ì´ë¼ê³  내다봤다. ì´ë ‡ê²Œ 다양한 기기가 등장하면 ‘언제, 어디서나’ 서로 소통할 수 있는 시대가 열릴 것으로 ì „ë§í–ˆë‹¤. ì´ ê³¼ì •ì„œ ìžì‹ ì˜ 기기로 업무를 보는 BYOD ì‚¬ë¡€ë„ ëŠ˜ì–´ë‚  것으로 예측했다.

가트너는 ì§ì› ì†Œìœ ì˜ ê¸°ê¸°ì— ëŒ€í•´ì„œë„ íšŒì‚¬ê°€ 관리할 수 있는 ëª¨ë°”ì¼ ê¸°ê¸° 관리 ì‹œìŠ¤í…œì„ ì¤€ë¹„í•  필요가 있다고 강조했다. 사내 네트워í¬ì— ì ‘ì†ëœ 기기 정보를 파악하고 제어할 수 있어야 한다.

gartner_Converging Forces_2

2. ëª¨ë°”ì¼ ì•±ê³¼ 애플리케ì´ì…˜

가트너는 2014ë…„ì´ ë˜ë©´ ìžë°”스í¬ë¦½íŠ¸ ê¸°ë°˜ì˜ HTML5를 지ì›í•˜ëŠ” 애플리케ì´ì…˜ì´ 늘어날 것으로 ë³´ê³  있다. HTML5는 ì´ì „ HTMLê³¼ 달리 사진ì´ë‚˜ ë™ì˜ìƒ ê°™ì€ ì½˜í…츠를 지ì›í•˜ëŠ” 게 특징ì´ë‹¤. 가트너는 개발ìžë“¤ì´ ì´ ì ì„ 십분 ì‚´ë ¤ ìŒì„±ê³¼ 비디오 ê¸°ëŠ¥ì— ìµœì í™”ëœ ë‹¤ì–‘í•œ ì•±ì„ ì„ ë³´ì¼ ê²ƒìœ¼ë¡œ 예ìƒí•œë‹¤. 좀 ë” ë™ì ì¸ 애플리케ì´ì…˜ì´ 등장할 것으로 기대ëœë‹¤.

gartner_Converging Forces_5

3. 만물ì¸í„°ë„·

PC와 ëª¨ë°”ì¼ ê¸°ê¸°ë¥¼ 넘어 다양한 ê¸°ê¸°ì— ì¸í„°ë„·ì´ ì—°ê²°ë  ì˜ˆì •ì´ë‹¤. ìžë™ì°¨ë‚˜ TV와 ê°™ì€ ì†Œë¹„ìž ìƒí’ˆë„ ì¸í„°ë„·ì— ì—°ê²°ëœë‹¤. 가트너는 ëŒ€ë¶€ë¶„ì˜ ê¸°ì—…ê³¼ 기술 공급업체가 만물ì¸í„°ë„· 시대를 준비하고 있으며, ì´ ìƒˆë¡œìš´ ì‚°ì—…ì„ ì–´ë–»ê²Œ 발전시켜 수ìµì„ ì–»ì„ ê²ƒì¸ì§€ë¥¼ 고민중ì´ë¼ê³  지ì í–ˆë‹¤.

모든 ì œí’ˆì´ ë””ì§€í„¸í™” ë˜ë©´ 수집해서 분ì„í•  수 있는 ì •ë³´ì˜ ì–‘ë„ ë§Žì•„ì§„ë‹¤. ì°½ì¶œëœ ì •ë³´ë¥¼ 바탕으로 ë˜ ë‹¤ë¥¸ 수ìµì„ 만들 수 있다.

gartner_Converging Forces_6

4. 하ì´ë¸Œë¦¬ë“œ í´ë¼ìš°ë“œì™€ 서비스 ë¸Œë¡œì»¤ë¡œì„œì˜ IT

가트너는 최근 ê¸°ì—…ì´ ì‚¬ë‚´ 정보를 보관하기 위한 프ë¼ì´ë¹— í´ë¼ìš°ë“œì™€ 함께 애플리케ì´ì…˜ ìš´ì˜ì„ 위한 í¼ë¸”릭 í´ë¼ìš°ë“œë¥¼ ë™ì‹œì— ì´ìš©í•˜ê³  있다고 보았다. ì´ ê³¼ì •ì—ì„œ 가트너가 눈여겨 본 ì ì€ 프ë¼ì´ë¹— í´ë¼ìš°ë“œì™€ í¼ë¸”릭 í´ë¼ìš°ë“œ ê°„ ìƒí˜¸ìš´ìš©ì„±ì´ë‹¤. 가트너는 ê° í´ë¼ìš°ë“œê°€ ê°ìž ë”°ë¡œ ìš´ì˜ë˜ëŠ” 게 ì•„ë‹Œ, ë™ì¼í•œ ì •ì±…ì— ë”°ë¼ ê´€ë¦¬í•˜ëŠ” 하ì´ë¸Œë¦¬ë“œ í´ë¼ìš°ë“œê°€ 중요하다고 강조한다.

gartner_Converging Forces_10

파ìƒë˜ëŠ” 충격(Derivative Impact)

5. í´ë¼ìš°ë“œ/í´ë¼ì´ì–¸íŠ¸ 아키í…처

í´ë¼ìš°ë“œì™€ í´ë¼ì´ì–¸íŠ¸ 시스템 í™˜ê²½ì´ ë³€í•˜ê³  있다. 과거 í´ë¼ìš°ë“œëŠ” 비êµì  ëœ ì¤‘ìš”í•œ 애플리케ì´ì…˜ì„, í´ë¼ì´ì–¸íŠ¸ê°€ 중요한 애플리케ì´ì…˜ì„ ìš´ì˜í•˜ëŠ” 편ì´ì˜€ë‹¤ë©´ ìš”ì¦˜ì€ ë‹¤ë¥´ë‹¤. 가트너는 í´ë¼ìš°ë“œì—ì„œë„ í´ë¼ì´ì–¸íŠ¸ì—ì„œ ìš´ì˜ë˜ë˜ 핵심 애플리케ì´ì…˜ì„ 실행시키기 위해 서버와 스토리지 분야ì—ì„œ 다양한 ê¸°ìˆ ì´ ì‚¬ìš©ë˜ê³  있다고 보았다.

Derivative Impact_gartner_1

6. í¼ìŠ¤ë„ í´ë¼ìš°ë“œì˜ 시대

ê°œì¸ìš© í´ë¼ìš°ë“œ 시대는 사용ìžê°€ 언제든지 ìžì‹ ì´ 사용하는 기기를 ì†ì‰½ê²Œ 바꿀 수 있다는 걸 ì˜ë¯¸í•œë‹¤. 특정 ì •ë³´ê°€ 특정 ê¸°ê¸°ì— ì¢…ì†ë˜ì§€ 않기 때문ì´ë‹¤. PCë„ ë§ˆì°¬ê°€ì§€ë‹¤. ë” ì´ìƒ PC ì•ˆì— ì •ë³´ë¥¼ 저장하지 ì•Šê³ , í¼ìŠ¤ë„ í´ë¼ìš°ë“œ ìŠ¤í† ë¦¬ì§€ì— ì €ìž¥í•˜ê²Œ ëœë‹¤.

Derivative Impact_gartner_2

7. 소프트웨어 ì •ì˜

소프트웨어 ì •ì˜ ë„¤íŠ¸ì›Œí¬(SDN), 소프웨어 ì •ì˜ ë°ì´í„°ì„¼í„°(SDDC), 소프트웨어 ì •ì˜ ìŠ¤í† ë¦¬ì§€(SDS), 소프트웨어 ì •ì˜ ì¸í”„ë¼(SDI) 등 í´ë¼ìš°ë“œ ì»´í“¨íŒ…ì´ ë“±ìž¥í•˜ë©´ì„œ 소프트웨어로 기기 í™˜ê²½ì„ ì œì–´í•˜ëŠ” 움ì§ìž„ì´ ì»¤ì§€ê³  있다. 오픈스íƒì´ë‚˜ 오픈플로우 ê°™ì€ ì»¤ë®¤ë‹ˆí‹°ë“¤ì´ ì´ë¥¼ 지ì›í•˜ê³  있다. 소프트웨어 ì •ì˜ê°€ ìžë¦¬ìž¡ìœ¼ë©´Â ë‹¤ì–‘í•œ ìžì›ì„ í”„ë¡œê·¸ëž¨ì„ í†µí•´ í•œêº¼ë²ˆì— ê´€ë¦¬í•  수 있어 비용 ì ˆê° íš¨ê³¼ê°€ 기대ëœë‹¤.

Derivative Impact_gartner_3

8. 웹 ìŠ¤ì¼€ì¼ IT

웹 ìŠ¤ì¼€ì¼ IT는 아마존, 구글, 페ì´ìŠ¤ë¶, 등 대형 í´ë¼ìš°ë“œ 서비스 ì œê³µì—…ì²´ë“¤ì˜ í´ë¼ìš°ë“œ ìš´ì˜ ë°©ì‹ì„ ì¼ì»«ëŠ”다. ì´ë“¤ì€ ìžì‹ ë“¤ì˜ ì¸í„°ë„· 서비스를 ë” ë¹ ë¥´ê³  ì‹ ì†í•˜ê²Œ 전달하기 위해 ë°ì´í„°ì„¼í„°ë¥¼ 짓고 í´ë¼ìš°ë“œë¥¼ ìš´ì˜í•œë‹¤. ì´ë“¤ì´ 만드는 웹지향 아키í…처는 개발ìžê°€ 장애를 ë” ë¹ ë¥´ê²Œ 복구하며, 유연하고 탄력ì ì¸ ì‹œìŠ¤í…œì„ êµ¬ì¶•í•  수 있게 ë•ëŠ”다. ì´ë“¤ 회사는 웹 ìŠ¤ì¼€ì¼ IT를 구현하기 위해 서버, 스토리지, ë„¤íŠ¸ì›Œí¬ ë“± ê° êµ¬ì„± 요소를 최ì í™”í•´ ìš´ì˜í•œë‹¤.

Derivative Impact_gartner_4

미래 혼란(Future Disruption)

9. 스마트 머신

2020ë…„ì´ ë˜ë©´ 스마트 ê¸°ê¸°ì˜ ì‹œëŒ€ê°€ ë  ê²ƒìœ¼ë¡œ ë³´ì¸ë‹¤. 시리와 ê°™ì€ ì§€ëŠ¥í˜• 비서, 사람과 비슷하게 ìƒê°í•  줄 아는 ì¸ê³µì§€ëŠ¥ ‘왓슨’과 ê°™ì€ ì‚¬ë¡€ë“¤ì´ ë”ìš± í’부해질 것ì´ë‹¤.

Future Disruption_gartner_1

10. 3D 프린팅

2014ë…„ 3D í”„ë¦°í„°ì˜ ì¶œí•˜ëŸ‰ì€ ì§€ê¸ˆë³´ë‹¤ 75% ì¦ê°€í•˜ê³ , 2015ë…„ì´ ë˜ë©´ 200% 성장할 것으로 ë³´ì¸ë‹¤. 3D 프린터를 ì´ìš©í•œ 맞춤형 제조 시대가 열릴 것으로 ë³´ì¸ë‹¤.

Future Disruption_gartner_3

//

► 관련 기사

∙ 가트너가 ê¼½ì€ â€™2013ë…„ 10대 전략기술’

2013ë…„ 10ì›” 25ì¼
by aduris
0 comments

Parallax Scrolling

1. Parallax Scrollingì´ëž€?

 

1940년대부터 전통ì ì¸ 애니메ì´ì…˜ì´ë‚˜ 게임ì—ì„œ 사용ëë˜ ê¸°ë²•ìœ¼ë¡œ í™”ë©´ì„ êµ¬ì„±í•˜ëŠ” ë°°ê²½ì´ë¯¸ì§€ë“¤ê³¼

기타 ì´ë¯¸ì§€ë“¤ê°„ì˜ ì›€ì§ìž„ì´ë‚˜ ë™ìž‘ ì‹œê°„ì„ ë‹¤ë¥´ê²Œ 주어 스í¬ë¡¤ì´ ë  ìˆ˜ 있ë„ë¡ í•˜ëŠ” ë””ìžì¸ 표현 기법입니다.

Parallax(시차 : 관측 ìœ„ì¹˜ì— ë”°ë¥¸ ë¬¼ì²´ì˜ ìœ„ì¹˜ë‚˜ ë°©í–¥ì˜ ì°¨ì´)ì˜ ëœ»ì—ì„œë„ ë³¼ 수 ìžˆë“¯ì´ ë¬¼ì²´ì˜ ìœ„ì¹˜ì™€ ë°©í–¥ì˜ ì°¨ì´ë¡œ

사용ìžì—게 í‰ë©´ì ì¸ 웹사ì´íŠ¸ê°€ ì•„ë‹ˆë¼ ë§ˆì¹˜ ì‚´ì•„ 숨쉬는 듯한 ëŠë‚Œì˜ 웹사ì´íŠ¸ë¥¼ 제공할 수 있습니다.

 

 

2. 등장배경 

 

ì›ëž˜ëŠ” 애니메ì´ì…˜ì´ë‚˜ 게임ì—ì„œ ì‚¬ìš©í•˜ë˜ ê¸°ë²•ìœ¼ë¡œ ì˜ˆì „ì— PC나 게임기ì—ì„œ í•˜ë˜ ë§ˆë¦¬ì˜¤ì™€ ê°™ì€ ê²Œìž„ì„ ì˜ˆë¡œ 들 수 있습니다.

 

마리오 ê²Œìž„ì„ ë³´ë©´ 배경과 ë°°ê²½ 외 다른 오브ì íŠ¸ë“¤(마리오, 장애물, ì•„ì´í…œìƒìž 등)ë¡œ 구성ë˜ì–´ 있습니다.
마리오가 앞으로 진행 ì‹œ 배경과 다른 오브ì íŠ¸ë“¤ì˜ ë™ìž‘ 방향과 ë™ìž‘ ì‹œê°„ì˜ ì°¨ì´ë¥¼ ë‘ê³  있습니다.
ì´ ë•Œë¬¸ì— ì‚¬ìš©ìžëŠ” ì—°ì†ì„±ì„ 제공하여 ìºë¦­í„°ë¥¼ ë™ìž‘시키면 ê²Œìž„ì„ ì§„í–‰í•  수 있습니다.
ì›¹ì˜ ë°œì „ê³¼ ì‹œê°ì ìœ¼ë¡œ ë›°ì–´ë‚œ ì›¹ì„ ìš”êµ¬í•˜ëŠ” 사용ìžë“¤ì´ ì¦ê°€í•¨ì— ë”°ë¼ ì›¹ì‚¬ì´íŠ¸ì—ì„œë„ ì´ëŸ¬í•œ ê¸°ë²•ì„ ì‚¬ìš©í•˜ë ¤ê³  노력했습니다.
그러나 몇 ë…„ 전까지만 í•´ë„ HTMLê³¼ CSS만으로 í•œê³„ì— ë´‰ì°©í•˜ì˜€ìŠµë‹ˆë‹¤.
그리하여 Adobeì‚¬ì˜ Flash를 통해 Parallax Scrolling ê¸°ë²•ì„ ì‚¬ìš©í•˜ê³¤ 하였습니다.
최근ì—는 다양한 ëª¨ë°”ì¼ ê¸°ê¸°ì˜ ë°œì „ê³¼ 여러 보안ìƒì˜ 문제ì ë“¤ë¡œ ì¸í•˜ì—¬Â ActiveX나 Flash와 ê°™ì€ í”ŒëŸ¬ê·¸ì¸ì„ 배제하려는 노력하고 있으며,
ì´ì™€ 함께 HTML5와 CSS3, Javascript, Javascript library ë“±ì˜ ë°œì „í•˜ì—¬Â Flash를 대체하여 êµ¬í˜„ì´ ê°€ëŠ¥í•˜ê²Œ ë˜ì—ˆìŠµë‹ˆë‹¤.
위와 ê°™ì€ ìƒí™©ìœ¼ë¡œ 기업ì´ë‚˜ 서비스 제공ìžê°€ 제약ì ì¸ 환경ì—ì„œ 벗어나 사용ìžë‚˜ 소비ìžì—게 좀
ë” ë‹¤ì´ë‚˜ë¯¹í•˜ê³  ì‹œê°ì ìœ¼ë¡œ ë›°ì–´ë‚œ 효과들, 다양한 디바ì´ìŠ¤ì—ì„œì˜ ì§€ì›, 여러가지 마케팅 효과 ë“±ì„ ì–»ê¸° 위해
본격ì ìœ¼ë¡œ Parallax Scrolling ê¸°ë²•ì„ ì‚¬ìš©í•˜ê²Œ ë˜ì—ˆìŠµë‹ˆë‹¤.
3. 사용유형
Parallax Scrolling ê¸°ë²•ì„ ë³´ë©´ 사용ìžê°€ 웹페ì´ì§€ì—ì„œ ë§ˆìš°ìŠ¤ì˜ ìŠ¤í¬ë¡¤ ë˜ëŠ” í‚¤ë³´ë“œì˜ ë°©í–¥í‚¤ë¥¼ 통해 í™”ë©´ì„ ì œì–´í•˜ë„ë¡ í•˜ê³  있습니다.
ì´ëŸ° ê¸°ëŠ¥ì„ í†µí•´ 기업ì´ë‚˜ 서비스 제공ìžê°€ 사용ìžì˜ ì‹œì„ ì„ ìœ ë„하거나 호기심 유발 등과 ê°™ì€ íš¨ê³¼ë¥¼ 줄 수 있습니다.
그렇기 ë•Œë¬¸ì— ë‹¤ìŒê³¼ ê°™ì€ ìœ í˜•ì— ë§Žì´ ì‚¬ìš©í•˜ê³  있습니다.
  • 제품설명
  • 기업 ê´‘ê³ 
  • 스토리텔ë§
  • 스토리를 가진 브랜드 ê´‘ê³ 
  • 회사소개

 

4. 장/단ì 

Parallax Scrollingì„ ì‚¬ìš©í•¨ìœ¼ë¡œ 장/단ì ì€ 다ìŒê³¼ 같습니다.

 

- 장ì 

  • 페ì´ì§€ 컨í…츠를 소비하지 ì•ŠìŒ -> í•œ 페ì´ì§€ë¡œ 구성 가능.
  • 컨í…ì¸ ì— ë”°ë¼ ì‚¬ìš©ìžì˜ ì‹œì„ ì„ ì„œë¹„ìŠ¤ 제공ìžê°€ ì›í•˜ëŠ” 방향으로 ì´ëŒìˆ˜ 있ìŒ.
  • 단순히 마우스 스í¬ë¡¤ ë¿ë§Œì´ ì•„ë‹ˆë¼ í‚¤ë³´ë“œì˜ ë°©í–¥í‚¤ ë“±ì„ í†µí•´ 다양하고 새로운 ì‚¬ìš©ìž ê²½í—˜ì„ ì´ëŒì–´ 낼 수 있ìŒ.
  • ë””ìŠ¤í”Œë ˆì´ í¬ê¸°ì— ì˜í–¥ë°›ì§€ ì•Šê³  효과ì ìœ¼ë¡œ 컨í…츠를 전달할 수 있ìŒ

- 단ì 

  • 컨í…츠가 가로 ë˜ëŠ” 세로로 너무 길 ë•Œ, 사용ìžê°€ 지루함ì´ë‚˜ ë¶ˆíŽ¸í•¨ì„ ëŠë‚„ 수 있ìŒ.
  • í•˜ë‚˜ì˜ íŽ˜ì´ì§€ë¡œ 구성 ì‹œ ë§Žì€ ë¦¬ì†ŒìŠ¤ê°€ 필요하기 ë•Œë¬¸ì— ì´ˆê¸° 로딩ì†ë„ê°€ ëŠë¦´ 수 있ìŒ.
  • 컨í…ì¸ ì˜ ì–‘ì´ ë§Žì„ ê²½ìš° 화면 êµ¬ì„±ì´ ë³µìž¡í•´ì§ˆ 수 있ìŒ.
  • ëª¨ë°”ì¼ ë“±ì˜ ê¸°ê¸°ì—ì„œ 처리 문제가 남아 있ìŒ.

5. 국내외 사례

- êµ­ë‚´

- 해외

6. 마치며…
Parallax Scrollingì— ëŒ€í•´ì„œ 조사하면서 ëŠë‚€ ì ì€ ì•„ì§ê¹Œì§€ëŠ” 국내보다는 
해외ì—ì„œ 화려하면서 편리한 ì‚¬ìš©ìž ê²½í—˜ì„ ì´ëŒì–´ 내기 위한 ë…¸ë ¥ì„ ë§Žì´ ìžˆë‹¤ëŠ” ê²ƒì„ ëŠê¼ˆìŠµë‹ˆë‹¤. 
Parallax Scrollingê³¼ ê°™ì€ ê¸°ë²•ì„ ì‚¬ìš©í•  수 있는 ìœ í˜•ì´ ê±°ì˜ ì •í•´ì ¸ 있지만 
우리나ë¼ì—ì„œë„ ì´ëŸ° 기법ì´ë‚˜ 새로운 ì‚¬ìš©ìž ê²½í—˜ì„ ì´ëŒì–´ 낼 수 있는 ë…¸ë ¥ì´ í•„ìš”í•  것 같습니다. 
ë˜í•œ Parallax Scrolling ê¸°ë²•ì„ ì‚¬ìš© ì‹œ 초기로딩 ì†ë„ 문제나 화면 전환시 ëŠê¹€ê³¼ ê°™ì€ ì„±ëŠ¥ 문제를 야기할 수 있습니다. 
ì´ëŸ° 성능 ë¬¸ì œì— ëŒ€í•´ì„œëŠ” Minify와 Gzip, Javascript Loader 나 화면 ì „í™” ì‹œ Ajax를 통한 Append 등 
여러 성능 개선 ë…¸ë ¥ë“±ì„ í†µí•´ 충분히 ê°œì„ ì´ ê°€ëŠ¥í•  것ì´ë¼ê³  íŒë‹¨í•©ë‹ˆë‹¤. 
해당 ê¸°ë²•ë§Œì´ ì•„ë‹Œ 사용ìžì—게 좀 ë” íŽ¸ë¦¬í•˜ë©´ì„œ ì‹œê°ì ìœ¼ë¡œ ë›°ì–´ë‚œ ë””ìžì¸ ê¸°ë²•ì— ëŒ€í•œÂ 
ë…¸ë ¥ì´ í•„ìš”í•  것 같습니다. 

Parallax Scrollingì— ëŒ€í•œ ì´ë¡ ë§Œ 다루었습니다.

ì¶”í›„ì— ê¸°íšŒê°€ ëœë‹¤ë©´ 다양한 예제를 통해 다시 한번 다루ë„ë¡ í•´ë³´ê² ìŠµë‹ˆë‹¤.

ê°ì‚¬í•©ë‹ˆë‹¤.

 

※ 참고 ìžë£Œ

[1] http://en.wikipedia.org/wiki/Parallax_scrolling

[2] http://designbyforest.tistory.com/entry/%ED%8C%A8%EB%9F%B4%EB%A0%89%EC%8A%A4-%EC%8A%A4%ED%81%AC%EB%A1%A4Parallax-Scrolling

[3] http://sir.co.kr/bbs/board.php?bo_table=pl_talk&wr_id=4187

[4] http://www.kirasung.co.kr/tc/entry/%EC%B5%9C%EC%8B%A0-%EC%9B%B9-%ED%8A%B8%EB%9E%9C%EB%93%9C-_-%ED%8C%A8%EB%9F%B4%EB%9E%99%EC%8A%A4-%EC%8A%A4%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-Parallax-scrolling-Website

[5] http://skullacy.com/635

2013ë…„ 10ì›” 11ì¼
by 박성ì›
0 comments

ì›¹ì ‘ê·¼ì„±ì— ëŒ€í•˜ì—¬ 잘 설명해 ë†“ì€ ë™ì˜ìƒ

2013ë…„ 7ì›” 2ì¼
by aduris
0 comments

vert.x는 ë¬´ì—‡ì´ ì¢‹ì€ê°€?

vert.x는 현재 가장 뜨ê²ê²Œ 부ìƒí•˜ê³  있는 서버 프레임워í¬ìž…니다. 모든 서버 프레임워í¬ê°€ ê·¸ë ‡ë“¯ì´ ê³ ì„±ëŠ¥ê³¼ 다양한 프로토콜 지ì›ì„ 장ì ìœ¼ë¡œ 내세우고 있습니다. vert.x는 여기서 í•œ ë°œ ë” ë‚˜ì•„ê°€ 서버 ë„¤íŠ¸ì›Œí¬ í™˜ê²½ì„ êµ¬ì¶•í•˜ê³  ìš´ì˜í•˜ëŠ” í™˜ê²½ê¹Œì§€ë„ ê³ ë ¤í•˜ê³  있습니다. 즉, vert.x는 í•˜ë‚˜ì˜ ‘서버 프로세스 ë°ëª¬’ì„ ì œìž‘í•˜ëŠ” 것ë¿ë§Œ 아니ë¼, í´ëŸ¬ìŠ¤í„°ë§ 환경ì—ì„œ ë™ìž‘하는 여러 서버 프로세스 ë°ëª¬ì„ 제작하는 ë°©ë²•ì— ëŒ€í•œ 고민까지 ë‹´ê³  있습니다.

그렇기 ë•Œë¬¸ì— vert.xê°€ ì–´ë–¤ ë°©ì‹ìœ¼ë¡œ ê³ ì„±ëŠ¥ì„ ë‚´ê³  있는지, ì–´ë–¤ ë„¤íŠ¸ì›Œí¬ í™˜ê²½ì„ ê³ ë ¤í•˜ê³  있는지 충분히 ì‹œê°„ì„ ë“¤ì—¬ 알아볼 가치가 있다고 í•  수 있습니다.

vert.xì˜ ì² í•™

vert.x는 Node.js로부터 ì˜í–¥ì„ ë°›ì€ í”„ë¡œì íŠ¸ë‹¤. vert.x는 Node.js처럼 Event-based í”„ë¡œê·¸ëž˜ë° ëª¨ë¸ì„ 제공하는 서버 프레임워í¬ë‹¤. 그렇기 ë•Œë¬¸ì— vert.xì˜ API는 Node.js와 매우 유사하다. 둘 ëª¨ë‘ ë¹„ë™ê¸° í˜•íƒœì˜ API를 제공한다.

Node.js는 JavaScriptë¡œ 만들어졌지만, vert.x는 Javaë¡œ 제작ë˜ì—ˆë‹¤. 하지만 vert.x를 Node.jsì˜ Java 버전ì´ë¼ê³  ì´í•´í•˜ê¸°ì—는 무리가 있다. vert.xê°€ Node.js로부터 ì˜í–¥ì„ ë°›ì€ ê²ƒì€ ì‚¬ì‹¤ì´ì§€ë§Œ, vert.x는 Node.js와 다른 고유한 ì² í•™ì„ ê°€ì§€ê³  있기 때문ì´ë‹¤.

대표ì ì¸ vert.xì˜ ì„¤ê³„ ì² í•™ì„ ì •ë¦¬í•˜ë©´ 다ìŒê³¼ 같다.

  • Polyglot – 여러 언어 지ì›
    vert.x ìžì²´ëŠ” Javaë¡œ 작성ë˜ì—ˆì§€ë§Œ, vert.x를 사용하기 위해 반드시 Java를 사용할 필요는 없다. Java나 Groovy ê°™ì´ JVM ë™ìž‘ì„ ì „ì œë¡œ í•œ 언어 ë¿ë§Œ ì•„ë‹ˆë¼ Ruby나 Python, 심지어 JavaScriptë¡œë„ vert.x를 ì´ìš©í•  수 있다. JavaScriptë¡œ ê¼­ 서버 애플리케ì´ì…˜ì„ 만들어야 한다면, Node.jsë§Œì´ ìœ ì¼í•œ ëŒ€ì•ˆì´ ì•„ë‹ˆê²Œ ë˜ëŠ” 것ì´ë‹¤. 향후 Scala와 Closureë„ ì§€ì›í•  계íšì´ë‹¤.
  • Super Simple Concurrency model
    vert.xë¡œ 서버 애플리케ì´ì…˜ì„ 작성할 ë•Œ, 사용ìžëŠ” 싱글 스레드 애플리케ì´ì…˜ì„ 작성하듯 코드를 ìž‘ì„±í•´ë„ ê´œì°®ë‹¤. vert.x는 사용ìžê°€ 작성한 코드가 ë™ì¼í•œ 스레드ì—서만 실행ë¨ì„ 보장해서 ë” ì´ìƒ synchronized나 volatile ê°™ì€ ë™ê¸°í™”를 위한 locking 처리를 ì‹ ê²½ 쓰지 ì•Šì•„ë„ ëœë‹¤.
    Node.jsì—서는 JavaScript 실행 엔진 ìžì²´ê°€ 멀티 스레드를 지ì›í•˜ì§€ 않으므로 모든 CPU 코어를 활용하려면 ê°™ì€ JavaScript í”„ë¡œê·¸ëž¨ì„ ì—¬ëŸ¬ ê°œ 실행해야 했다. 하지만 vert.xì—서는 í•˜ë‚˜ì˜ í”„ë¡œì„¸ìŠ¤ë§Œ ê°€ë™í•´ë„ CPU 코어 ê°œìˆ˜ì— ë§žì¶° 멀티 스레드가 ìƒì„±ë  수 있다. 멀티 스레드와 ê´€ë ¨ëœ ìž‘ì—…ì€ vert.xê°€ 하고, 사용ìžëŠ” 비즈니스 ë¡œì§ êµ¬í˜„ì— ì§‘ì¤‘í•  수 있게 í•œ 것ì´ë‹¤.
  • Event Bus 제공
    ë„ìž… 부분ì—ì„œ ì„¤ëª…í–ˆë“¯ì´ vert.xì˜ ëª©í‘œëŠ” ‘í•˜ë‚˜ì˜ ì„œë²„ 프로세스 ë°ëª¬’ì„ ë§Œë“œëŠ” ê²ƒì— ê·¸ì¹˜ì§€ 않는다. vert.xë¡œ 만든 여러 서버 í”„ë¡œê·¸ëž¨ì´ ì„œë¡œ ì›í™œí•˜ê²Œ 통신하게 하는 ê²ƒê¹Œì§€ë„ ëª©í‘œì— ë‘ê³  있다. ì´ë¥¼ 위해 vert.x는 Event Bus를 제공한다. Point to Point나 Pub/Sub ê°™ì€ MQ ê¸°ëŠ¥ì„ ì‚¬ìš©í•  수 있다(Event Bus ê¸°ëŠ¥ì„ ì œê³µí•˜ê¸° 위해 vert.x는 Hazelcastë¼ëŠ” IMDG를 사용한다). ì´ëŸ° Event Busê°€ 있기 ë•Œë¬¸ì— ì„œë¡œ 다른 언어로 ìž‘ì„±ëœ ì„œë²„ 애플리케ì´ì…˜ì´ ìš©ì´í•˜ê²Œ 통신할 수 있다.
  • Module System & Public Module Repository
    vert.xì—는 모듈 시스템ì´ë¼ëŠ” ê²ƒì´ ìžˆë‹¤. 모듈 ì‹œìŠ¤í…œì€ ì¼ì¢…ì˜ ì»´í¬ë„ŒíŠ¸ë¡œ ì´í•´í•  수 있다. vert.xë¡œ 만든 서버 애플리케ì´ì…˜ 프로ì íŠ¸ ìžì²´ë¥¼ 모듈화한 것ì´ë‹¤. ì´ëŸ° ë°©ì‹ìœ¼ë¡œ ìž¬ì‚¬ìš©ì„±ì„ ë„모한다. ì´ë ‡ê²Œ 만들어진 ëª¨ë“ˆì€ Public Module Repositoryì— ë“±ë¡í•  수 있다. Public Module Repository를 통해 ëª¨ë“ˆì„ ê³µìœ í•  수 있는 것ì´ë‹¤.

참고) Netty와 vert.xì˜ ê´€ê³„

vert.xì˜ ì„±ëŠ¥ì„ ë…¼í•˜ê¸° ì „ì— Netty와 vert.xì˜ ê´€ê³„ë¥¼ 정리할 필요가 있다. vert.x는 Netty를 사용한다. 즉, 다중 I/O ì²˜ë¦¬ì— Netty를 사용한다. 그렇기 ë•Œë¬¸ì— vert.x와 Nettyì˜ ì„±ëŠ¥ ì°¨ì´ë¥¼ 확ì¸í•˜ëŠ” ê²ƒì€ ë¬´ì˜ë¯¸í•˜ë‹¤.
vert.x는 Netty와는 다른 ë…ìžì ì¸ API와 ê¸°ëŠ¥ì„ ì œê³µí•˜ëŠ” 다른 목ì ì˜ 서버 프레임워í¬ë‹¤. Netty는 로우레벨 ìˆ˜ì¤€ì˜ I/O를 다룰 수 있는 프레임워í¬ê³ , vert.x는 그보다는 하ì´ë ˆë²¨ ì˜ì—­ì„ 다룬다.

Node.jsì™€ì˜ ì„±ëŠ¥ 비êµ

vert.xê°€ 제공하는 ê¸°ëŠ¥ì´ Node.js와는 다르ë”ë¼ë„ 둘 사ì´ì˜ ì„±ëŠ¥ì„ ë¹„êµí•˜ëŠ” ê²ƒì€ ì¶©ë¶„ížˆ ì˜ë¯¸ 있는 ì¼ì´ë‹¤. 그림1ê³¼ 그림2는 vert.x(Java, Ruby, Groovy)와 Node.jsì˜ ì„±ëŠ¥ì„ ë¹„êµí•œ ìžë£Œë‹¤(출처:http://vertxproject.wordpress.com/2012/05/09/vert-x-vs-node-js-simple-http-benchmarks/).

그림 1ì€ HTTP 서버를 만들고 200/OK ì‘ë‹µë§Œì„ ì£¼ì—ˆì„ ë•Œì˜ ì„±ëŠ¥ì„ ë¹„êµí•œ 결과다. 그림 2는 72 ë°”ì´íŠ¸ í¬ê¸°ì˜ ì •ì  HTML 파ì¼ì„ ì‘답 결과로 제공하는 ê²½ìš°ì— ì„±ëŠ¥ì„ ë¹„êµí•œ 결과다. vert.x 제작ìžê°€ ë°ížŒ 성능ì´ê³  ìŠ¤ìŠ¤ë¡œë„ ì—„ê²©í•œ 환경ì—ì„œ 실시한 테스트가 아니므로 ìƒëŒ€ì ì¸ 성능 격차ì—만 주목하는 ê²ƒì´ ì¢‹ì„ ê²ƒìœ¼ë¡œ ë³´ì¸ë‹¤.

ad70637d150cff0744f460a6da1bcb00.png

그림 1 200/OK ì‘답만 ì£¼ì—ˆì„ ë•Œì˜ ì„±ëŠ¥ 비êµ

572fdeba65175722f09387935f981788.png

그림 2 72ë°”ì´íŠ¸ í¬ê¸°ì˜ ì •ì  íŒŒì¼ ì œê³µ 성능 비êµ

주목할만한 ì ì€ Node.js보다 vert.x-JavaScriptì˜ ì„±ëŠ¥ì´ ì¢‹ë‹¤ëŠ” 것ì´ë‹¤. ì´ ì„±ëŠ¥ ë¹„êµ ê²°ê³¼ê°€ ì‹ ë¢°ì„±ì´ ë§¤ìš° 높다고 하ë”ë¼ë„, 단순히 Node.jsì— ë¹„í•´ vert.xê°€ 낫다고 ë§í•˜ê¸°ëŠ” 어려울 수 있다. Node.js는 Socket.io와 ê°™ì€ í›Œë¥­í•œ 모ë¸ì„ 제공하고 ìžˆì„ ë¿ë§Œ 아니ë¼, ë§Žì€ ë ˆí¼ëŸ°ìŠ¤ë¥¼ 확보하고 있기 때문ì´ë‹¤.

vert.x 용어들

vert.x는 vert.xë§Œì˜ ê³ ìœ  용어를 ì •ì˜í•˜ê±°ë‚˜, ì¼ë°˜ì ì¸ 용어를 vert.xì—ì„œ 다시 ì •ì˜í•´ì„œ ì‚¬ìš©í•˜ê¸°ë„ í•œë‹¤. vert.x를 잘 ì´í•´í•˜ë ¤ë©´ vert.xê°€ ì •ì˜í•œ 용어를 잘 ì´í•´í•´ì•¼ 한다. vert.xì—ì„œ 사용하는 대표ì ì¸ 용어를 정리해 보았다.

Verticle

vert.xì—ì„œ 배치(deploy)ì˜ ê¸°ë³¸ 단위다. Javaì˜ ê²½ìš°ë¼ë©´ main 메서드가 있는 í´ëž˜ìŠ¤ê°€ ëœë‹¤. Verticleì€ ë˜í•œ main 메서드ì—ì„œ 참조ë˜ëŠ” 다른 스í¬ë¦½íŠ¸ë¥¼ í¬í•¨í•  수 있다. .jar 파ì¼ì´ë‚˜ 리소스를 í¬í•¨í•  수 있다. 애플리케ì´ì…˜ì€ í•˜ë‚˜ì˜ Verticleë¡œ ì´ë£¨ì–´ì§ˆ ìˆ˜ë„ ìžˆê³ , event bus를 통해 서로 통신하는 여러 ê°œì˜ Verticleë¡œ ì´ë£¨ì–´ì§ˆ ìˆ˜ë„ ìžˆë‹¤. Javaë¡œ ìƒê°í•˜ë©´ ë…립ì ìœ¼ë¡œ 실행 가능한 Class ë˜ëŠ” .jar 파ì¼ë¡œ ì´í•´í•  수 있겠다.

vert.x ì¸ìŠ¤í„´ìŠ¤

Verticleì€ vert.x ì¸ìŠ¤í„´ìŠ¤ 안ì—ì„œ 실행ë˜ê³ , vert.x ì¸ìŠ¤í„´ìŠ¤ëŠ” ìžì‹ ì˜ JVM ì¸ìŠ¤í„´ìŠ¤ 안ì—ì„œ 실행ëœë‹¤. ë‹¨ì¼ vert.x ì¸ìŠ¤í„´ìŠ¤ 안ì—서는 ë™ì‹œì— 실행ë˜ëŠ” ë§Žì€ Verticleì´ ì¡´ìž¬í•  수 있다. ê°ê°ì˜ Verticleì€ ê³ ìœ ì˜ í´ëž˜ìŠ¤ ë¡œë”를 가질 수 있다. ì´ë¡œ ì¸í•´ Verticle ê°„ì— ìŠ¤íƒœí‹± 멤버, 글로벌 변수 ë“±ì„ í†µí•œ ì§ì ‘ì ì¸ ìƒí˜¸ìž‘ìš©ì„ ë§‰ì„ ìˆ˜ 있다. 네트워í¬ìƒì˜ 여러 호스트ì—ì„œ ë™ì‹œì— ë§Žì€ vert.x ì¸ìŠ¤í„´ìŠ¤ê°€ ì‹¤í–‰ë  ìˆ˜ 있고 event bus를 형성해서 vert.x ì¸ìŠ¤í„´ìŠ¤ ê°„ì— í´ëŸ¬ìŠ¤í„°ë§ë˜ë„ë¡ ì„¤ì •í•  수 있다.

ë™ì‹œì„±(concurrency)

Verticle ì¸ìŠ¤í„´ìŠ¤ëŠ” í•­ìƒ ë™ì¼í•œ 스레드ì—ì„œ 실행ë¨ì´ 보장ëœë‹¤. 모든 코드를 ë‹¨ì¼ ìŠ¤ë ˆë“œ ë™ìž‘ 형태로 개발할 수 있기 때문ì—, vert.x를 사용하는 개발ìžì—게 개발하기 편한 í™˜ê²½ì„ ì œê³µí•˜ëŠ” 것ì´ë¼ í•  수 있다. 게다가 ë ˆì´ìŠ¤ 컨디션ì´ë‚˜ ë°ë“œë½ì´ ë°œìƒí•˜ì§€ 않게 í•  ìˆ˜ë„ ìžˆë‹¤.

Event-based Programming Model

vert.x는 Node.js 프레임워í¬ì™€ 비슷하게 Event-based í”„ë¡œê·¸ëž˜ë° ëª¨ë¸ì„ 제공한다. vert.xë¡œ 서버 프로그래ë°ì„ í•  ë•Œ 개발해야 하는 ì½”ë“œì˜ ëŒ€ë¶€ë¶„ì€ ì´ë²¤íŠ¸ í•¸ë“¤ëŸ¬ì— ê´€í•œ 것ì´ë‹¤. 예를 들어, TCP 소켓으로부터 ë°ì´í„°ë¥¼ 수신하기 위해 핸들러를 설정하는 것ì´ë‚˜ ë°ì´í„°ê°€ ë„ì°©í•  ë•Œ í˜¸ì¶œë  í•¸ë“¤ëŸ¬ë¥¼ 제작하는 것ì´ë‹¤. ì´ì™¸ì—ë„ ‘Event busì—ì„œ 메시지를 수신할 ë•Œ’, ‘HTTP 메시지를 수신할 ë•Œ’, ‘ì»¤ë„¥ì…˜ì´ ì¢…ë£Œë˜ì—ˆì„ ë•Œ’, ‘타ì´ë¨¸ê°€ 종료 ë˜ì—ˆì„ ë•Œ’ ì•Œë¦¼ì„ ë°›ê¸° ì›í•œë‹¤ë©´ 핸들러를 작성하면 ëœë‹¤.

Event Loops

vert.x ì¸ìŠ¤í„´ìŠ¤ëŠ” 내부ì ìœ¼ë¡œ 스레드 í’€ì„ ê´€ë¦¬í•œë‹¤. vert.x는 ê°€ê¸‰ì  ìŠ¤ë ˆë“œ í’€ì˜ ê°œìˆ˜ë¥¼ CPU 코어 수와 ì¼ì¹˜í•  수 있게 한다.

그리고 ì´ ê°ê°ì˜ 스레드ì—서는 Event Loop를 실행한다. Event Loop란 확ì¸í•´ì•¼ í•  ì´ë²¤íŠ¸ë¥¼ 루프(loop)를 ëŒë©´ì„œ 확ì¸í•˜ëŠ” 것ì´ë‹¤. 가령 ì†Œì¼“ì— ì½ì„ ë°ì´í„°ê°€ 있거나, ì–´ë–¤ 타ì´ë¨¸ì— ì´ë²¤íŠ¸ê°€ ë°œìƒí–ˆëŠ”지 확ì¸í•˜ëŠ” 것과 ê°™ì€ ê²ƒë“¤ì´ë‹¤. 루프를 ëŒë‹¤ê°€ 처리해야 í•  ì´ë²¤íŠ¸ê°€ 있다면, 해당 핸들러를 호출하는 ë°©ì‹ìœ¼ë¡œ vert.xê°€ ë™ìž‘한다(물론 ì´ë•Œ 핸들러 처리 ì‹œê°„ì´ ê¸¸ë‹¤ê±°ë‚˜ 블로킹 I/Oê°€ 있다거나 í•  때는 별ë„ì˜ ìž‘ì—…ì´ í•„ìš”í•˜ë‹¤. ë‹¤ìŒ ê²Œì‹œê¸€ì—ì„œ 소개할 예정ì´ë‹¤.).

Message Passing

Verticle ê°„ì˜ í†µì‹ ì€ Event Bus를 ì´ìš©í•œë‹¤. Verticleì„ actorë¼ê³  ìƒê°í•˜ë©´, Message Passingì€ Erlang í”„ë¡œê·¸ëž˜ë° ì–¸ì–´ì—ì„œ 유명해진 actor 모ë¸ê³¼ 유사하다. vert.x 서버ì—서는 ë§Žì€ Verticle ì¸ìŠ¤í„´ìŠ¤ ìƒì„± ë° ì´ë“¤ ê°„ì˜ message passingì„ í†µí•´ Verticle ì½”ë“œì— ëŒ€í•œ 멀티 스레드 ì‹¤í–‰ì´ ì—†ì´ë„ 사용 가능한 ì½”ì–´ì— ë§žê²Œ 시스템 í™•ìž¥ì´ ê°€ëŠ¥í•˜ë‹¤.

Shared data

Message passingì´ ë§¤ìš° 유용하긴 하지만 모든 ì¢…ë¥˜ì˜ ì• í”Œë¦¬ì¼€ì´ì…˜ ë™ì‹œì„± ìƒí™©ì—ì„œ ìµœê³ ì˜ ì ‘ê·¼ ë°©ë²•ì€ ì•„ë‹ˆë‹¤. ìºì‹œê°€ 대표ì ì¸ 예다. ì–´ë–¤ ìºì‹œë¥¼ ì–´ëŠ í•˜ë‚˜ì˜ Verticle만 가지고 있다면 매우 비효율ì ì´ ëœë‹¤. ì´ ìºì‹œê°€ 다른 Verticleì—ë„ í•„ìš”í•œ ë‚´ìš©ì´ë¼ë©´ Verticleì´ ê°ê° ê°™ì€ ë‚´ìš©ì˜ ìºì‹œ ë°ì´í„°ë¥¼ 관리하여야 하기 때문ì´ë‹¤.

그렇기 ë•Œë¬¸ì— vert.x는 ì „ì—­ì—ì„œ 접근할 수 있는 ë°©ë²•ì„ ì œê³µí•œë‹¤. 바로 Shared Mapì´ë‹¤. 그리고 Verticle 사ì´ì—서는 ì˜¤ì§ ë¶ˆë³€(immutable) ë°ì´í„°ë§Œ 공유ë˜ê²Œ 하고 있다.

vert.x Core

ì´ë¦„ 그대로 vert.xì˜ í•µì‹¬ 기능ì´ë‹¤. Verticleì—ì„œ ì§ì ‘ì ìœ¼ë¡œ í˜¸ì¶œë  ìˆ˜ 있는 ê¸°ëŠ¥ì€ ëª¨ë‘ ì´ Coreì— ë‹´ê²¨ìžˆë‹¤. 당연하게 ì´ Core는 vert.xê°€ 지ì›í•˜ëŠ” í”„ë¡œê·¸ëž˜ë° ì–¸ì–´ APIì—ì„œ 접근할 수 있다.

vert.x 아키í…처

vert.xì˜ ëŒ€ëžµì ì¸ 아키í…처는 ë‹¤ìŒ ê·¸ë¦¼ê³¼ 같다.

374e032351d88c70dc05736e3079e6ca.png

그림 3 vert.x 아키í…처(ì›ë³¸ 출처: http://www.javacodegeeks.com/2012/07/osgi-case-study-modular-vertx.html)

vert.xì˜ ê¸°ë³¸ 실행 단위는 Verticleì´ê³  ë™ì‹œì— 여러 Verticleì´ í•˜ë‚˜ì˜ vert.x ì¸ìŠ¤í„´ìŠ¤ì—ì„œ ì‹¤í–‰ë  ìˆ˜ 있다. Verticleì€ Event-Loop 스레드ì—ì„œ 실행ëœë‹¤. í•˜ë‚˜ì˜ í˜¸ìŠ¤íŠ¸ëŠ” 물론 네트워í¬ìƒì˜ 다른 여러 호스트ì—ì„œ 여러 vert.x ì¸ìŠ¤í„´ìŠ¤ê°€ ì‹¤í–‰ë  ìˆ˜ 있는ë°, ì´ë•Œ Verticleì´ë‚˜ Module ê°„ì—는 Event Bus를 통해 통신할 수 있다.

요약하면, vert.x 애플리케ì´ì…˜ì€ Verticle ë˜ëŠ” Module ì˜ ì¡°í•©ìœ¼ë¡œ ì´ë£¨ì–´ì§€ë©° ì´ë“¤ ê°„ì˜ í†µì‹ ì€ Event Bus를 사용한다.

vert.x 프로ì íŠ¸ 구조

ë‹¤ìŒ ê·¸ë¦¼ì€ githubì˜ vert.x 페ì´ì§€ì—ì„œ 소스 코드를 복제(clone)í•´ Eclipseì—ì„œ 본 vert.x 프로ì íŠ¸ 구조다.

49e1c3d8d3329e1bd3a1043166caf566.png

그림 4 vert.x 소스 트리

ì „ì²´ì ì¸ êµ¬ì„±ì„ ì‚´íŽ´ë³´ë©´ 다ìŒê³¼ 같다.

  • 핵심 libraryì¸ vertx-core
  • ë°°í¬ ë° ë¼ì´í”„사ì´í´ì„ 관리하는 vertx-platform
  • Core Java API를 다른 언어로 노출하는 vert-lang

프로ì íŠ¸ 빌드(build) 시스템으로는 Ant와 Mavenì˜ ìž¥ì ì„ 갖췄다는 Gradle를 사용한다.

vert.x 설치 ë° ê°„ë‹¨í•œ 예제 실행

vert.x를 사용하려면 반드시 JDK7ì´ í•„ìš”í•˜ë‹¤. vert.x는 JDK7ì— ìžˆëŠ” invokeDynamicì„ ì‚¬ìš©í•˜ê¸° 때문ì´ë‹¤.

vert.x는 매우 간단하게 설치할 수 있다. https://github.com/purplefox/vert.x/downloadsì—ì„œ ì••ì¶•ëœ ì„¤ì¹˜ 파ì¼ì„ ì›í•˜ëŠ” ìœ„ì¹˜ì— ë‹¤ìš´ë¡œë“œí•´ ì••ì¶•ì„ í‘¼ 다ìŒ, bin 디렉터리를 PATH 환경 ë³€ìˆ˜ì— ì¶”ê°€í•˜ë©´ 설치를 완료할 수 있다. 커맨드 ì°½ì—ì„œ vertx versionì„ ì‹¤í–‰í•´ 버전 ì •ë³´ê°€ 제대로 나오면 설치가 성공한 것ì´ë‹¤.

ì´ì œëŠ” “Hello World!”를 출력하는 간단한 웹 서버를 JavaScriptë¡œ 작성하고 실행해 ë³´ìž. 다ìŒê³¼ ê°™ì´ ì½”ë“œë¥¼ 작성한 후 server.jsë¡œ 저장한다. Node.js 코드와 ê±°ì˜ í¡ì‚¬í•œ 형ì‹ì´ë‹¤.

1
2
3
4
5
load('vertx.js');
vertx.createHttpServer().requestHandler(function(req) {
    req.response.end("Hello World!");
}).listen(8080, 'localhost');

ìƒì„±í•œ server.js 애플리케ì´ì…˜ì„ 다ìŒê³¼ ê°™ì´ vert.x 명령어로 실행한다.

1
%> vertx run server.js

브ë¼ìš°ì €ë¥¼ 열고 http://localhost:8080ì— ì ‘ì†í•´ “Hello World!” 메시지를 ë³¼ 수 있으면 성공ì´ë‹¤.

다른 언어로 작성 ëœ ì˜ˆì œë¥¼ 살펴보ìž. 다ìŒì€ Javaë¡œ 작성한 예제다. ì •ì  íŒŒì¼ì„ ì½ì–´ HTTP ì‘답으로 제공하는 웹 서버를 작성해 본 것ì´ë‹¤.

1
2
3
4
5
6
7
8
Vertx vertx = Vertx.newVertx();
vertx.createHttpServer().requestHandler(new Handler<httpserverrequest>() {
    public void handle(HttpServerRequest req) {
        String file = req.path.equals("/") ? "index.html" : req.path;
        req.response.sendFile("webroot/" + file);
    }
}).listen(8080);
</httpserverrequest>

다ìŒì€ Groovyë¡œ 작성한 코드로 ì•žì˜ Javaë¡œ 작성한 예제와 ê°™ì€ ê¸°ëŠ¥ì„ í•œë‹¤.

1
2
3
4
5
def vertx = Vertx.newVertx()
vertx.createHttpServer().requestHandler { req ->
    def file = req.uri == "/" ? "index.html" : req.uri
    req.response.sendFile "webroot/$file"
}.listen(8080)

NHNê³¼ vert.x

NHNì˜ í”Œëž«í¼ ê°œë°œ 부서ì—는 vert.xê°€ ì •ì‹ìœ¼ë¡œ 릴리스ë˜ê¸° 전부터 개발 ê³¼ì •ì„ ì§€ì¼œë³´ê³  있었다. vert.xì˜ ê°€ëŠ¥ì„±ì„ ë†’ì´ ìƒ€ê¸° 때문ì´ë‹¤. 그리고 2012ë…„ 6월부터 ë©”ì¸ ê°œë°œìžì¸ Tim Fox와 êµë¥˜í•˜ì—¬ vert.x를 발전시켜 나갈 수 있ë„ë¡ ë…¼ì˜ë¥¼ 진행하고 있다. 예를 들어, Socket.io는 Node.jsì—서만 사용할 수 있었는ë°, ì´ë¥¼ vert.xì—ì„œë„ Javaë¡œ 사용할 수 있게 í¬íŒ… ìž‘ì—…ì„ ì§„í–‰í–ˆê³  현재 ê°œë°œì´ ì™„ë£Œëœ ìƒíƒœë‹¤. 다ìŒì€ githubì˜ vert.x ë ˆíŒŒì§€í† ë¦¬ì— ìžˆëŠ” pull request 요청 ë§í¬ë‹¤.

ì‚°ì¶œë¬¼ì¸ socket.io vert.x ëª¨ë“ˆì€ í˜„ìž¬ 개발 ì¤‘ì¸ RTCS 2.0 버전(vert.x + Socket.io)ì— ì‚¬ìš©ë  ì˜ˆì •ì´ë‹¤.

Node.jsê°€ 지금처럼 í™œì„±í™”ëœ ê²ƒì€ Socket.io ë•ë¶„ì´ì—ˆëŠ”ë°, vert.xì—ì„œ Socket.io를 사용할 수 있다면 vert.x ë˜í•œ ë§Žì€ ì‚¬ìš© 사례가 ìƒê¸¸ 것으로 예ìƒí•œë‹¤. ë˜í•œ ì´ socket.io vertx ëª¨ë“ˆì„ ìž„ë² ë””ë“œ ë¼ì´ë¸ŒëŸ¬ë¦¬ 형태로 사용하면 Java ê¸°ë°˜ì˜ ì• í”Œë¦¬ì¼€ì´ì…˜ì—ì„œë„ socket.io를 사용할 수 있게 ëœë‹¤ëŠ” ì ì—ì„œ ì˜ë¯¸ê°€ 있다 하겠다.

참고) RTCS 란?

RTCS(Real Time Communication System)는 NHNì˜ Real Time Web 개발 플랫í¼ìœ¼ë¡œ, 브ë¼ìš°ì €ì™€ 서버 ê°„ì— ì‹¤ì‹œê°„ìœ¼ë¡œ 메시지를 전달할 수 있게 ë„와주는 플랫í¼ì´ë‹¤. RTCS는 현재 야구9단, 미투ë°ì´ 채팅, ë°´ë“œ(BAND) ì±„íŒ…ì— ì ìš©ë˜ì–´ 있다.

마치며

vert.x는 2012ë…„ 5ì›”ì— ì²« ë²„ì „ì´ ë‚˜ì™”ë‹¤. 2009ë…„ì— ì²« ë²„ì „ì´ ë‚˜ì˜¨ Node.jsì— ë¹„í•˜ë©´ 역사가 매우 짧다고 í•  수 있다. 그렇기 ë•Œë¬¸ì— ì•„ì§ ë ˆí¼ëŸ°ìŠ¤ê°€ 많지 않다. 하지만 vert.x는 VMwareì˜ ë“ ë“ í•œ 후ì›ì„ 받고 있고 Cloud Foundryì—ì„œ 구ë™í•  수 있기 때문ì—, 앞으로 ë§Žì€ ë ˆí¼ëŸ°ìŠ¤ê°€ í™•ë³´ë  ê²ƒìœ¼ë¡œ ë³´ì¸ë‹¤.

참고 ìžë£Œ

2013ë…„ 6ì›” 10ì¼
by aduris
0 comments

대한민국 커뮤니티ë°ì´

í–‰  사  명:ì œ 3 회 대한민국 커뮤니티 ë°ì´
주      제:2013 ì»¤ë®¤ë‹ˆí‹°ì˜ ìµœì‹  트랜드 ë° ê¸°ìˆ  ì´ìŠˆì— 대한 Tech, Meetup, Workshop
ì¼ Â     시:2013ë…„ 6ì›” 29ì¼(토) 오전 10ì‹œ ~ 오후 6ì‹œ
장      소:ìƒì•”ë™ ëˆ„ë¦¬ê¿ˆìŠ¤í¬ì›¨ì–´
주최 주관:Community Federation
“í˜¼ìž ê°€ë©´ 빨리 갈수 있지만, 함께 가면 멀리 갈수 있다.” ìžë°œì ìœ¼ë¡œ 모여서 ì„œë¡œì˜ ê³ ë¯¼ê±°ë¦¬ë¥¼ ì°í•˜ê²Œ 나누는 ê³³..
위대하진 않지만, 묵묵히 지ì‹ì„ 나누고, 공유하는 ìž‘ì€ ì˜ì›…ë“¤ì´ ìžˆëŠ” ê³³.. 바로 커뮤니티 입니다.
그리고 그러한 커뮤니티를 í•œêº¼ë²ˆì— ë‹¤ 만날 수 있는 ê³³. 「대한민국 커뮤니티 ë°ì´ã€ìž…니다. 3회 대한민국 커뮤니티 ë°ì´ëŠ” 역대 ì–´ëŠ í–‰ì‚¬ë³´ë‹¤ ë” ì–‘ì , 질ì ìœ¼ë¡œ
성장했습니다.. ë””ìžì´ë„ˆ, 사용ìžë“±  다양한 ì„±ê²©ì˜ ì»¤ë®¤ë‹ˆí‹°ë“¤ì´ ìƒˆë¡­ê²Œ 합류했습니다.
(한국HCI연구회, LEED, ìƒí™œì½”딩, Drupal 서울 커뮤니티, 맥/iOS ê°œë°œìž ì»¤ë®¤ë‹ˆí‹°, GNOME 한국커뮤니티, 안드로ì´ë“œì‚¬ì´ë“œ 등)
기존 Tech Session ë° Meetup 외ì—ë„ Workshop 참여를 통해 커뮤니티 리ë”나 여러 전문가들과 함께 ë” ëŠ¥ë™ì ìœ¼ë¡œ 행사를 ì¦ê¸°ì‹¤ 수 있습니다.
대한민국 커뮤니티를 ëŠê»´ë³´ì‹œê¸° ë°”ëžë‹ˆë‹¤.

ì—¬ëŸ¬ë¶„ë“¤ì˜ ë§Žì€ ê´€ì‹¬ê³¼ ì ê·¹ì ì¸ 참여 ë°”ëžë‹ˆë‹¤.

ì‚¬ì „ë“±ë¡ – 22,000ì›(VATí¬í•¨)í˜„ìž¥ë“±ë¡ – 55,000ì›(VATí¬í•¨)
EVAì˜ í•œ 마리 기러기
NHN NEXT êµìˆ˜ ì†ì˜ìˆ˜

등ë¡ë¹„

ì‚¬ì „ë“±ë¡ – 22,000ì›(VATí¬í•¨)í˜„ìž¥ë“±ë¡ – 55,000ì›(VATí¬í•¨)
시간 Track 1 Track 2 Track 3 Track 4
Tech(대회ì˜ì‹¤) Tech(중회ì˜ì‹¤) Meetup(국제회ì˜ì‹¤) Workshop
중회ì˜ì‹¤ 소회ì˜ì‹¤
9:30~10:30 Registration
10:30~10:40 개회사 ë° ì¶•ì‚¬
10:40~12:00 Keynote : OSSI 프로ì íŠ¸(오픈소스 ì¸ê³µìœ„성 프로ì íŠ¸)  강연 : 송호준(미디어 아티스트)
12:00~13:00 Lunch (행사 참가 선착순 300명ì—게 ì‹ì‚¬ 제공)
13:00~13:40 OSS 개발ìží¬ëŸ¼ 드루팔 8ì˜ ì¤‘ìš”í•œ 변화
í™ì˜íƒ(Drupal 커뮤니티)
모바ì¼ì˜ 미래
그리고 ì•žìœ¼ë¡œì˜ ì „ë§
테스트 사례공유
- MockMVC 기본설정 ë° í…ŒìŠ¤íŠ¸
- embeded tomcatì„ ì´ìš©í•œ

컨트롤러 테스트

- 테스트 커버리지를 올리기까지ì˜

솔루션 개발시 테스트 경험 공유
(한국스프ë§ì‚¬ìš©ìžê·¸ë£¹)

UI ë””ìžì´ë„ˆ ë˜ì–´ë³´ê¸°:

ì¼ì •ê´€ë¦¬ ëª¨ë°”ì¼ ì•±ì˜ UI ë””ìžì¸
- ì‚¬ìš©ìž ì¤‘ì‹¬ì ì¸ UIë””ìžì¸ 프로세스 ì²´í—˜
- 리서치, 설계, í‰ê°€, 수정
(한국HCI연구회)
(4시까지)

13:40~13:50 Break
13:50~14:30 í´ë¼ìš°ë“œ 서비스 브로커(CSB)ê°€
가져올 í´ë¼ìš°ë“œ 세ìƒ
장선진(소프트웨어ì¸ë¼ì´í”„)
JavaScript 성능향ìƒê³¼ Sencha
김태ì›(한국센차유저그룹)
14:30~14:40 Break
14:40~15:20 WWDC2013 ì• í”Œì˜ ë¯¸ëž˜
김정(맥/iOS ê°œë°œìž ì»¤ë®¤ë‹ˆí‹°)
Front-End 개발 기술
(ìžë°”카페)
오픈소스 커미터
과연 개발ìžì˜ 미래ì¸ê°€?
15:20~15:30 Break Break
15:30~16:20 오픈스íƒê³¼ ìžë™í™” 구축 방안
안재ì„(ì˜¤í”ˆìŠ¤íƒ í•œêµ­ 커뮤니티)
위대한 ë²¤ì²˜ì˜ íƒ„ìƒ(창업)
양준철(온오프믹스대표)
초보개발ìžë“¤ê³¼
함께하는
리팩토ë§
실습 
- Sample 프로그램 제공
- 프로그램 분ì„
- 코드 리팩토ë§
(ìžë°”카페)
TDD로 하는 iOS
앱 개발 코딩ë„장
(OSXDev)
16:20~16:30 Break
16:30~17:10 우분투와 ì°°ë–¡ê¶í•©
Hardware & Software 소개
최우ì˜(우분투 한국 커뮤니티)
업무 ë° ì»¤ë®¤ë‹ˆì¼€ì´ì…˜ì—
활용 가능한 UX ì•„ì´ë””ì–´ 스케치
ì´ìž¬í¬(LEED)
아키í…íŠ¸ì— ê¸¸ì„ ë¬»ë‹¤.
17:10~17:20 Break
17:20~18:00 ìƒí™œì½”딩 활ë™ì˜
ì²˜ìŒ ê·¸ë¦¬ê³  현재까지
ì´ê³ ìž‰(ìƒí™œì½”딩커뮤니티)
ì „íˆ¬ê¸°ì˜ ë©”ì„¸ì§€ 처리로 보는
패턴 ì´ì•¼ê¸°(Fault Tolerance Pattern)
(EVA)
18:00~18:10 경품추첨 ë° ë§ˆë¬´ë¦¬
※ ìƒê¸° ì¼ì •ì€ ì‚¬ì •ì— ë”°ë¼ ë³€ê²½ 가능
※ 행사 당ì¼Â ì°¸ê°€ë“±ë¡ 선착순 300명ì—게 Lunch 제공 
※ 중고등학ìƒì€ í–‰ì‚¬ë‹¹ì¼ ë“±ë¡ëŒ€ì—ì„œ “신분ì¦â€ì„ 제시하면 무료로 입장 가능

2013ë…„ 5ì›” 23ì¼
by wkk711
0 comments

Responsive Web Designì„ ìœ„í•œ Test-Tool

Screenqueri.es

 

브ë¼ìš°ì €ì—ì„œ ê° ìž¥ì¹˜ì˜ ì‹œë®¬ë ˆì´ì…˜ì„ í•  수 있다.

 

 

Responsive Web Design Test Tool

브ë¼ìš°ì €ì—ì„œ ê° ìž¥ì¹˜ì˜ ì‹œë®¬ë ˆì´ì…˜ì„ í•  수 있다.

 

 

Responsivepx

브ë¼ìš°ì €ì—ì„œ í¬ê¸°ë¥¼ 변경하여 표시를 확ì¸í•  수 있다.

 

 

Ish

 

브ë¼ìš°ì €ì—ì„œ ê° í¬ê¸°ì˜ 표시를 확ì¸í•  수 있다.

 

 

Responsive Tools For Web Designer & Developers

 

 

ê° ìž¥ì¹˜ì˜ í‘œì‹œë¥¼ 확ì¸í•  수 있다. ì¡°ìž‘ë„ ê°€ëŠ¥.

 

 

Responsive Roulette

 

 

브ë¼ìš°ì €ì—ì„œ ê° í¬ê¸°ì˜ 표시를 확ì¸í•  수 있다.

 

 

The Responsinator

 

 

ê° ìž¥ì¹˜ì˜ í‘œì‹œë¥¼ 확ì¸í•  수 있다.

 

 

Juice’r

 

 

ê° ìž¥ì¹˜ì˜ í‘œì‹œë¥¼ 확ì¸í•  수 있다. ì¡°ìž‘ë„ ê°€ëŠ¥.

 

 

Screenfly

 

 

ê° ìž¥ì¹˜ì˜ í‘œì‹œë¥¼ 확ì¸í•  수 있다. ì¡°ìž‘ë„ ê°€ëŠ¥.

 

 

Responsive Design Testing

 

 

ê° í¬ê¸°ë¥¼ 표시 목ë¡ì—ì„œ 확ì¸í•  수 있다.

 

 

Deviceponsive

 

 

ê° ìž¥ì¹˜ì˜ í‘œì‹œë¥¼ 확ì¸í•  수 있다.

 

 

ResponsiveTest

 

 

ê° ìž¥ì¹˜ì˜ í‘œì‹œë¥¼ 확ì¸í•  수 있다.

 

 

resizeMyBrowser

 

 

ì„ íƒí•œ í¬ê¸°ì˜ 별ë„ì˜ ì°½ 열기 가능하다.

 

 

Proudly powered by WordPress | Theme: Yoko by Elmastudio

Top