728x90
반응형

 Component 개요

Angular는 Front End Web Application Framework입니다.

우리는 Angular로 Web Browser상에서 동작하는 Client가 사용하는 응용 프로그램을 만들어 낼 수 있습니다. 이런 프로그램은 사용자가 직접 접근할 수 있는 View라는 것을 가지고 동작합니다.

전체 웹 어플리케이션 화면이 하나의 View가 될 수도 있고 어플리케이션 화면의 기능이나 목적에 따라 세부 View들로 분할 되어 웹 어플리케이션의 화면을 구성할 수 도 있습니다.

예를 들면 다음과 같이 View를 분할해서 화면을 구성할 수 있습니다.

view-layout

( 이미지 출처 : https://msdn.microsoft.com )

위의 그림에서 A는 로고영역, B는 사진에 대한 설명영역, C는 주 사진보기 영역, D는 컬렉션에 있는 다른 사진의 미리보기 영역입니다.

이렇듯 우리는 화면을 여러 View들로 분할해서 구성할 수 있다는 것이죠. 분할된 View들은 결국 Angular에서 Component의 단위가 됩니다.

위의 그림은 View들이 화면을 분할하고 있는 형태입니다. 이렇게 할 수도 있지만 아래의 그림처럼 하나의 View안에 여러 View들을 넣어 화면을 구성 할 수도 있습니다. 파란색 View안에 2개의 빨간색 View가 들어가 있고 그 안에 다시 View들이 구성되어 있는 형태입니다. 이렇게 View간의 포함관계가 성립될 수 있고 결국 View들간에 부모와 자식의 관계가 성립되게 됩니다.

View는 결국 Component의 단위가 된다고 했으니 View들의 관계에 의해서 Component들도 부모와 자식간의 관계가 생기게 됩니다. 이런 Component간의 관계가 크게 보면 tree모양으로 구성되게 되는데 이를 Component Tree라고 하는데 Angular의 중요한 개념 중 하나입니다. 이 Component tree의 제일 위쪽에 위치한 Component를 우리는 Root Component라고 부릅니다.

view_layout

Component는 View를 rendering하는 주체가 되기 때문에 어떤 정보로 View를 rendering할 것인가에 대한 정보를 가지고 있어야 합니다. 이 정보를 우리는 Template이라고 합니다.


 Template

Template은 View를 rendering하기 위해 필요한 HTML Element와 Angular의 문법요소 그리고 클라이언트 이벤트 처리 코드를 담고 있습니다.

Application 실행 시 Angular는 Component와 Template의 정보를 이용하여 View를 그리게 됩니다.

angular template

( 이미지 출처 : https://angular.io/guide/architecture )

 Component - class

기존에 만들어 놓았던 MySearchProject를 살펴보면서 코드상으로 Component를 이해해보죠. WebStorm에서 우리가 작성한 프로젝트를 보면 src 폴더가 보입니다. 이 src폴더를 보면 index.html 파일이 존재하는데 이 파일이 우리 Web application의 시작 HTML파일입니다. 즉, http://localhost:4200 으로 접속하면 rendering되는 파일이 바로 이 index.html입니다.

아래의 내용은 index.html 입니다.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>MySearchProject</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>

<app-root></app-root>라는 태그 대신에 특정 내용이 화면에 보이는 구조이군요. 즉, <app-root></app-root>가 하나의 View라는 의미입니다. 당연히 그에 대응되는 Component가 존재하겠네요.

src/app 폴더에 보면 app.component.ts 파일이 있습니다. Component를 정의한 파일이고 TypeScript로 작성되어 있기 때문에 확장자는 .ts를 이용합니다. 파일을 열어보면 다음과 같은 내용이 들어있습니다.

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  title = 'app';
}

코드에서 맨 마지막에 나타나듯이 Component는 class입니다. 하지만 class를 선언한다고 해서 해당 class가 무조건 Component가 되는것은 아닙니다. 이 class가 Component로 사용된다는 것을 Angular에게 알려주어야 Angular가 Component로 동작을 시킬수 있을 겁니다. 그래서 특정 표현을 이용해 해당 class가 Component임을 Angular에게 알려주어야 합니다.

@Component라고 표현되는 부분이 바로 Component decorator입니다. 무언가와 많이 비슷하죠? 의미상 Java의 Annotation과 하는일이 유사하다고 보시면 됩니다. class상단에 Component decorator를 이용해 Angular가 해당 class를 Component로 인지할 수 있도록 합니다.

@Component를 이용하려면 당연히 Component decorator를 사용할 수 있는 상태여야 하고 이 Component decorator는 @angular/core라고 표현되는 Angluar Core Module Package에서 제공합니다. 해서 아래와 같은 코드가 필요합니다.

import { Component } from '@angular/core';

 Component - Metadata

위에서 Component decorator에 대해서 알아봤는데 이 Component decorator를 이용해 설정 정보를 Angular Framework에게 전달할 수 있습니다. 이 설정정보를 Metadata라고 하며 다음과 같은 코드로 표현됩니다.

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})

