'전체 글'에 해당되는 글 88건

/*************************************************************
  SQL & SQL*PLUS Syntax 정리
**************************************************************/

             ----------------------------------------------------
            -       * syntax 기호                                    -
             -                                                                           -
             -         [] : 대괄호 안의 내용이 생략가능                     -
             -          | : 또는                                                      -
             -        {} : 중괄호 안의 내용이 하나 이상 올 수 있다.     -
             -        ... : 앞 표기와 같은 형식으로 더 올 수 있다.        -
             -          , : 구분자                                                    -
             ---------------------------------------------------- 

* SELECT
SELECT [DISTINCT] {*, COLUMN [ALIAS], . . .}
FROM TABLE_NAME
[WHERE CONDITION]
[ORDER BY {COLUMN, EXPRESSION} [ASC|DESC]];

* 비교연산자
= : 같다.
> : 보다 크다.
>= : 보다 크거나 같다.
< : 보다 작다.
<= : 보다 작거나 같다.
<>, !=, ^= : 같지 않다.
NOT Column_name = : 같지 않다.
NOT Column_name > : 보다 크지 않다.

* SQL연산자
between a and b : a와 b 사이에 있다. (a, b값 포함)
in (list) : list의 값 중 어느 하나와 일치한다.
like : 문자형태와 일치한다. (%, _ 사용)
      %는 값이 없거나 하나이상, _는 하나의 문자
in null : null 값을 가졌다.
not between a and b : a와 b사이에 있지 않다. (a, b값 포함하지 않음)
not in (list) : list의 값과 일치하지 않는다.
not like : 문자 형태와 일치하지 않는다.
not is null : null 값을 갖지 않는다.

* 논리연산자
and : 양쪽 컴포넌트의 조건이 true이면 true를 리턴
or : 한쪽 컴포넌트의 조건만이 true이면 true를 리턴
not : 이후의 조건이 false이면 true를 리턴

* 우선순위 규칙
1) 괄호
2) 수치연산자 > 결합연산자 > 비교연산자
3) is[not] null, like, [not] in > [not] between
4) not > and > or

