요즘 웹 개발
유니온커뮤니티 개발 1그룹
이명규
아재 개발자가 살펴본
발표자 소개
 컴공 졸업
 C 6개월 코스 학원 수료
 PDA 개발 4년
 L/Uinx C 개발/유지보수 9년
WEB 개발자 아닌데?
웹 개발 경험은?
2001년
ASP
조선시대에 해봤음
2003년
PHP
WEB Service
BackendFrontend
Apache
IIS
Web Serer
Java
PHP
ASP
HTML
CSS
JavaScript
HTTP
HTM
L
XML
예전 코드 스타일
파일 하나에 Backend, Frontend
코드들이 섞여 있다.
JavaScript
PHP
HTML
HTML
PHP
WEB Service
BackendFrontend
Apache
IIS
NGNIX
Web Serer
Java
PHP
.NET
Ruby
Go
Node.js
HTML
CSS
JavaScript
HTTP
Jquery
Bootstrap
Angular JS
backbone JS
React JS
Elm
Ext JS
…………………
Real-time Socket +
JSON
REST API + JSON
Spring
Laravel
Rails
Express
index.html
요즘 코드 스타일
소스 코드가 분리되어 있을 뿐 아니라,
아예 개발 직군이 나눠진다.
HTML
bundle.js JavaScript
App
Frontend
Backend
JSON
Backend 개발자
Frontend 개발자
Web Publisher
예전 개발환경
1. 코드 수정
2. Web 서버 재기동
3. 결과 확인
요즘 개발환경
0. 개발 환경구성
- webpack.config.js
- package.json
- npm start
1. 코드 수정
2. 실시간 확인
개발환경 구축 (1)
 Node.js 설치
 개발 언어를 node로 사용하는 것이 아니고, 대부분 web 개발 환경이 node로 개발되어 있어서 필요함
 Visual Studio Code 설치
 Text Editor
 https://code.visualstudio.com/
 Plugin 설치
 Reactjs code snippets
 Babel 설치
 > npm install –g babel
 ECMAScript6을 지원하지 않는 환경에서 사용할 수 있게 해 줌
 Webpack 설치
 > npm install –g webpack webpack-dev-server
 여러가지 javascript 모듈을 하나로 합쳐 줌
개발환경 구축 (2)
 프로젝트 생성
 > mkdir 1st
 > cd 1st
 > npm init
 의존성 페키지 설치
 > npm install –save react react-dom
 > npm install --save-dev babel-core babel-loader babel-preset-react babel-preset-es2015 webpack
webpack-dev-server
 Webpack 컴파일 설정 (webpack.config.js)
 로더 설정 (package.json)
개발환경 구축 (3)
 관리자 CMS Template 다운로드 및 설치
 https://almsaeedstudio.com/
 public 디렉토리에 복사
 Visual Studio Code로 디렉토리를 통째로 연다.
 Visual Studio Code의 터미널을 연다.
 > npm start
 http://127.0.0.1:7777/
/webpack.config.js
module.exports = {
entry: './src/index.js',
output: {
path: __dirname + '/public/',
filename: 'bundle.js'
},
devServer: {
inline: true,
port: 7777,
contentBase: __dirname + '/public/'
},
module: {
loaders: [
{
test: /.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
cacheDirectory: true,
presets: ['es2015', 'react']
}
}
]
}
};
/package.json
{
"name": "acm_web",
"version": "0.0.1",
"description": "AccessManager WEB Sample project",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"start": "webpack-dev-server --hot --host 0.0.0.0"
},
"author": "lmk@unioncomm.co.kr",
"license": "",
"dependencies": {
"react": "^15.4.2",
"react-bootstrap-table": "^3.1.1",
"react-dom": "^15.4.2"
},
"devDependencies": {
"babel-core": "^6.23.1",
"babel-loader": "^6.4.0",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.23.0",
"webpack": "^2.2.1",
"webpack-dev-server": "^2.4.1"
}
}
React 소개
• https://facebook.github.io/react/
• JUST THE UI
• VIRTUAL DOM
• Components
• JSX
• ECMAScript2015(ES6)
/public/index.html
~~~~~~~
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
System Info
<small>간략한 시스템 정보 입니다.</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i> Level</a></li>
<li class="active">Here</li>
</ol>
</section>
<!-- Main content -->
<section class="content">
<div id="root"></div>
<!-- Your Page Content Here -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
~~~~~~~
/src/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Sysinfo from './components/Sysinfo';
const rootElement = document.getElementById('root');
ReactDOM.render(<Sysinfo />, rootElement);
 가장 중요한 디자인은?
 컴퍼넌트를 한땀한땀 제작해야한다?
 Backend는 뭘로 개발?
 RESTful 설계는?
가장 중요한 디자인?
 쓸만한 CMS Template은 대부분 유료
 AdminLTE2로 결정