Component decorator안에 표현될 수 있는 Metadata는 상당히 종류가 많지만 필수요소는 없습니다. 하지만 selector와 template 정보는 존재하지 않으면 화면에 rendering이 되지 않기 때문에 필수요소라 볼 수 있습니다.

  • selector : template 코드안에서 해당 Component를 사용하고자 할 때 이용할 HTML Element명을 정의합니다. 위와 같은 경우 해당 Component는 <app-root></app-root> HTML Element로 사용될 수 있습니다.

  • template 정보 : template 혹은 templateUrl을 이용할 수 있습니다. template은 View를 rendering할 때 필요한 HTML을 inline형태로 직접 기술할 때 사용됩니다. templateUrl은 template code를 따로 HTML 파일로 분리해서 작성할 때 사용합니다.

  • style 정보 : styles 혹은 styleUrls을 이용할 수 있습니다. template 정보에 명시된 HTML에 대한 style을 정의한 CSS가 inline형태 혹은 파일 형태로 포함될 수 있습니다. 여러 CSS 정의와 파일을 이용할 수 있기 때문에 배열형태로 표현합니다.


 Module & Bootstrapping

Bootstrapping이란 browser에서 application이 최초로 실행될 때 진행되는 과정을 의미합니다. 우리가 작성한 Component는 application이 bootstrapping될 때 Angular에 의해서 제어되게 됩니다.

Angular에는 Module 개념이 있습니다. Module은 Application을 구성하는 단위로 관련된 요소를 하나로 묶어 놓은 것으로 생각하시면 됩니다. Angular는 Module단위로 application 코드를 인식하기 때문에 모든 Angular application은 반드시 하나 이상의 Module을 가지게 되며 최상위 모듈을 우리는 Root Module이라고 부릅니다.

이러한 Module안에 Component와 같은 것들을 선언해 놓아야 비로소 사용할 수 있게 됩니다.

Root Module은 관례상 AppModule이라 명하고 class로 표현하게 됩니다. src/app 폴더안에 app.module.ts 파일이 존재하는데 이 파일안에 Root Module이 정의되어 있습니다.

// BrowserModule은 Web Application인 경우 Root Module에서 
// 반드시 import 처리를 해야 합니다.
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';


import { AppComponent } from './app.component';


@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

BrowserModule은 Web Browser를 위한 Module입니다. 지금 우리가 작성하는 프로젝트처럼 브라우저에서 동작하는 Web Application인 경우 Root Module은 반드시 BrowserModule을 import해야 합니다.

위의 코드에서처럼 AppModule class가 정의되어 있고 상단에 @NgModule decorator를 이용하여 우리의 class가 Module임을 명시했습니다.

import { AppComponent } from './app.component';

위의 코드는 아까 살펴본 Component인 app.component.ts 파일로부터 AppComponent class를 import하는 부분입니다. 아까 위에서 AppComponent class를 export 처리했던 걸 보셨을 텐데 이렇게 export된 class를 외부에서 import해서 사용할 수 있습니다. .ts파일로부터 import를 할 경우 확장자인 .ts는 명시하지 않습니다. 이렇게 import한 class를 Module안에서 declarations를 이용해 선언해서 사용하게 됩니다.

declarations안에는 Component, Directive, Pipe에 대한 리스트가 선언됩니다. 이렇게 선언된 요소만이 Module내에서 사용이 가능합니다.

imports안에는 의존 관계에 있는 Angular Library Module과 하위 Module, Routing Module, Ionic과 같은 Third Party Module이 포함됩니다.

@NgModule decorator의 Metadata 중 bootstrap은 오직 Root Module만 가지고 있는 property입니다. application이 bootstrapping될 때 Root Module에 의해서 어떤 Component가 사용될 것인지를 배열로 선언합니다. 즉, bootstrap은 browser가 최초로 index.html을 읽어들여 application을 시작할 때 사용할 Component를 명시하게 됩니다.