* 문자형 함수
1) 변환함수
lower : 알파벳값을 소문자로 변환
syntax -> lower(column|expression)
upper : 알파벳 값을 대문자로 변환
syntax -> upper(column|expression)
initcap : 첫번째 글자만 대문자로 변환
syntax -> initcap(column|expression)
2) 문자조작함수
concat : 두 문자열을 연결(합성)        
syntax -> concat(column1|expression1, column2|expression2)
substr : 문자열 중 특정 문자 또는 문자열의 일부분을 선택        
syntax -> substr(column|expression,m,[,n])
length : 문자열의 길이를 구함        
syntax -> length(column|expression)
instr : 명명된 문자의 위치를 구함        
syntax -> instr(column|expression,m[,n])
lpad : 왼쪽 문자자리 채움        
syntax -> lpad(column|expression,n,''''string'''')
rpad : 오른쪽 문자자리 채움        
syntax -> rpad(column|expression,n,''''string'''')
ltrim : 왼쪽 문자를 지움        
syntax -> ltrim(column1|expression1, ''''string'''')
rtrim : 오른쪽 문자를 지움        
syntax -> rtrim(column1|expression1, ''''string'''')
translate : 특정 문자열을 대체        
syntax -> translate(column1|expression1, ''''string1'''', ''''string2'''')
replace : 특정 문자열을 대신        
syntax -> replace(column1|expression1, ''''string1'''', ''''string2'''')

* 숫자형 함수
round : 숫자를 반올림
syntax -> round(column1|expression1, n)
trunc : 숫자를 절삭
syntax -> trunc(column1|expression1, n)
mod : 나머지를 구함
syntax -> mod(column1|expression1, n)
power : 거듭제곱
syntax -> power(column1|expression1, n)
sqrt : 제곱근
syntax -> sqrt(column1|expression, n)
sign : 양수, 음수, 0인지를 구분
syntax -> sign(column1|expression1)
chr : ascii값에 해당하는 문자를 구함
syntax -> chr(column1|expression1)

* 날짜연산
date + number : 결과는 date : 일수를 날짜에 더함
date - number : 결과는 date : 날짜에서 일수를 뺌
date - date : 결과는 일수(숫자) : 어떤 날짜에서 다른 날짜를 뺌
date + number/24 : 결과는 date : 시간을 날짜에 더함

* 날짜함수
months_between : 두 날짜사이의 월수를 계산
syntax -> months_between(date1, date2)
add_months : 월을 날짜에 더함
syntax -> add_months(date1, n)
next_day : 명시된 날짜로부터 다음 요일에 대한 날짜를 나타냄
syntax -> next_day(date1, ''''string''''|n)
last_day : 월의 마지막 날을 계산
syntax -> last_day(date1)
round : 날짜를 반올림
syntax -> round(date1 [,fmt]) -> fmt는 ''''month'''', ''''year''''
trunc : 날짜를 절삭
syntax -> trunc(date1 [,fmt]) 

* 암시적 형변환 (Oracle서버가 자동형변환)
varchar2 or char -> number
varchar2 or char -> date
number -> varchar2
date -> varchar2

* 변환함수
to_char : 숫자나 문자값을 지정한 형식의 varchar2문자열로 변환
syntax1 -> to_char(date, ''''fmt'''') : 날짜를 문자로
syntax2 -> to_char(number, ''''fmt'''') : 숫자값을 문자로
to_number : 숫자를 포함하는 문자열을 숫자로 변환
syntax -> to_number(char) : 숫자를 포함하는 문자열을 숫자로 변환
to_date : 날짜를 나타내는 문자열을 명시된 날짜로 변환
syntax -> to_date(char [,''''fmt'''']) : 날짜를 나타내는 문자열을 명시된 날짜로 변환

* 날짜 형식
scc or cc : 세기(BC날짜에는 -를 붙임)
years indates yyyy of syyyy : 년(BC날짜에는 -를 붙임)
yyy or yy or y : 년의 마지막 3, 2 또는 1자리 수
y,yyy : 콤마가 있는 년
|yyy,|yy,|y,| : ISO표준에 바탕을 둔 4, 3, 2또는 1자리 수
syser or year : 문자고 표현된 년(BC날짜에는 _S를 붙임)
bc or ad : bc/ad 지시자
b.c or a.d : .이 있는 bc/ad지시자
q : 년의 4분의 1
mm : 두자리 값의 월
month : 9자리를 위해 공백을 추가한 월이름
mon : 세자리의 약어로 된 월이름
rm : 로마숫자 월
ww or w : 년이나 월의 주
ddd or dd or d : 년, 월 또는 주의 일
day : 9자리를 위해 공백을 추가한 요일 이름
dy : 세자리 약어로 된 요일 이름
j : Jilian day (bc4713년 12월 31일 이후의 요일 수)

* 시간형식
am or pm : 정오 지시자
a.m or p.m : .이 있는 정오 지시자
hh or hh12 or hh24 : 하루 중 시간(1-12, 0-23)
mi : 분(0-59)
ss : 초(0-59)
sssss : 자정 이후의 초(0-86399)
/ . , : 사용 문자가 결과에 다시 나타남
"문자" : 인용부호내의 문자(들)가 결과에 출력

* 숫자에 영향을 주는 접미사
th : 서수(ddth -> 4th)
sp : 명시한 수(ddsp -> four)
spth or thsp : 명시한 서수(ddspth -> fourth)

* 숫자형식
9 : 9의 수는 출력폭을 지정
0 : 맨 앞에 0을 출력
$ : $ 기호
L : 지역 화폐기호
. : 명시한 위치에 소수점
, : 명시한 위치에 콤마
mi : 우측에 마이너스 기호(음수 값)
pr : 음수를 ()로 묶음
eeee : 과학적인 부호 표기
v : 10을 n번 곱함
b : 0을 0아닌 공백으로 출력

* 기타함수
case, decode : case나 if-then-else-end if 문장의 조건적 조회
1) case
syntax -> case expr when 조건 then 반환값
                             [when 조건 then 반환값]
                              ...
                             else 반환값
               end
2) decode
syntax -> decode(col|expr, search1, result1[,search2, result2, ...][,default])

* 중첩함수 : 여러 단일행함수의 중첩
syntax -> f3(f2(f1()))

* 그룹함수
avg(distinct|all|n) : null값을 제외한 n개 행의 평균값
count(distinct|all|expr|*) : null이 아닌 행의 개수
max(distinct|all|expr) : 최대값
min(distinct|all|expr) : 최소값
stddev(distinct|all|n) : null값을 제외한 n의 표준편차
sum(distinct|all|n) : null값을 제외한 n의 합계
variance(distinct|all|n) : null값을 제외한 n의 분산

* 그룹함수
syntax : select group_function(column) [,group_function(column)...]
            from table_name
            [where condition]
            [ order by column]

* 그룹핑
syntax : select group_function(column) [,group_function(column)...]
            from table_name
            [where condition]
            [group by group_by_expression]
            [having group_condition]
            [ order by column]

* 조인
1) cartesian join : 모든 가능한 행들의 조인 (결과가 의미없는 경우가 대부분)
2) equi join(inner join) : 조인 조건이 정확히 일치하는 경우 사용 (일반적으로 PK, FK사용)
syntax : select table1.column1 [,table2.column2, ...]
            from table1, table2
            where table1.column1 = table2.column2;
3) non-equi join : 조인 조건이 정확히 일치하지 않는 경우에 사용
4) outer join : 조인 조건이 정확히 일치하지 않는 경우에도 모든 행들을 출력
                  조인시킬 값이 없는 쪽에 (+)연산자 적용
syntax : select table1.column1 [,table2.column2, ...]
            from table1, table2
            where table1.column1 = table2.column2(+);
5) self join : 하나의 테이블에서 행들을 조인하고자 할 경우에 사용

* SET연산자
syntax : select *|column1[,column2, column3, ...]
            from table1
            ...
           set operator
            select *|column1[,column2, column3, ...]
            from table2
            ...
           [order by column|expression];
1) union : 각 결과의 합 (합집합:중복되는 값은 한번만 출력)
2) union all : 각 결과의 합 (합집합:중복되는 값 그대로 출력)
3) intersect : 각 결과의 중복되는 부분만 출력 (교집합)
4) minus : 첫번째 결과에서 두번째 결과를 뺌 (차집합)