컴퍼넌트를 한땀한땀 제작해야한다?
 찾기가 어렵다.
 너무 많다.
 쓸만한건 유료
 대안은?
 Sencha (ExtJS): https://www.sencha.com/
 기업용 엔터프라이즈급에선 독보적
 다양한 템플릿 지원
 GUI Tool 지원
 하지만 유료
 Polymer.js: https://www.polymer-project.org/
 익숙한 구글 UI
 다양한 템플릿 지원: https://www.webcomponents.org/
Backend는 뭘로 개발?
 Go ?
 PHP ?
 Node.js ?
RESTful 설계는?
 URI
 Request JSON
 Response JSON
 보안

More Related Content

PDF
Boost 라이브리와 C++11
PPTX
WTL 소개
PPTX
[KGC 2011]Boost 라이브러리와 C++11
PPTX
PPT
Boost라이브러리의내부구조 20151111 서진택
PPTX
[1116 박민근] c++11에 추가된 새로운 기능들
PDF
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
PPTX
[C++ adv] c++11
Boost 라이브리와 C++11
WTL 소개
[KGC 2011]Boost 라이브러리와 C++11
Boost라이브러리의내부구조 20151111 서진택
[1116 박민근] c++11에 추가된 새로운 기능들
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[C++ adv] c++11

What's hot (20)

PDF
Modern C++ 프로그래머를 위한 CPP11/14 핵심
PPTX
파이썬 스터디 9장
PPTX
파이썬 스터디 15장
PPTX
C#을 사용한 빠른 툴 개발
PDF
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
PPTX
100511 boost&tips 최성기
PPTX
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
PDF
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
PPTX
Nexon Developers Conference 2017 Functional Programming for better code - Mod...
PPTX
파이선 실전공략-1
PPTX
20150212 c++11 features used in crow
PDF
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
PDF
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
PDF
[143] Modern C++ 무조건 써야 해?
PDF
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
PPTX
141103 최창원 파이썬 확장 프로그래밍
PDF
코드 생성을 사용해 개발 속도 높이기 NDC2011
PDF
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
PPTX
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
PDF
니름: 쉬운 SOA 단위 테스트
Modern C++ 프로그래머를 위한 CPP11/14 핵심
파이썬 스터디 9장
파이썬 스터디 15장
C#을 사용한 빠른 툴 개발
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
100511 boost&tips 최성기
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
Nexon Developers Conference 2017 Functional Programming for better code - Mod...
파이선 실전공략-1
20150212 c++11 features used in crow
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
[143] Modern C++ 무조건 써야 해?
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
141103 최창원 파이썬 확장 프로그래밍
코드 생성을 사용해 개발 속도 높이기 NDC2011
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
니름: 쉬운 SOA 단위 테스트
Ad

Similar to 요즘웹개발 (20)

PPTX
Spring Boot + React + Gradle in VSCode
PDF
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
PDF
[IoT] MAKE with Open H/W + Node.JS - 3rd
PDF
Node.js 시작하기
PDF
Node.js intro
PDF
Javascript everywhere - Node.js | Devon 2012
PPTX
프론트엔드 개발자의 자바스크립트
PDF
Front end dev 2016 & beyond
PDF
도구를 활용한 더 나은 웹 개발: Yeoman
PPTX
Vue 뽀개기 1장 환경설정 및 spa설정
PPTX
Single-page Application
PDF
E-Gov 기반 Mobile Web Friendly 개발
PDF
01.개발환경 교육교재
PDF
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
PPTX
Node.js의 도입과 활용
PDF
Node.js 20버전에 변경된 점들.pdf
PDF
JavaScript MEAN 스택
PDF
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
PPTX
Jenkins를 활용한 javascript 개발
PDF
삶이편해지는_백엔드_개발자_지식.pdf
Spring Boot + React + Gradle in VSCode
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[IoT] MAKE with Open H/W + Node.JS - 3rd
Node.js 시작하기
Node.js intro
Javascript everywhere - Node.js | Devon 2012
프론트엔드 개발자의 자바스크립트
Front end dev 2016 & beyond
도구를 활용한 더 나은 웹 개발: Yeoman
Vue 뽀개기 1장 환경설정 및 spa설정
Single-page Application
E-Gov 기반 Mobile Web Friendly 개발
01.개발환경 교육교재
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
Node.js의 도입과 활용
Node.js 20버전에 변경된 점들.pdf
JavaScript MEAN 스택
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
Jenkins를 활용한 javascript 개발
삶이편해지는_백엔드_개발자_지식.pdf
Ad