@NgModule decorator의 Metadata에 사용되는 Component를 등록해 놓아야 우리가 작성한 Component의 TypeScript 코드를 browser에서 실행 가능한 JavaScript 코드로 compile해서 변환시킬 수 있습니다.

마지막으로 src/main.ts 파일을 열어보면 다음과 같은 코드를 볼 수 있습니다.

platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.log(err));

Angular는 저 위의 코드로 AppModule을 읽어들이고 Module안에 등록된 여러 Component들을 JavaScript 코드로 compile하게 되는 것 입니다.

정리하자면 Root Module은 최상위 Module로 main.ts에 의해 bootstrap됩니다. 이 때 위에서 언급한 Component Tree의 최상위 Component인 Root Component가 Root Module에 의해서 bootstrap되는 것이지요. 따라서 모든 Angular 프로젝트는 Root Module과 Root Component를 반드시 가지고 있어야 합니다.

지금까지 살펴본 것처럼 만약 Angular CLI를 이용하지 않으면 우리가 .ts 파일을 만들어서 등록하는 과정을 직접해야 합니다. Angular CLI를 이용하면 기본 Skeleton 코드의 생성과 등록절차까지 자동으로 처리되게 됩니다.


 Component Tree

사실 위에서 언급한 내용인데 중요한 부분이니 다시한번 정리하고 넘어가겠습니다.

Angular application안에는 여러 View들이 존재할 수 있습니다. 개념적으로 하나의 View안에 여러개의 View들이 child형태로 존재할 수 있습니다. View는 Component와 대응된다고 했으니 결국 Component안에 Component가 child형태로 구성될 수 있다는 의미겠네요. 이것을 우리는 Component Tree라고 합니다.

그림으로 표현하자면 다음과 같이 표현될 수 있습니다.

view layout