* 서브쿼리
syntax : select select_list 
            from table
            where expression
            operator
            (select select_list 
            from table
            where expression)

* 서브쿼리에서의 연산자(operator)
1) in : 2개 이상의 값을 리턴하는 서브쿼리에 대해 비교연산자를
       기술하면 에러가 발생. 이런 경우 서브쿼리에서 리턴된 목록의
       각각과 비교하여 쿼리를 수행하는 연산자
2) any : 서브쿼리에서 리턴된 목록의 각각의 값과 비교
3) all : 서브쿼리에서 리턴된 목록의 모든 값과 비교
4) exists: 서브쿼리에서 적어도 1개의 행을 리턴하면 논리식은 참

* 다중열 서브쿼리
syntax : select *|column1[,column2, ...]
            from table
            where (column1, column2 ...) 
            in
            (select column1, column2, ...
            from table
            where condition);

* SQL*PLUS 명령어
a[ppend] text : 현재 편집라인의 끝에 text를 추가
c[hange]/old/new:현재 편집 라인의 old문자를 new문자로 바꿈
del [n] : n라인을 삭제
i[nput] [text] : 현재 편집 라인 다음에 라인을 추가하여 text를 추가
l[ist] [n] : SQL문장을 보여주고, 편집 라인을 이동
n text : n번재 라인을 text로 바꿈
r[un] : buffer에 있는 명령어를 실행한다.(/와 동일)
edit [filename[.ext]] : 지정된 파일의 내용이나 버퍼의 내용을 운영체제의 
                             문자편집기로 불러온다.
sav[e] [filename[.ext]] [rep[lace] | app[end]]
: SQL버퍼의 내용을 파일에 저장하고 기존 파일에 추가하기 위해서 append를, 
기존 파일에 중복해서 쓰려면 replace를 사용한다. 기본적인 파일 확장자는 sql이다.
sta[rt] [filename[.ext]] : 지정된 파일을 수행한다. start라는 명열 대신에 @를 
                                 사용할 수 있다. 파일 확장자가 .sql이 아니면 파일 확장자를 명시
get [filename[.ext]] : SQL버퍼에 파일의 내용을 기록한다. 파일명의 기본적인 확장자는
                             .lis또는 .lst이다
spo[ol] [filename[.ext]] [off | out] : SQL*PLUS의 내용을 파일에 저장
host : sql*plus안에서 호스트 운영체제의 명령어를 실행한다.
! : 운영체제 shell로 나들이
!vi file_name.sql : file_name.sql을 vi편집기로 부름 (unix)

