SlideShare a Scribd company logo
요즘 웹 개발
유니온커뮤니티 개발 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

What's hot

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

What's hot (20)

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

Similar to 요즘웹개발

Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
dpTablo
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
JinKwon Lee
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
Park Jonggun
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
Huey Park
 
Node.js intro
Node.js introNode.js intro
Node.js intro
Chul Ju Hong
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트
jeong seok yang
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
Jae Sung Park
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
leejungwang
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
Sangmin Yoon
 
E-Gov 기반 Mobile Web Friendly 개발
E-Gov 기반 Mobile Web Friendly 개발E-Gov 기반 Mobile Web Friendly 개발
E-Gov 기반 Mobile Web Friendly 개발
JavaCommunity.Org
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
Hankyo
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
현철 조
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
Jin wook
 
Node.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdfNode.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdf
Seung kyoo Park
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택Tai Hoon KIM
 
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈NAVER D2
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발지수 윤
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf
Seung kyoo Park
 

Similar to 요즘웹개발 (20)

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

요즘웹개발

  • 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": "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" } }
  • 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  보안