( 이미지 출처 : https://angular.io/guide/architecture )

좀 어렵게 표현하자면 application의 화면구성을 끝내면 그 내용을 토대로 View를 결정해서 Component단위로 Modeling 해야 합니다.


이번 포스트에서는 Angular Component의 기본적인 사항에 대해서 알아보았습니다. 여기까지의 내용을 가지고 간단한 실습을 진행하면서 다른 사항들도 하나씩 알아보도록 하겠습니다. 실습을 진행하기에 앞서 Angular Material에 대해 먼저 알아보고 Material을 이용하여 우리 mySearchProject의 화면을 분할 하고 Component를 생성해 보는 실습을 진행하도록 하겠습니다.

728x90
반응형
728x90
반응형

 Angular 개발환경 - Node.js, WebStorm, TypeScript

이번 포스트에서는 Angualr의 개발환경을 세팅하고 Angular CLI를 이용하여 기본적인 Hello World App을 생성, 실행하는 것까지 진행하도록 하겠습니다.

제일 먼저 해야 할 일은 Node.js를 설치하는 것입니다. Angular CLI와 TypeScript가 node module로 존재하기 때문에 npm을 이용하여 이 두가지를 설치해야 합니다.

먼저 Node.js사이트에 접속해 LTS 버전이나 최신버전 둘 중 하나를 선택해 다운로드 합니다. (어떤것을 설치해도 상관없습니다.)nodejs download

저는 LTS 버전으로 다운로드 했습니다. 다운로드가 끝나면 기본 형태로 설치를 진행합니다. 설치가 끝나면 C:/Program Files/nodejs 폴더가 만들어지게 됩니다.

이제 command 창을 열어서 다음과 같은 명령어를 실행합니다.

npm

nodejs_npm

npm(Node Package Manager)이 정상적으로 동작하면 이제 npm을 이용해 typescript를 설치할 수 있습니다. 설치는 local mode와 global mode로 설치가 가능합니다. 여기서는 편의상 global mode로 설치합니다. global mode로 모듈을 설치하면 모든 프로젝트에서 사용가능한 형태로 시스템에 설치됩니다. local mode로 설치하면 해당 프로젝트에서만 사용가능한 형태로 모듈이 설치 되게 됩니다. (일반적으로는 local mode를 선호합니다.)

command 창에서 다음의 명령어를 실행해 typescript를 global mode로 설치합니다.

npm install -g typescript

nodejs_npm_typescript

typescript 2.6.2가 설치되었습니다.

global mode로 설치하면 windows 시스템을 기준으로 $USER_HOME/AppData/Roaming/npm/node_modules에 설치됩니다.

이제 사용할 IDE(Integrated Development Environment)를 설치합니다. 여기서는 WebStorm(유료)을 이용합니다. Visual Studio Code(무료)를 사용하셔도 됩니다. WebStorm은 유료이지만 30일 trial을 사용할 수 있고 Student 라이선스를 이용하면 1년간 무료로 사용할 수 도 있습니다. 개인적으로는 비용이 좀 들지만 WebStorm을 추천합니다. Front End 개발은 역시 WebStorm이 편합니다. ( 사실 손에 익어서 그렇습니다. Visual Studio Code를 이용해도 아무 문제 없습니다. )

JetBrains 사이트로 접속한 후 WebStorm을 다운로드 받습니다.

다운로드가 완료되면 기본형태로 설치합니다. 설치가 끝나면 프로젝트를 생성할 수 있는 화면이 나오게 되는데 일단 이 화면에서 대기합니다.

프로젝트는 Angular CLI를 이용해서 생성합니다.


 Angular 개발환경 - Angular CLI

일반적으로 Framework를 도입할 때 가장 힘든점 중 하나는 개발환경 구축입니다. 기본적인 폴더구조를 숙지해서 만들어야 하고 기본적으로 사용되는 설정 파일들도 다수 존재합니다. 처음에는 대부분 뭐가먼지 알기 힘들죠. 코드를 작성한 후 Build 설정, Bundler 설정, 테스팅과 배포등 너무 많은 일을 해야하고 설정방법 또한 복잡합니다.

Angular 역시 마찬가지입니다. Mike Brocchi( Angular CLI contributor )의 Twitter 설문을 예로 들어보죠. 설문에서 나온것처럼 초기 환경 세팅과 복잡성을 가장 큰 문제 중 하나로 여기고 있는걸 볼 수 있습니다.

what is angular barrier

다행스럽게 Angular는 Angular CLI를 제공함으로 이런 복잡함을 해결하고 있습니다. Angular CLI를 이용할 경우와 그렇지 않는 경우를 간단히 그림으로 표현하면 다음과 같습니다.

with angular CLI

Angular Project를 쉽게 생성하고 프로젝트를 시작하기 위한 scaffolding을 포함해서 다양한 기능을 제공하는 것이 바로 Angular CLI입니다. 사실 쓰지 않을 이유가 없습니다.

그럼 Angular CLI를 설치해보도록 하죠. command 창을 열어서 다음과 같이 실행합니다.

npm install -g @angular/cli

npm을 이용하여 Angular CLI를 global mode로 설치합니다. 설치하는데 시간이 좀 걸립니다. 설치가 끝나면 다음과 같이 실행해서 Angular CLI의 버전을 확인해 보세요.

ng --version

Angular CLI version


 Angular 프로젝트 생성

Angular CLI의 설치가 끝났으니 이제 Angular CLI를 이용하여 프로젝트를 하나 생성합니다. 프로젝트명은 mySearchProject로 하겠습니니다.

프로젝트 폴더는 C:/mySearchProject로 생성할 것이기 때문에 저는 현재 command 창의 working directory를 C:/로 잡아놓고 다음과 같이 입력합니다.

ng new mySearchProject

시간이 제법 오래 걸립니다. 필요한 의존 모듈들을 npm을 이용해 다운로드 받기 때문입니다. 프로젝트 생성이 끝나면 자동으로 생성된 설정 파일과 기본 Skeleton 코드가 프로젝트 폴더안에 위치하게 됩니다. 만약 의존 모듈을 설치하지 않고 프로젝트 기본 구조와 파일만 scaffolding할 목적이라면 --skip-install option을 이용하시면 됩니다.

Angular CLI는 나름대로의 Coding Convention을 가지고 있습니다. 그 규칙에 대해서는 나중에 다른 포스트에서 알아보겠습니다.

이렇게 Angular CLI를 이용해서 프로젝트를 생성할 수 있는데 이 프로젝트 구조와 Coding Convention이 Angular의 표준형태라고 보시면 됩니다.

설정파일에 대한 내용은 나중에 다시 보기로 하고 일단 WebStorm으로 해당 프로젝트 폴더를 open합니다. 아래의 그림처럼 WebStorm에서 프로젝트 폴더가 보이게 됩니다.

WebStorm Angular project

기본적으로 Git Repository가 같이 생성됩니다. 꼭 그렇게 하실 필요는 없지만 가능한 Git과 GitHub를 이용하여 Project의 버전관리를 하시는게 좋습니다.


 개발환경 서버를 이용한 Angular 프로젝트 실행

command 창을 열어 프로젝트 root로 working directory를 이동시킨 후 다음의 명령을 실행하면 Webpack을 이용하여 우리 소스를 bundling하고 로컬 웹서버를 이용하여 우리 프로젝트를 서비스하게 됩니다.

ng serve

명령 수행이 끝나면 webpack: Compiled successfully. 메시지가 출력됩니다. 이제 browser를 실행시켜 다음 URL로 접속해 정상적으로 출력되는지 확인하시면 됩니다.

http://localhost:4200

참고로 아래와 같이 --o option을 이용해서 ng serve를 실행시키면 default browser를 실행시켜서 해당 URL에 접속해 결과를 쉽게 확인할 수 있습니다.

ng serve --o

Angular project run


이번 포스트에서는 Angular application을 개발하기 위한 개발환경을 구축했습니다. 우리 강좌에서는 Testing과 관련된 사항은 다루지 않을 예정입니다. Testing과 관련된 사항은 추후에 다른 포스트에서 다루도록 하겠습니다.

이제 기본으로 만들어진 MySearchProject application을 조금씩 수정하면서 우리의 Angular 프로그램을 완성해 나가면 될 듯 합니다.

728x90
반응형

'Web Programming > Angular - TypeScript' 카테고리의 다른 글

Angular @Input 데이터공유  (0) 2018.08.28
Angular Material Table  (0) 2018.08.28
Angular 예제 따라하기  (0) 2018.08.28
SPA형식의 Web Application  (0) 2018.08.28
Angular 소개  (0) 2018.08.28
728x90
반응형

 Angular Version

Angualr의 History와 개요부터 간단하게 살펴보겠습니다.

Angular는 JavaScript based Open Source Front End Web Application Framework 입니다. 초기 버전인 AngularJS는 2010년 발표되었습니다. 지금은 Angular 1이라고 표현하기도 합니다. 버전 정책이 AngularJS 1.x로 올라가는 것이죠. 그렇게 발전해오다가 2016년 9월에 Angular 2가 정식으로 release되었습니다. 그러면서 Angular 2라고 명시하지 않고 Angular라는 이름으로 호명하기로 결정합니다. 지금 우리가 Angular라고 부르는 것은 모두 Angular 2 이후 버전입니다. 2017년 3월에 Angular 4가 release되었고 현재(2018년 1월)기준으로 Angular 5 까지 나온 상태입니다.

2017년 12월 3일부로 다음의 사항들이 정식으로 release되었습니다.

  • Angular 5.1.0
  • Angular CLI 1.6.0
  • Angualr Material
  • Angular Material CDK(component dev kit)

정리를 하자면 AngularJS라고 표현되는 Angular 1은 버전이 AngularJS 1.0, AngularJS 1.1, AngularJS 1.2, … 이렇게 올라가고 Angular라고 표현되는 Angular 2는 버전이 Angular 2.x.x, Angular 3.x.x, Angular 4.x.x, … 이렇게 올라갑니다. Angular 3는 Router issue때문에 release가 최소되었습니다. 그래서 Angular 2 다음 Major 버전이 Angular 4가 됩니다. 2017년 11월에 release된 Angular 5는 Angular 2의 3번째 Major 배포판 이라는 말이지요.

Angular는 유의적버전(SemVer)을 도입해서 버전 체계를 Major.Minor.Patch로 표현합니다. 즉, Angular 5.2.4 이렇게 표현하는 것이지요. 6개월을 기준으로 1회의 Major, 3회의 Minor 그리고 주단위로 패치가 실시되고 있습니다. Major Release는 Breaking Change 가 포함될 수 있습니다. Breaking Change란 이전버전과 호환성이 없는 변화를 지칭합니다. 따라서 시간이 좀 지나면 지금의 Angular와 또 많이 다른 모습의 Angular가 될 확률도 있습니다. 물론 Google에서는 가능한 그런 경우를 없앤다고 발표했지만 모를일이죠.

기존의 AngularJS와 지금의 Angular는 Architecture측면이나 구현측면에서 큰 차이가 있습니다. 그렇기 때문에 Angular 2 architecture가 발표되었을 때 많은 AngularJS 개발자들이 황당해 했던것도 사실입니다. 여하간 AngularJS는 역사속으로 사라지고 있습니다. 사실 Google에서도 AngularJS 시절에는 내부적으로 AngulraJS를 사용하지 않았습니다. 하지만 Angular로 넘어오면서 자사의 개발자체도 Angular로 진행하고 있고 Angular를 단지 web framework에서만 사용하는 기술이 아닌 모든 platform에 대응할 수 있는 형태로 발전시키고 있습니다.

다음은 기존의 AngularJS와 지금의 Angular의 중요 차이점 중 몇가지 입니다.

  • AngularJS의 Controller와 $scope 기반 개발방식에서 Angular의 컴포넌트 기반 개발방식(CBD, Component Based Development)으로 개발방법 변경되었습니다.
  • Angular의 주력 개발 언어로 TypeScript가 도입되었습니다.
  • Angular는 개발환경 지원도구인 Angular CLI를 제공합니다.

이외에도 더 많지만 일단 저 위의 3가지만 기억하시면 될 듯 합니다. 저 위의 3가지로 인해 개발 생산성과 성능면에서 큰 향상을 이루었습니다. 하지만 결정적(?)인 단점이 있습니다. Angular는 대부분의 browser를 지원하고 있는데 IE의 경우 9버전 이상부터 지원합니다. 따라서 Cross Browsing의 issue를 가지고 있습니다.

아참..로고도 바꾸었습니다. 테두리가 있는 방패모양의 로고에서 테두리를 빼고 A글자를 흰색으로 바꾸었습니다. ^^;;AngularJS to Angular

이 링크를 클릭해 보시면 Angular의 버전 업데이트에 대한 ChangeLog를 확인할 수 있습니다. 일 무지 열심히 하네요. 따라가기 힘들정도입니다.


 Angular 학습을 위한 pre-requisite

Angular는 Steep Learning Curve를 가집니다. 배우기가 힘들다는 거죠. 적어도 기본적인 JavaScript 개발에 대한 지식과 TypeScript에 대한 지식, 그리고 객체지향개발(OOP)에 대한 지식을 필수로 요구합니다. 물론 Angular를 배우면서 같이 하면 되긴 하지만 힘든건 사실입니다.

해서 Angular 강좌 역시 기본적으로 다음과 같은 선행지식을 필요로 합니다.

  • JavaScript
  • TypeScript
  • OOP(Object Oriented Programming)
  • Front End 개발 도구 ( npm, babel, webpack, gulp 등등)

참고로 이 링크에 가보시면 현재 Front End 개발환경에 대한 간단한 포스트를 보실 수 있습니다. 또한 이 링크에 가보시면 TypeScript에 대한 강좌 역시 보실 수 있습니다.

말은 어렵다고 했지만 하다보면 또 그냥 저냥 하게 됩니다. 일단 기본적인 소개는 이정도로 하고 개발환경부터 세팅해 보도록 하겠습니다.

728x90
반응형

'Web Programming > Angular - TypeScript' 카테고리의 다른 글

Angular @Input 데이터공유  (0) 2018.08.28
Angular Material Table  (0) 2018.08.28
Angular 예제 따라하기  (0) 2018.08.28
SPA형식의 Web Application  (0) 2018.08.28
Angular 개발환경세팅 하기  (0) 2018.08.28
728x90
반응형


일단, 구글 애드센스가 생소하신 분들에게 간단하게 설명 드리겠습니다.


구글에서 운영하는 광고 프로그램으로, 웹사이트를 소유한 사람이 애드센스에 가입하면 구글에서 광고비를 지불하고 광고를 자동으로 그 사람의 웹사이트에 올려준다. 해당 웹사이트를 찾은 방문자가 그 광고를 클릭하면 구글이 광고주로부터 돈을 받아 그 일부를 웹사이트 소유자에게 나눠주는 방식이다.

[네이버 지식백과] 애드센스 [ADSense] (선샤인 논술사전, 2007.12.17, 인물과사상) 


좀 더 쉽게 설명 드리면 구글 애드센스 신청을 해서 수락이 되면 글쓴이가 운영하는 티스토리 블러그에 구글의 광고를 삽입 할 수 있습니다. 그리고 방문자가 광고를 클릭하게 되면 구글은 글쓴이에게 광고비를 줍니다. 간단하죠! ^^



블러그나 커뮤니티 등 웹사이트를 방문시 위와 같이 구글 애드센스 광고를 보실 수 있습니다. 방문자가 아이폰 케이스에 관심을 가져 클릭하게 되면 해당 웹사이트로 이동 하겠죠~ 그럼 글쓴이에게 구글은 광고비를 줍니다. ^^ 네이버 같은 경우도 애드포스트라고 애드센스와 비슷한 광고 프로그램이 있지만, 광고 수익이 애드센스를 따라오지 못하고, 구글 애드센스 만큼 자유롭게 사용하지 못한다는 단점이 있습니다.


구글 애드센스가 매리트 있는 첫번째 이유는 CPC(Cost Per Click)광고 입니다. 말그대로 방문자의 클릭만으로 수익을 얻을 수 있기 때문에 쉽게 운영이 가능 합니다. 이와 조금 다른 개념으로 CPA(Cost Per Action)광고가 있습니다. CPA 는 액션(회원가입, 상담신청 등)이 일어나야 수익을 얻을 수 있고, 운영이나 컨텐츠를 광고에 맞게 작성해야 하는 어려움이 있습니다.


구글 애드센스의 두번째 매리트는 광고의 내용이 내가 작성한 포스트의 내용과 유사하게 자동으로 변경된다는 것 입니다. 만일 글쓴이가 넥서스4 사용기를 작성하고, 포스트 상단에 구글 애드센스를 삽입시킨다면 애드센스가 자동으로 넥서스4와 관련된 광고를 보여주게 됩니다. 이는 방문자의 클릭을 유도하게 되고 글쓴이는 수익을 얻을 수 있겠지요!!! ^^




구글 애드센스 신청하기


구글 애드센스는 누구나 신청을 할 수 있지만, 아무나 받아 주지는 않습니다. 자신이 운영하는 블러그, 커뮤니티, 웹사이트 등이 제대로 운영되고 있는지, 양질의 컨테츠가 풍부한지 등 다양한 방면에서 검토를 하고 이에 부합될 경우만 승인이 이루어 집니다. 어디선가 읽은 내용으로는 최소 포스트가 30개 이상은 되어야 한다고 하더군요... 맞는지는 저도 잘 모릅니다. ㅡㅡ;


일단 애드센스를 신청하기 위해서 해당 사이트로 이동 합니다.

PS: 그림을 클릭하시면 크게 보실 수 있습니다.


http://www.google.com/adsense




우측 상단의 '지금 가입하기' 클릭 합니다.




구글 계정이 있으시면 로그인을 하시고, 없으시면 새롭게 만드시면 됩니다.




본인의 블러그, 또는 애드센스를 이용할 웹사이트의 주소를 입력 합니다. 하단에는 애드센스 정책에 대해서 나오는데 동의하고 다음 단계로 넘어 갑니다.




마지막으로 신청서를 작성해야 합니다. 여기서 중요한 부분은 내용을 영어로 작성을 해야 합니다. 이름은 성과 이름을 구분하여 입력을 하면 되고, 주소는 네이버 영문주소 변환을 이용해서 입력을 하면 됩니다. 전화번호는 +82 국가코드를 앞에 붙이고 입력 하시면 됩니다.




신청서가 정상적으로 접수 되었다면 위와 같은 화면이 나오고, 검토 중이니 기다리시면 메일로 답변을 받을 수 있습니다.




글쓴이가 신청후 애드센스에 접속 해보니 비활성 계정이라고 나옵니다. 답변은 언제나 올런지... ㅡㅡ; 지금까지 구글 애드센스의 간략한 개념과 신청과정에 대해서 알아보았습니다. 답변이 오고 계정이 활성화 되면 승인절차 및 티스토리에 구글 애드센스를 광고를 넣는 방법 등에 대해서 포스트 하도록 하겠습니다.



출처: http://jaebok.tistory.com/36 [발자취]

728x90
반응형

'끄적끄적..' 카테고리의 다른 글

부업 / 투잡으로 용돈벌기  (1) 2018.09.04
블로그 RSS 피드 등록 - 검색 노출 등록  (0) 2018.08.28
클래시 로얄 재밌다!  (0) 2018.08.28
넥슨 히트쿠폰 얻는방법 알려드립니다!  (0) 2015.12.09
git URL  (0) 2014.07.18
728x90
반응형

클래시 로얄 재밌어요~


구글 광고 테스트입니다.


728x90
반응형

+ Recent posts