* set : sql*plus의 환경설정
syntax : set 시스템변수 값
- 앞 숫자는 기본값
array[size] {20|n} : 데이터베이스 데이터 패치의 크기를 설정
colsep { | text} : 열 사이에 출력되는 문자를 설정 (디폴트:공백하나)
feed[back] {6|off|on} : 질의가 최소한 n개이어야 row의 수를 출력
hea[ding] {off|on} : 열의 heading을 출력할지의 여부 결정
lin[esize] {80|n} : 라인당 문자의 수
long {80|n} : long값을 출력하기 위해 최대 폭을 설정
pages[ize] {24|n} : page당 line수를 지정
pau[se] {off|on|text} : 화면제어를 함
term[out] {off|on} : 결과를 화면에 출력할지의 여부를 결정
col[umn] [column_option] : 열 포맷을 제어
  syntax : col[umn] [{column|alias} [option]]
  option : cle[ar] : 어떤 열의 형식을 해제
             for[mat] format : 열 데이터의 디스플레이를 변경
             hea[ding] text : 열 헤딩을 설정, 수직 바(|)는 헤딩 라인을 한줄 띄움
             jus[tify] [align] : 열 heading을 정렬(좌, 우, 중간)
            nopri[nt] : 열을 숨김
            nul[l] text : null일때 디스플레이할 텍스트 명시
            pri[nt] : 열을 보여줌
            tru[ncated] : 디스플레이 되는 첫번째 라인의 마지막 문자열을 절삭
            wra[pped] : 문자열이 끝나면 다음 라인으로 이동
tti[tle] [text|off|on] : 리포트의 머리말을 명시
bti[tle] [text|off|on] : 리포트의 꼬리말을 명시
bre[ak] [on report_element] : 중복값을 제거하고 라인 피드로 행들을 단락지음
                                         -> 해제시 clear break
syntax : break on column[|alias|row] [skip n|dup|page] on ... [on report]
            page : break값이 변경될 대 새로운 page로 skip
            skip n : break값이 변경될 때 n만큼 줄을 skip(column, row, page, report)
            duplicate : 중복되는 값을 출력
compute : SQL*PLUS명령어를 이용하여 요약된 계산을 한다.
            해제시 -> clear compute
syntax : compute function of compute_column on break_column
            function : count, num, max, min, sum, avg, std, var중 하나
           compute_column : 계산에 사용되는 column이나 식
           break_column : break명령으로 기술된 column

* 치환변수
& : 리턴되는 데이터를 동적으로 제한, 변수를 인식

* 사용자 변수 정의
1) define variable = value : char데이터형 사용자 변수를 생성하고 값을 할당
2) define variable : 변수, 변수 값, 변수 데이터형을 출력
3) define : 값과 데이터형을 가진 모든 데이터형을 출력
4) accept : 사용자 입력 라인을 읽고 그것을 변수에 저장
  syntax : accept variable [datatype] [for[mat] format] [prompt text] [hide]
              variable : 값을 저장하는 변수의 이름
                            존재하지 않으면 SQL*PLUS가 그것을 생성하여 사용
              datatype : number, char 또는 date, char는 최대 길이 240바이트
                             date는 형식 모델을 다시 검사하고 데이터형은 char
              format : 형식 모델을 명시(예:a10, 9,999)
              text : 사용자가 값을 입력하기 전에 값을 출력
              hide : 사용자 입력을 숨긴다.(예:패스워드)

* 오라클 객체
1) table : 행과 열로 구성된 기본적인 저장 구조
2) view : 하나 이상의 테이블에서 데이터의 부분집합을 논리적으로 표현
3) sequence : 고유한 번호를 자동으로 발생시키는 객체로 주로 PK값 생성에 사용
4) index : 질의(select) 성능을 향상시키기 위하여 사용하는 물리적인 저장 구조
5) synonym : 객체에 대한 이름을 부여

* 테이블 생성
syntax : create table [schema.]table_name
                     (column datatype [default expr] [column_constraint],
                     ...
                     [table_constraint]);