요즘웹개발

  • 1. 요즘 웹 개발 유니온커뮤니티 개발 1그룹 이명규 아재 개발자가 살펴본
  • 2. 발표자 소개  컴공 졸업  C 6개월 코스 학원 수료  PDA 개발 4년  L/Uinx C 개발/유지보수 9년 WEB 개발자 아닌데?
  • 5. 예전 코드 스타일 파일 하나에 Backend, Frontend 코드들이 섞여 있다. JavaScript PHP HTML HTML PHP
  • 6. WEB Service BackendFrontend Apache IIS NGNIX Web Serer Java PHP .NET Ruby Go Node.js HTML CSS JavaScript HTTP Jquery Bootstrap Angular JS backbone JS React JS Elm Ext JS ………………… Real-time Socket + JSON REST API + JSON Spring Laravel Rails Express
  • 7. index.html 요즘 코드 스타일 소스 코드가 분리되어 있을 뿐 아니라, 아예 개발 직군이 나눠진다. HTML bundle.js JavaScript App Frontend Backend JSON Backend 개발자 Frontend 개발자 Web Publisher
  • 8. 예전 개발환경 1. 코드 수정 2. Web 서버 재기동 3. 결과 확인
  • 9. 요즘 개발환경 0. 개발 환경구성 - webpack.config.js - package.json - npm start 1. 코드 수정 2. 실시간 확인
  • 10. 개발환경 구축 (1)  Node.js 설치  개발 언어를 node로 사용하는 것이 아니고, 대부분 web 개발 환경이 node로 개발되어 있어서 필요함  Visual Studio Code 설치  Text Editor  https://code.visualstudio.com/  Plugin 설치  Reactjs code snippets  Babel 설치  > npm install –g babel  ECMAScript6을 지원하지 않는 환경에서 사용할 수 있게 해 줌  Webpack 설치  > npm install –g webpack webpack-dev-server  여러가지 javascript 모듈을 하나로 합쳐 줌
  • 11. 개발환경 구축 (2)  프로젝트 생성  > mkdir 1st  > cd 1st  > npm init  의존성 페키지 설치  > npm install –save react react-dom  > npm install --save-dev babel-core babel-loader babel-preset-react babel-preset-es2015 webpack webpack-dev-server  Webpack 컴파일 설정 (webpack.config.js)  로더 설정 (package.json)
  • 12. 개발환경 구축 (3)  관리자 CMS Template 다운로드 및 설치  https://almsaeedstudio.com/  public 디렉토리에 복사  Visual Studio Code로 디렉토리를 통째로 연다.  Visual Studio Code의 터미널을 연다.  > npm start  http://127.0.0.1:7777/
  • 13. /webpack.config.js module.exports = { entry: './src/index.js', output: { path: __dirname + '/public/', filename: 'bundle.js' }, devServer: { inline: true, port: 7777, contentBase: __dirname + '/public/' }, module: { loaders: [ { test: /.js$/, loader: 'babel-loader', exclude: /node_modules/, query: { cacheDirectory: true, presets: ['es2015', 'react'] } } ] } };
  • 14. /package.json { "name": "acm_web", "version": "0.0.1", "description": "AccessManager WEB Sample project", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1", "start": "webpack-dev-server --hot --host 0.0.0.0" }, "author": "[email protected]", "license": "", "dependencies": { "react": "^15.4.2", "react-bootstrap-table": "^3.1.1", "react-dom": "^15.4.2" }, "devDependencies": { "babel-core": "^6.23.1", "babel-loader": "^6.4.0", "babel-preset-es2015": "^6.22.0", "babel-preset-react": "^6.23.0", "webpack": "^2.2.1", "webpack-dev-server": "^2.4.1" } }
  • 15. React 소개 • https://facebook.github.io/react/ • JUST THE UI • VIRTUAL DOM • Components • JSX • ECMAScript2015(ES6)
  • 16. /public/index.html ~~~~~~~ <!-- Content Wrapper. Contains page content --> <div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <h1> System Info <small>간략한 시스템 정보 입니다.</small> </h1> <ol class="breadcrumb"> <li><a href="#"><i class="fa fa-dashboard"></i> Level</a></li> <li class="active">Here</li> </ol> </section> <!-- Main content --> <section class="content"> <div id="root"></div> <!-- Your Page Content Here --> </section> <!-- /.content --> </div> <!-- /.content-wrapper --> ~~~~~~~
  • 17. /src/index.js import React from 'react'; import ReactDOM from 'react-dom'; import Sysinfo from './components/Sysinfo'; const rootElement = document.getElementById('root'); ReactDOM.render(<Sysinfo />, rootElement);
  • 18.  가장 중요한 디자인은?  컴퍼넌트를 한땀한땀 제작해야한다?  Backend는 뭘로 개발?  RESTful 설계는?
  • 19. 가장 중요한 디자인?  쓸만한 CMS Template은 대부분 유료  AdminLTE2로 결정
  • 20. 컴퍼넌트를 한땀한땀 제작해야한다?  찾기가 어렵다.  너무 많다.  쓸만한건 유료  대안은?  Sencha (ExtJS): https://www.sencha.com/  기업용 엔터프라이즈급에선 독보적  다양한 템플릿 지원  GUI Tool 지원  하지만 유료  Polymer.js: https://www.polymer-project.org/  익숙한 구글 UI  다양한 템플릿 지원: https://www.webcomponents.org/
  • 21. Backend는 뭘로 개발?  Go ?  PHP ?  Node.js ?
  • 22. RESTful 설계는?  URI  Request JSON  Response JSON  보안