2017년 4월 19일 Vuetiful Korea 첫번째 밋업의 세번째 발표자료입니다.
Vue.js 한국어 사용자 모임에서 발표를 하게 된 디자이너, 그녀는 과연 Vue.js를 쓸 수 있을 것인가?
발표자료에서 소개되는 게임은 smilee.github.io/vuetiful-korea-170419 을 참고해 주시기 바랍니다.
[Angularjs 도입 선택 가이드]
본 문서는 네이버 개발자 블로그 hello world 를 통해서 공개되었습니다.
[문서개요]
이 문서는 AngularJS를 사용한 애플리케이션 개발을 계획하고 있거나 AngularJS 도입을 고려 중일 때 참고 할 만한 내용을 기술한다. AngularJS를 사용하는 방법을 다루지는 않는다.
이 문서의 모든 내용은 AngularJS 버전 1.3.x를 기준으로 작성되었다.
Thinkreals에서 앱개발을 담당하는 소프트웨어 엔지니어 @muik 입니다. 개발한 앱으로는 쿠폰모아, 포켓스타일 안드로이드앱이 있는데요. 지금까지 앱개발을 하며 하이브리드앱 필요성을 많이 느껴왔습니다. 아마 비슷한 분들이 많을꺼라 생각되어 이번에 하이브리드앱 도입 준비를 하며 경험한 것을 공유해보려 합니다.
2017년 4월 19일 Vuetiful Korea 첫번째 밋업의 세번째 발표자료입니다.
Vue.js 한국어 사용자 모임에서 발표를 하게 된 디자이너, 그녀는 과연 Vue.js를 쓸 수 있을 것인가?
발표자료에서 소개되는 게임은 smilee.github.io/vuetiful-korea-170419 을 참고해 주시기 바랍니다.
[Angularjs 도입 선택 가이드]
본 문서는 네이버 개발자 블로그 hello world 를 통해서 공개되었습니다.
[문서개요]
이 문서는 AngularJS를 사용한 애플리케이션 개발을 계획하고 있거나 AngularJS 도입을 고려 중일 때 참고 할 만한 내용을 기술한다. AngularJS를 사용하는 방법을 다루지는 않는다.
이 문서의 모든 내용은 AngularJS 버전 1.3.x를 기준으로 작성되었다.
Thinkreals에서 앱개발을 담당하는 소프트웨어 엔지니어 @muik 입니다. 개발한 앱으로는 쿠폰모아, 포켓스타일 안드로이드앱이 있는데요. 지금까지 앱개발을 하며 하이브리드앱 필요성을 많이 느껴왔습니다. 아마 비슷한 분들이 많을꺼라 생각되어 이번에 하이브리드앱 도입 준비를 하며 경험한 것을 공유해보려 합니다.
쉽고 빠른 웹앱 프로토타이핑을 진행할 수 있게 도와주는 툴입니다.
node.js 기반으로 주요 기능으로는 아래와 같습니다.
* 스케폴딩으로 인한 빠른 프로젝트 템플릿 구성
* LiveReload를 이용한 라이브 코딩
* 이미지 optimization
* Compass, CoffeeScript 자동 컴파일링
* JS 라이브러리의 의존성 체크 및 업데이트 관리
* 정적검사 및 유닛 테스트
* JS/CSS merge 및 minimize 그리고 dist 배포
An introduction to the complex single page web application framework known as AngularJs. An attempt to overview the high-level aspects of the framework, and to supply references for further exploration.
Lumen is introduced as a micro PHP framework that is fast like Slim and Silex. It is based on the same Laravel components as Laravel, allowing developers to use familiar Laravel syntax and patterns. While smaller and faster than Laravel, Lumen has limitations in areas like debugging and routing compared to Laravel. It is well suited for APIs, microservices, and mobile applications where speed is important. Slim is also a micro framework option but is less integrated with other frameworks while Lumen is more compatible with Laravel.
How many times have you experienced the agonizing wait as you navigate through a web application? Looking expectantly at the screen, and waiting for the page to load? Frustrating, isn’t it?
Using Single Page web application (SPA) technique can give your web application as seamless an experience as a desktop application. So, what is SPA? And how does it enhance the viewer experience?
The webinar will take you through a step-by-step introduction to SPA, its building blocks, the design techniques and advantages of SPA. It will also discuss the distinct advantages of using AngularJS for Single Page Applications and feature an application demo.
Key Takeaways:
Single Page Web Applications [SPA] , Present and Future
- Introduction
- Why SPA, advantages
- SPA- Multiplatform perspective
- Future of SPA
Architectural considerations for developing SPA
- Building blocks of SPA
- Main Challenges in Web Application Development
Why choose AngularJS for SPA
- Walkthrough of Key AngularJS features
- Advantages of AngularJS in SPA development
Application Demo
Who will benefit from this webinar?
ISVs who want to make their web applications more fluid and engaging for their users
Businesses who don’t want to lose customers because of a slow website
- B2C portals
- Online Retailers
- Travel & Hospitality
- Online shopping portals
- Healthcare portals
Educational & training institutions
PHP 개발자에게 단비 같은 책!
『이클립스 PDT』는 이클립스 PDT를 사용하기 위한 첫 단계부터 디버그, 배포, 협업 도구 등을 자세히 다루었다. 이클립스 PDT의 설치 방법과 기능, 사용법, 그리고 이클립스 PDT 활용법으로 구성되어 있는 이 책은, PHP 개발자들이 JRE 환경에 익숙하지 않다는 것을 전제로 쉽고 자세하게 기술하였다. 이클립스 PDT가 어떤 기능을 제공하고, 이 기능들을 어떻게 잘 활용할지 알려주고, 특히 개발자가 코딩 이외에 가장 많은 시간을 보내는 디버그, 배포 과정에서 이클립스 PDT를 활용하는 방법도 자세히 설명하였다.
http://book.naver.com/bookdb/book_detail.nhn?bid=6471689
* 혼자 공부하려고 만든 자료이기 때문에 정확하지 않는 내용이나 오류가 있을 수 있습니다. 잘못된 점은 언제든지 고쳐주시면 배우겠습니다.
* phpDocumentor란?
phpDocumentor는 제작한 프로젝트에 대해서 문서화 해주는 도구를 말한다. 공식 홈페이지에서는 'PHP에 대한 세계 표준 자동 문서 도구(phpDocumentor is the world standard auto-documentation tool for PHP.)'라고 설명하고 있다.
우선은 phpDocumentor가 왜 수면위로 떠오르게 되었는지에 대해서 짚고 넘어가야 할 것 같다. PHP는 본래 컴파일 없이 라인 단위로 처리하는 스크립트 언어이다. 아무래도 스크립트 언어는 라인별 처리라는 개념 덕분인지 진입장벽이 낮아 독학하기에 좋은 언어였다. 그로 인해 사용률이 많아지고 인기가 많아지는 동시에 스크립트 언어에 대한 약점에 대해서 생각하게 되었던 것 같다. PHP 5로 넘어가면서 본격적으로 객체에 대한 개념이 강화되고, 이를 이용한 다양한 프레임워크가 개발되고 있다. 스크립트 언어에 대한 약점을 컴파일 언어에서 그 해답을 찾고자 했던 것 같다.
컴파일 언어의 대표적인 사례인 JAVA에서는 이미 javadoc이라는 문서화 도구가 존재하고 있었다. 아마도 phpDocumentor는 javadoc의 php 버전이었으리라. 사용 방법도 javadoc과 크게 다르지 않다. php도 객체지향 개념이 나오면서 어떤 정형화된 패턴이 나오는 것이 가정해졌기 때문에 그 공통적인 부분을 문서를 만들 수 있게 되었다.
* 주석
주석은 자신을 포함하여 프로젝트에 참여하는 사람들에게 쉽게 알아볼 수 있도록 하는 역할을 해준다. 주석을 최소화하는 것을 장려하는 사람들도 있긴 하지만, 프로젝트가 커질 수록 작은 코드가 어떤 역할을 할 수 있는지 모를 수도 있다. 그때 작업자는 그 코드에 대해서 설명글을 달아줄 수 있다. 주석은 사람이 알아볼 수 있게 쓰는 일종이 메모의 역할을 한다.
* 마무리
phpDocumentor로 대단한 것을 할 수 있는 것은 아니다. 어쩌면 이 도구로 할 수 있는 것은 자료보관일 뿐일 것이다.
사실 Phpdoc이 많은 곳에서 쓰이고 있지는 않다. 대부분의 개발자들은 코드를 보면 쉽게 알 수 있을 것이라고 말하거나 귀찮아 한다. 그만큼 손도 많이 가고 굳이 해야 하나 싶기도 하는 작업이 바로 이 작업이다. 프로젝트가 개발자에 종속되는 것은 매우 좋지 않은 현상이며, 많은 개발자들이 수긍할 수 있는 코드가 좋은 프로젝트라고 생각한다. 그들이 쉽게 프로젝트의 유지보수에 투입되려면 한눈에 정리되어있는 문서가 필요한데 문서의 유지보수는 생각보다 어렵다. 그래서 이 도구가 문서를 작성하는 데에 중요한 역할을 하는 것이다.
2Naver Open Android API Translation At DCampJeikei Park
■ 제 목 : Naver 오픈api-android-tran-20160529
■ 주제 : 네이버 오픈API를 활용한 안드로이드 통역앱 만들기
■ 내용 :
- 통역앱 개발을 위한 네이버 오픈API 소개
- 통역앱 안드로이드 화면 구성
- 안드로이드앱에서 각 API 호출 및 처리
- 통역앱 작동을 위한 애플리케이션 처리 노하우
■ 난이도 수준: 초급
■ 발표자 소개: 옥상훈 강사
- 現 표준프레임워크 오픈커뮤니티 에반젤리스트
- 現 네이버 랩스 D2에반젤리스트
- 現 네이버 개발자센터 & 오픈 API 담당
- 前 한국Adobe 시스템즈 컨설턴트
- 前 한국 자바 개발자협의회 회장
■ 일시: 2016. 5. 31(화) 19:00~21:00(120분)
■ 장소: 디캠프 6층 다목적홀 (선정릉역 위치)
[TechDays Mini]에서 발표한 "ASP.NET Web API를 활용한 RESTful 서비스 개발" 세션의 발표 자료입니다.
※ 이 자료는 업로드 시점 대비 오래전 진행한 내용을 다루고 있습니다. 변경된 부분이 있거나 유용하지 않을 수 있으니 참고하시길 바랍니다.
3. WHY – 어떤 프로젝트?
2015 wePlanet 3
(내부망)(외부망)
모바일
어플리케이션
서버
관리자
웹콘솔
• 서버는2대로 구성해주세요
1. Mobile Application Server - 외부망
2. Web Console Server + Database – 내부망
• 개발 언어는 PHP 나 ASP로 해주세요.
• php로는 api만, angular로는 프론트만 구성
• KISA SEED 암호화 사용 (PHP, JSP, ASP 지원)
4. WHY – 왜 이프레임워크를?
2015 wePlanet 4
• 개발 생산성 높은 웹 프론트 프레임워크가 필요.
• by Google.
• 웹 개발자가 쓰고싶데요!
• 고객사 및 우리 팀에 익숙했던 언어 => PHP 선택.
• 모바일 어플리케이션을 지원하기 위해 REST API 개발이 필요하지만,
보안관련 솔류션으로 생각보다 개발 범위가 좁았기에 Micro framework으로 결정
=> Slim.
• 모던한 느낌의 웹 디자인이 필요.
• 내부 관리자용 웹콘솔이기 때문에, 콤포넌트에 대한 수정요구는 적음.
• by Twitter.
6. Angular JS Framework : HTML Enhanced for web apps!
• 템플릿
• 양방향 데이터 바인딩
• MVC 구조
• 지시자 Directive를 이용한 HTML 확장
• 의존관계 주입 Dependency Injection
• 단일 페이지 웹 어플리케이션(SPA)을 위한 Router
• $q를 이용한 자바스크립트 비동기 프로그래밍 지원
• 자바스크립트 테스팅 지원
• CSS3 Animation 처리 지원
• 모바일 터치 이벤트 지원
2015 wePlanet 6
출처 http://webframeworks.kr/getstarted/angularjs/
7. 설치 및 구성 - 설치
• Slim 설치 - composer 이용
• $composer require slim/slim 혹은 composer.json 에 slim 추가
• $ php composer.phar install
• index.php 에서 호출
<?php
require ‘vendoer/autoload.php’;
• Angular 설치
• npm 이용시
• $ npm install angular
• index.html에 <script> 추가
<script src=“/node_modules/angular/angular.js”></script>
• bower 이용시
• $ bower install angular
• index.html에 <script> 추가
<script src=“/bower_components/angular/angular.js”></script>
2015 wePlanet 7
8. 설치 및 구성 - 구성
+ app
+ backend // php파일들 위치
+ images
+ scripts // angular 파일들 위치
+ assets
+ controllers
+ directives
+ filters
+ services
- app.js
+ styles
+ vendor // composer를 통한 설치
- autoload.php
+ views // html 파일
- composer.json
- index.html
- index.php
- .htaccess
+ bower_components
+ node_modules
+ test
+ dist
- bower.json
- package.json
2015 wePlanet 8
9. 설치 및 구성 – index.php
• <?php
require 'vendor/autoload.php';
session_cache_limiter(false);
session_cache_expire(15);
session_start();
$app = new SlimSlim();
/**
* API routing
*/
$app->group('/api', function() use ($app) {
$app->response->headers->set('Content-Type', 'application/json');
$app->response->headers->set('Access-Control-Allow-Origin', '*');
/**
* REST /api/user
*/
$app->group(’/user', function() use ($app) {
$app->get('/xxxx', function () use ($app) {
include './backend/xxxx.php';
});
});
});
/**
* Rendering page
*/
$app->get('/', function () use ($app) {
$app->response->headers->set('Content-Type', 'text/html');
readfile('index.html');
});
$app->notFound(function () use ($app) {
$app->response->headers->set('Content-Type', 'text/html');
readfile('404.html');
});
$app->run();
2015 wePlanet 9
10. 설치 및 구성 – index.html
• <body ng-app=“angularApp”>
<script src="scripts/app.js"></script>
2015 wePlanet 10
12. 설치 및 구성 – Angular
+ scripts // angular 파일들 위치
+ assets // 앵귤러 프레임워크에서 공통으로 사용하려는 자원들 (라이브러리 등)
+ controllers // Controller 파일들 위치
+ directives // Extended HTML. view단에서 태그와 같이 사용
+ filters // Controller에서 데이터 값을 변형하기 위해 사용
+ services // api 호출을 위한 로직을 담당(DAO 역활)
- app.js
2015 wePlanet 12
13. 후기
• 발표자료를 만들기 위해 Slim에 대한 내용을 다시 검색 중 이런
글을 발견
“슬림은 ‘PHP: The Right Way’라는 글로 유명한 조쉬 록하트(Josh Lockhart)가 개발한
마이크로 프레임워크다. 조쉬 록하트가 라라벨(Laravel)을 보고 슬림 개발을 중단 할까
고민했지만 다행이도 계속 소소하게 개발이 이뤄지고 있다. 여담이지만 그만큼 라라벨은
대단한 프레임워크다. 루비에 루비 온 레일즈(Ruby on Rails), 파이썬에 장고(Django)가
있다면 PHP에는 라라벨이 있다고 할 수 있다. ”
– 출처 http://bookworm.pe.kr/wordpress/2014/02/06/2873
• 다음 번 발표는 라라벨로 도전!
2015 wePlanet 13
Editor's Notes
#7: AngularJS는 템플릿을 통하여 데이터를 어떻게 표현할지 기술합니다. 템플릿은 표현식과 ANgularJS가 제공하는 별도의 속성 혹은 태그들로 이루어지는데, HTML문서를 작성하는 것이 템플릿을 작성하는 것과 같음.
데이터바인딩이란 두 데이터 혹은 정보의 소스를 모두 일치시키는 기법으로, 화면에 보이는 데이터와 브라우저 메모리에 있는 데이터를 일치시키는 기법입니다. 대부분의 자바스크립트 프레임워크에서는 브라우저 메모리에 있는 데이터가 화면에 표출되도록하는 단방향 데이터 바인딩을 제공하는데, AngularJS는 양방향데이터바인딩을 제공함으로써, 화면에 표출된 데이터가 변경하면 자동으로 메모리에 있는 데이터까지 변경되게 합니다.
MVC구조를 사용
비지니스로직을 구현하는 컨트롤러-> ng-Controller. 많은일을 하지 않고, 단 하나의 역할, 어플리케이션 로직을 담당하는데, 이는 모델의 상태를 정의 변경하는 일이다.