* 오라클 data type
varchar2(n) : 가변길이 문자 데이터 (1~4000byte)
char(n) : 고정 길이 문자 데이터 (1~2000byte)
number(p, s) : 전체 p자리 중 소수점 이하 s자리 (p:1~38, s:-84~127)
date : 7byte(bc4712년 1월1일부터 ad9999년 12월 31일)
long :가변길이 문자 데이터 (1~2Gbyte)
clob : 단일 바이트 가변 길이 문자 데이터 (1~4Gbyte)
raw(n) : n byte의 원시 이진 데이터 (1~2000)
long raw : 가변 길이 원시 이진 데이터 (1~2Gbyte)
blob : 가변 길이 이진 데이터 (1~4Gbyte)
bfile : 가변 길이 외부 파일에 저장된 이진 데이터 (1~4Gbyte)

* constraints (제약)
- primary key(pk) : 유일하게 테이블의 각행을 식별 (not null과 unique 동시 만족)
- foreign key(fk) : 열과 참조된 열 사이의 외래키 관계를 적용하고 설정합니다.
- unique key(uk) : 테이블의 모든 행을 유일하게 하는 값을 가진 열 (null을 허용)
- not null(nn) : 열은 null값을 포함할 수 없습니다.
- check(ck) : 참이어야 하는 조건을 지정함(대부분 업무 규칙을 설정)
1) column level
syntax : column datatype [constraint constraint_name] constraint_type
2) table level
syntax : column datatype,
            ...
            [constraint constraint_name] unique(column1[,column2...])

* subquery를 사용한 테이블 생성
syntax : create table table_name [column1[,column2...]] as subquery

* 테이블 수정 (add 열추가, modify 열수정, drop 열삭제)
syntax : alter table table_name
            add (column datatype [default expr]
            [,column datatype [default expr]...]

* 제약조건 수정 (add 제약추가, drop 제약삭제) : 제약변경은 못함
syntax : alter table table_name
            add [constraint constraint_name] constraint_type (column);
- add자리에 disable, enable로 제약조건활성화 결정할 수 있다.

* 객체 이름 변경
syntax : rename old_name to new_name

* truncate table (테이블 비움:롤백불가)
syntax : truncate table table_name

* 테이블에 주석문 추가
syntax : comment on table table_name | column table.column is ''''text'''';

* 테이블 삭제
syntax : drop table table_name

* DML
insert : 테이블에 새로운 행 추가
syntax : insert into table_name [(column1[, column2, ...])]
            values (value1[, value2 ...]);
update : 테이블의 행 내용을 변경
syntax : update table_name
            set column1 = value1 [,column2 = value2, ...]
            [where condition];
delete : 테이블의 행 삭제
syntax : delete [from] table_name
            [where condition];
merge : 행이 존재하면 update, 새로운 행이면 insert
         merge into table_name as table_alias
         using (table/view/sub_query) as alias
         on (join condition)
         when matched then
                  update set
                  col1 = col1_val1, col2 = col2.val2
         when not matched then
                  insert (column_list) values (column_values);
commit : 저장되지 않은 모든 변경 사항을 Database에 저장
syntax : commit;
savepoint : savepoint 설정
syntax : savepoint name;
rollback : 저장되지 않은 모든 변경 사항을 취소
syntax : rollback [to savepoint name]

* sequence (nextval, currval 사용)
syntax : create sequence sequence_name
                      [increment by n]
                      [start witn n]
                      [{maxvalue n | nomaxvalue}]
                      [{minvalue n | nominvalue}]
                      [{cycle | nocycle}]
                      [{cache | nocache}]
- sequence_name : sequence의 이름입니다.
- increment by n : 정수 값인n으로 sequence번호 사시의 간격을 지정.
                          이 절이 생략되면 sequence는 1씩 증가.
- start with n : 생성하기 위해 첫번째 sequence를 지정.
                     이 절이 생략되면 sequence는 1로 시작.
- maxvalue n : sequence를 생성할 수 있는 최대 값을 지정.
- nomaxvalue : 오름차순용 10^27 최대값과 내림차순용 -1의 최소값을 지정.
- minvalue n : 최소 sequence를 지정.
- nominvalue : 오름차순용 1과 내림차순용 -(10^26)의 최소값을 지정
- cycle | nocycle : 최대 도는 최소갑에 도달한 후에 계속 값을 생성할지의
                           여부를 지정, nocycle이 디폴트.
- cache | nocache : 얼마나 많은 값이 메모리에 오라클 서버가 미리 할당하고
                              유지하는가를 지정. 디폴트로 오라클 서버는 20을 cache

* sequence 수정
syntax : alter sequence sequence_name
            ... (생성과 같다)

* sequence 제거
syntax : drop sequence sequence_name

* view 생성 (simple view)
syntax : create [or replace] [force|noforce] view view_name [(alias[,alias, ...])]
            as subquery
            [with check option [constraint constraint_name]]
            [with read only]
- or replace : 이미 존재한다면 다시 생성한다.
- force : base table유무에 관계없이 view를 만든다.
- noforce : 기본 테이블이 존재할 경우에만 view를 생성한다.
- view_name : view의 이름
- alias : subquery를 통해 선택된 값에 대한 컬럼명이 된다.
- subquery : select 문장을 기술한다.
- with check option : view에 의해 엑세스 될 수 있는 행만이 입력, 갱신될 수 있다.
- constraint : check option 제약 조건에 대해 지정된 이름이다.
- with read only : 이 view에서 DML이 수행될 수 없도록 한다.

* view 생성 (complex view)
syntax : create [or replace] [force|noforce] view view_name [(alias[,alias, ...])]
            as subquery 
            [with check option [constraint constraint_name]]
            [with read only]             
- complex view에서는 둘이상의 테이블이 조인되어 view에 나타난다.

* view 제거
syntax : drop view view_name;

* inline view : from절에 subquery를 사용

* top-n analysis
syntax : select [column_list], rownum
            from (select [column_list] from table order by top-n_column)
            where rownum <= n;

* index 종류
- unique index : 지정된 열의 값이 고유함을 보장
- non-unique index : 데이터를 검색할 때 가장 빠른 결과를 보장
- single column index : 하나의 열만 인덱스에 존재
- composite index : 여러 열을 결합하여 하나의 인덱스를 생성(16개의 열까지)

* index 생성 (사용자정의)
syntax : create index index_name
            on table_name (column1[,column2, ...]);

* index 제거
syntax : drop index index_name;

* synonym 생성
syntax : create [public] synonym synonym_name 
            for object_name;

* synonym 제거
syntax : drop [public] synonym synonym_name;

* user 생성
syntax : create user user_name
            idntified by password;

* 권한부여
syntax : grant system_privilege1[,system_privilege2, ...]
            to user_name1[,user_name2, ...]
            [with admin option]
- with admin option을 주면 부여받은 권한을 다시 부여할 수 있다.

* 권한제거
syntax : revoke system_privilege1[,system_privilege2, ...] | role1[,role2, ...]
            from {user1[,user2, ...] | role1[,role2 ...] | public};

* Role 생성 : Role은 권한(privilege의 모임)
syntax : create role role_name;

* Role 부여
syntax : grant role_name to user_name; 


블로그 이미지

낭만가을

,



여러가지 테스트 결과  블로그는 상단에 2개의 애드센스가 있을때 가장 좋은 클릭율이 나오고 있습니다. 특히 모바일쪽 클릭도 무시할 수가 없는 수준입니다.


보통 상단에 1개의 광고를 넣고 모바일에서도 보이게 하려면, 상단 애드센스를 티스토리 본문에 서식을 이용해서 넣는 방법을 사용합니다. 하지만 이 경우는 상단에 1개의 광고를 넣었을때 효과가 좋은 블로그에서나 가능한 것이고, 저처럼 상단에 2개를 넣어야 효과가 좋을때는 사용이 힘들죠.


일반적으로 상단에 2개의 광고를 배치하는 방식을 보면 본문이 아닌 스킨에 테이블을 이용해서 2개를 넣는 방법을 사용합니다. 하지만 이렇게 하면 모바일에서는 애드센스 광고가 나오지를 않습니다.


PC에서만 애드센스 2개를 보여주게 하는 코드. 모바일에서는 애드센스가 보이지 않음.


<div> 

<TABLE border="0" cellspacing="4" cellpadding="4" width="100%">

<TR>

       <TD width="50%">

           좌측 애드센스 광고 코드 넣을 곳

       </TD>

       <TD align = "left" width="50%">

          우측 애드센스 광고 코드 넣을 곳

       </TD>

</TR>

</TABLE>

</div>

<br>


그러나 지금부터 알려드릴 방법을 사용하면, PC에서는 2개의 광고가 나오고 모바일에서는 1개의 광고가 보이게 됩니다. 현재 제 블로그에 적용되어 있는 방식입니다.


그럼 지금부터 시작해보겠습니다.


티스토리 상단에 PC와 모바일 모두 보일 수 있는 애드센스 광고 2개 넣기


티스토리 관리자-꾸미기-HTML/CSS 편집으로 가서 우측창의 skin.html 에서 ##_article_rep_desc_## 을 검색합니다.

그리고 아래 그림에서 노랗게 표시된 부분, 즉 ##_article_rep_desc_## 의 바로 윗부분에 다음 코드를 넣습니다. 애드센스 광고 코드 넣을 부분에는 각자 자신의 애드센스 코드를 넣어주시면 됩니다.




<!-- 상단 우측 애드센스 광고 시작 -->

<div style="float:right; margin:0px 0px 10px 3px">

   애드센스 스크립트 넣을 부분

</div>

<!-- 상단 우측 애드센스 광고 종료 -->


이렇게 하면 2개의 애드센스중 우측에 들어갈 애드센스가 만들어진 것입니다. 자 이제 두번째로 좌측에 들어갈 광고를 배치해 보겠습니다. 좌측에 들어갈 애드센스는 모바일과 PC 모두에서 보여집니다.


티스토리 관리자-글쓰기에 들어가서 새 글을 작성하는데 양식을 서식으로 지정합니다. 그리고 HTML에 체크를 합니다.

이제 다음 코드를 넣습니다. 애드센스 광고 코드 넣을 부분에는 각자 자신의 코드를 넣어주시면 됩니다.




<!-- 상단 좌측 애드센스 광고 시작 -->

<div style="text-align:center; MARGIN: 0px 2px 10px 0px;">

       애드센스 광고 코드 넣을 부분

</div>

<!-- 상단 좌측 애드센스 광고 종료 -->


글 복사가 안되시는 분들을 위해 코드를 다운로드 해서 사용할 수 있도록 첨부합니다.




자 이제 글을 작성할때마다 가장 윗부분에 서식을 이용해서 입력을 해주시면 PC에서 보면, 제 블로그에서 보이는 것 처럼 2개가 보이고, 모바일에서는 1개의 광고가 노출이 됩니다. 서식을 넣는 방법은 우측 하단에 있는 서식을 클릭한 후에 작성한 서식 제목을 클릭해주면 (여기에서는 본문 상단 광고) 글쓰는 곳의 커서가 있는 위치에 광고가 삽입 됩니다.



정리를 해보면 스킨에 넣은 우측 애드센스는 PC에서만 보이고, 서식을 이용해서 본문에 삽입한 좌측 애드센스는 PC와 모바일 양쪽에서 보이게 됩니다. 따라서 PC에서 접속을 하던 모바일에서 접속을 하던간에 모두 애드센스 광고를 노출 시켜줄 수가 있게 됩니다. 샘플을 보시려면 모바일에서 제 블로그에 들어와보시면 곧바로 확인이 가능하실겁니다.





발생가능한 문제 해결


그런데 가끔 좌측 배너가 한칸 정도 내려가서 보일때가 있습니다. 이는 글을 작성한후에 <BR>태그가 저절로 들어가서 생기는 문제로, 이런 문제가 발생하면 문제가 있는 글에서 HTML 체크를 한 후에, 소스의 가장 윗 부분에 들어가 있는 잘못된 <BR> 태그를 확인해서 삭제해 주시면 해결이 됩니다.




자 이제 코드 한방으로 PC와 모바일 모두에서 애드센스를 노출시키는 방법에 대해 알아봤습니다. 애드센스를 사용하는 블로그의 경우에는 블로거가 임의로 조절해서 수익을 증가시킬 수 있는 것은, 스킨과 애드센스 위치 정도뿐입니다. PC와 모바일 모두에서 애드센스를 노출 시켜서 조금이라도 더 많은 수익 얻어가시기 바랍니다~



출처: http://www.nextstep.co.kr/239 [멍멍대왕의 IT 놀이터]

블로그 이미지

낭만가을

,


'프로그래밍 > 디자인패턴' 카테고리의 다른 글

디자인패턴요약  (0) 2018.06.11
디자인 패턴 요약  (0) 2018.06.11
쉽게 배우는 Template 패턴  (0) 2017.01.29
쉽게 배우는 Builder 패턴  (0) 2017.01.29
쉽게 배우는 Adapter 패턴 (아답터 패턴)  (0) 2017.01.29
블로그 이미지

낭만가을

,