반응형

[체인지 그라운드] 행복과 공부를 모두 잡는 방법, '몰입'


몰입이 주는 행복감은 순간적인 쾌감이라기보다 몰입한 뒤 느끼는 감정이다. 

어떤 일을 하면서 시간이 흐르는 것도 모른 채 열심히 하는 만족에서 오는 것이다. 

그래서 몰입하는 순간 자의식이 사라지지만, 몰입 이후에는 더 큰 자아존중감을 느끼게 된다. 

게다가 과업 수행으로 자기 성장을 느끼기 때문에 더 행복하다.

(참고 : 완벽한공부법)



반응형
반응형
감사합니다.고맙습니다.행운을 드립니다.
9월의 둘째밤 휴일이 끝나고 내일이면 월요일 부모님과 식사를 하고 즐겁게 운동하고 나름 좋은 주말을 보내고 내일을 맞이 합니다.

반응형

'Gold 일지' 카테고리의 다른 글

[Stepup 66day] 9.4  (0) 2018.09.05
[Stepup 65day] 9.3  (0) 2018.09.03
[Stepup 63day] 9.1  (0) 2018.09.01
[Stepup 62day] 8.31  (0) 2018.08.31
[Stepup 61day] 8.30  (0) 2018.08.31
반응형

[오라클] 쿼리(query) Hint 내용 정리


A. Initialization Parameter중 OPTIMIZER_MODE 지정가능 값

1.ALL_ROWS

전체 RESOURCE 소비를 최소화 시키기 위한 힌트. Cost-Based 접근방식.

SELECT /*+ALL_ROWS */

EMPNO,ENAME

FROM EMP

WHERE EMPNO = 7655;


2.FIRST_ROWS

조건에 맞는 첫번째 row를 리턴하기 위한 Resource 소비를 최소화 시키기위한 힌트.

특징 : Index Scan 이 가능하다면 Optimizer가 Full Table Scan 대신 Index Scan을 선택합니다.

Index Scan 이 가능하다면 Optimizer가 Sort-Merge 보다 Nested Loop 을 선택합니다.

Order By절에의해 Index Scan 이 가능하다면, Sort과정을 피하기위해 Index Scan을 선택합니다.

Delete/Update Block 에서는 무시됩니다.

다음을 포함한 Select 문에서도 제외됩니다.

집합연산자 (UNION, INTERSECT, MINUS, UNION ALL)

Group By

For UpDate

Group 함수

Distinct


SELECT /*+FIRST_ROWS */

EMPNO,ENAME

FROM EMP

WHERE EMPNO = 7655;


3.CHOOSE

Data Dictionary가 해당테이블에 대해 통계정보를 가지고 있다면 Optimizer는 Cost-Based Approach를 선택하고, 그렇지 않다면 Rule-Based Approach를 선택합니다.


SELECT /*+CHOOSE */

EMPNO,ENAME

FROM EMP

WHERE EMPNO = 7655;


4.RULE

Rule-Based 최적화를 사용하기 위함 입니다.


SELECT /*+RULE */

EMPNO,ENAME

FROM EMP

WHERE EMPNO = 7655;


B. Access Methods 로써의 Hints


1.FULL

해당테이블의 Full Table Scan을 유도.

테이블 Alias 가 있는경우는 Alias사용.

Schema Name은 사용안함(From 에 SCOTT.EMP 라고 기술해도 hint에는 EMP사용).


SELECT /*+FULL(EMP) */

EMPNO, ENAME

FROM EMP

WHERE EMPNO = 7655;


2.ROWID

지정된 테이블의 ROWID를 이용한 Scan 유도


3.CLUSTER

지정된 테이블Access에 Cluster Scan 유도. Cluster된 Objects에만 적용가능.


SELECT /*+CLUSTER(EMP) */

ENAME,DEPTNO

FROM EMP,DEPT

WHERE DEPTNO = 10

AND EMP.DEPTNO = DEPT.DEPTNO;




4.HASH

지정된 테이블Access에 HASH Scan 유도.

/*+HASH(table) */


5.HASH_AJ

NOT IN SubQuery 를 HASH Anti-join으로 변형

/*+HASH_AJ */


6.HASH_SJ

용도 : Correlated Exists Subquery 를 Hash Semi-join으로 변형

/*+HASH_SJ */


7.INDEX

지정된 테이블access에 Index Scan 유도.

하나의 Index만 지정되면 Optimizer는 해당index를 이용.

여러개의 인덱스가 지정되면 Optimizer가 각 Index의 Scan시 Cost를 분석 한 후 최소비용이 드는 Index사용. 경우에 따라 Optimizer는 여러 Index를 사용한 후 결과를 Merge하는 Acees방식도 선택합니다.

Index가 지정되지 않으면 Optimizer는 테이블의 이용가능한 모든 Index에 대해 Scan Cost를 고려 후 최저비용이 드는 Index Scan을 선택합니다.


SELECT /*+INDEX(EMP EMPNO_INDEX) */

EMPNO, ENAME

FROM EMP

WHERE DEPTNO=10;


8.INDEX_ASC

INDEX HINT와 동일 단,ASCENDING 으로 SCAN함을 확실히 하기위함 입니다.


9.INDEX_COMBINE

Index명이 주어지지 않으면 Optimizer는 해당 테이블의 Best Cost 로 선택된 Boolean Combination Index 를 사용한다. Index 명이 주어지면 주어진 특정 Bitmap Index 의 Boolean Combination 의 사용을 시도합니다.

/*+INDEX_COMBINE(table index) */


10.index_desc

지정된 테이블의 지정된 Index를 이용 Descending으로 Scan 하고자 할 때 사용합니다.

/*+index_desc(table index) */


11.INDEX_FFS

Full Table Scan보다 빠른 Full Index Scan을 유도.

/*+INDEX_FFS(table index) */


12.MERGE_AJ

NOT IN Subquery를 Merge Anti-join으로 변형

/*+MERGE_AJ */


13.MERGE_SJ

Correalted EXISTS Subquery를 Merge Semi-join으로 변형

/*+MERGE_SJ */


14.AND_EQUAL

Single-column Index의 Merge를 이용한 Access Path 선택. 적어도 두개이상의 Index가 지정되어야 합니다. 

/*+AND_EQUAL(Table Index1, Index2...) */


15.USE_CONCAT

조건절의 OR 를 UNION ALL 형식으로 변형합니다. 일반적으로 변형은 비용측면에서 효율적일때만 일어납니다.

/*+USE_CONCAT */


C. JOIN 순서를 결정하는 Hints

1.ORDERED

FROM절에 기술된 테이블 순서대로 JOIN이 일어나도록 유도.

/*+ORDERED */


SELECT /*+ORDERED */

TAB1.COL1,TAB2.COL2,TAB3.COL3

FROM TAB1,TAB2,TAB3

WHERE TAB1.COL1=TAB2.COL1

AND TAB2.COL1=TAB3.COL1;


2.STAR

Star Query Plan이 사용가능하다면 이를 이용하기위한 Hint. Star Plan은 규모가 가장큰 테이블이 Query에서 Join Order상 마지막으로 위치하게 하고 Nested Loop 으로 Join이 일어나도록 유도합니다.

적어도 3개 테이블 이상이 조인에 참여해야하며 Large Table의 Concatenated Index는 최소 3컬럼 이상을 Index에 포함해야합니다.

테이블이 Analyze 되어 있다면 Optimizer가 가장효율적인 Star Plan을 선택합니다.

/*+STAR */


D. JOIN OPERATION을 결정하는 HINTS.

1.USE_NL

테이블의 Join 시 테이블의 각 Row가 Inner 테이블을 Nested Loop 형식으로 Join 한다.

/*+USE_NL(inner_table) */


SELECT /*+ORDERD USE_NL(CUSTOMER) */

FROM ACCOUNT.BALANCE,

CUSTOMER.LAST_NAME,

CUSTOMER.FIRST_NAME

WHERE ACCOUNT.CUSTNO = CUSTOMER.CUSTNO;


2.USE_MERGE

지정된 테이블들의 조인이 SORT-MERGE형식으로 일어나도록 유도.

괄호안의 테이블은 JOIN ORDER상의 뒤의 테이블

/*+USE_MERGE(table) */


3.USE_HASH

각 테이블간 HASH JOIN이 일어나도록 유도.

괄호안의 테이블은 JOIN ORDER상의 뒤의 테이블

/*+USE_HASH(table) */


4.DRIVING_SITE

QUERY의 실행이 ORACLE에 의해 선택된 SITE가 아닌 다른 SITE에서 일어나도록 유도.

/*+DRIVING_SITE(table) */


SELECT /*+DRIVING_SITE(DEPT) */

FROM EMP,DEPT@RSITE

WHERE EMP.DEPTNO = DEPT.DEPTNO;


DRIVING_SITE 힌트를 안쓰면 DEPT의 ROW가 LOCAL SITE로 보내져 LOCAL SITE에서 JOIN이 일어나지만,

DRIVING_SITE 힌트를 쓰면 EMP의 ROW들이REMOTE SITE로 보내져 QUERY가 실행된후 LOCAL SITE로 결과가 RETURN됩니다.



( 출처 database.sarang.net 내용 정리 )

반응형
반응형

새로운 가족 생겨서 남겼던 영상 입니다. 

똘망똘망하게 처다 보기도 하고

재채기에 하품까지 언제 봐도 귀여움의 극치 인것 같습니다. 

라이센스 걱정없이 사용 가능합니다. 




온라인으로 동영상 파일크기 줄이는 방법


DOWN

IMG_2078.mp4


반응형
반응형

유튜브 무료 영상 소스 (free stock video)  프리라이센스 - 섬 해변 숲 바다 island Beach Forest Sea

유튜브 시작, 인트로 등등 

무료 영상 소스 (free stock video) 

CC0 라이센스 (Free License)  

라이센스 걱정없이 사용 가능한 영상 


가보고 싶은 섬 풍경

숲 넘어 펼쳐저 있는 해변과 바다

힐링을 할 수 있는 곳

떠나고 싶어 지는 영상




온라인으로 동영상 파일크기 줄이는 방법


DOWN

Palm_Trees.mp4

Palm_Trees.webm


반응형
반응형

유튜브 무료 영상 소스 (free stock video)  프리라이센스 - 힐링 휴가 계곡 holiday valley

유튜브 시작, 인트로 등등 

무료 영상 소스 (free stock video) 

CC0 라이센스 (Free License)  

라이센스 걱정없이 사용 가능한 영상 


누구나 바라는 휴식 영상 

한번 쯤은 해보고 싶은 

로망이 ~




온라인으로 동영상 파일크기 줄이는 방법


DOWN

Vacay_Mode.mp4

Vacay_Mode.webm



반응형
반응형

당신이 무조건 달라질 수 있는 법 (목표,단계,꿈,변화)

감사합니다. 고맙습니다. 행운을 드립니다. 


믿기 힘들겠지만

우리는 이 방법을 믿어야만 한다.

이 방법을 사용한 사람들이 변화될 가능성은 무려 3배 다시 말해 300%나 높았습니다.


필요한 건 오직 하나 작은 단계로 생각하는 방법을 익히는 것입니다. 

지속적을 변화하기 위해서 무엇보다 중요한 사실은 당신의 본래 모습을 바꿀필요가 없다는 것입니다.


습관,변화,동기부여에 관한 대부분의 책은 이렇게 말한다.

"변화하고 싶나요? 그렇다면 성격을 바꾸세요"

"의지가 강한 사람을 본받거나 모든 역경을 극복할 수 있을 만큼 무언가를 열정적으로 원하세요!"

말이 쉽지 변화를 위해 개인의 성격을 바꾸는게 어디 그렇게 쉬운 일이란 말인가?


미국 UCLA 의과대학 교수이자 15년간 수천 명의 삶을 바꾼 세계적인 행동과학자, 션 영

그는 자신의 책, <무조건 달라진다> 에서 

수많은 책과 일반적인 통념은 변화를 위해서는 성격 즉 나를 바꿔야 한다고 주장합니다. 

하지만 사람들은 저마다 핵심 성격이 있고 이는 평생 동안 쉽게 변화하지 않습니다. 

많은 이들이 의지력이나 동기부여 결여를 문제로 삼지만 인간은 그렇게 단순한 존재가 아닙니다. 


변화를 위해 꿈꾸는 것은 문제될 게 없습니다.

하지만 꿈꾸는 것만으로는 변화 속에서 겪는 일상의 시련을 극복할 수 없습니다. 

그 이상의 무언가가 필요합니다. 


꾸준한 변화를 위해서 꿈,목표,단계의 차이점을 알아야 한다고 말한다. 


꿈은 목표보다 거창합니다. 

성취하기 까지 3개월 이상 걸리고 지금껏 성취한 적이 없는 계획을 뜻합니다. 


목표는 성취한 경험이 있고 책 100권을 읽겠다 처럼 수치로 나타낼 수 있는 것을 말합니다.


단계는 목표로 향하는 길에 점검하는 작은 임무 입니다. 


성취하는데 일주일이나 걸리는 것은 아니고 아주 쉽고 작은 일을 단계라 입니다. 

첫 단계를 찾는일에 초점을 맞추고 작은 걸음을 내딛는 일입니다.

작은 단계에 초점을 맞추면 꿈의 초점을 맞출 경우보다 빠른시간 안에 목표를 성취할 수 있습니다. 

이때 뇌에서는 강력한 화학물질을 분비해 기분을 좋게 만듭니다. 

우리는 이를 다시 느끼고 싶어 하기 때문에 같은 행동을 반복하게 됩니다. 

결국 반복되는 행동이 습관으로 자리잡아 변화를 일으키게 됩니다.

이처럼 작게 생각하는 방법을 배운다면 단계와 목표를 성취해서 마침내 꿈을 이루게 될겁니다. 


변화는!! 

어떤 운동화를 신을지 곰곰이 생각만 하는게 아니라

실제로 운동화를 신을때 시작된다는 것





션 영<무조건 달라진다>

반응형
반응형
벌써 9월 입니다. 그 뜨거운 열기들이 어디로 갔는지 시원한 바람이 불고 있습니다. 하지만 사람들은 많이 쏟아져 나온것 같습니다.

반응형

'Gold 일지' 카테고리의 다른 글

[Stepup 65day] 9.3  (0) 2018.09.03
[Stepup 64day] 9.2  (0) 2018.09.03
[Stepup 62day] 8.31  (0) 2018.08.31
[Stepup 61day] 8.30  (0) 2018.08.31
[Stepup 60day] 8.29  (0) 2018.08.29
반응형
[오라클] 동일 데이터 반복 조회 access에 대한 쿼리 튜닝 방법
감사합니다. 고맙습니다. 행운을 드립니다.

간혹 최소, 최대값등에 의해 값을 구해야 할경우가 있습니다.

서브쿼리를 이용하여 데이터를 조회한후에 또다시 결과를 조회할경우 테이블 풀스캔이 반복적으로 발생합니다.

이럴경우 RANK를 사용하면 성능에 좋습니다.

예제)

SELECT * FROM EMP
WHERE (JOB, ENAME) IN
(SELECT JOB, MIN(ENAME) AS ENAME FROM EMP GROUP BY JOB)
ORDER BY ENAME;

=>

SELECT * FROM
(SELECT A.*, RANK() OVER(PARTITION BY JOB ORDER BY ENAME) RNK
 FROM EMP A)
WHERE RNK=1
ORDER BY ENAME;
반응형
반응형
감사합니다. 고맙습니다. 행운을 드립니다.

간혹 이미지 로드 되기전에 스크립트가 실행될때 이미지 사이즈등을 못불러 올때가 있습니다.

아래 test5위치에 넣으면 잘됩니다.

$(function(){
    alert('test3');
    $(window).load(function() {
        alert('test4');
    });

    $(window).load(function() {
       alert('test5');
    });
 });

 $(document).ready(function(
    alert('test1');
 });

 $(window).load(function() {
    alert('test2');
});

test3 -> test1 -> test2 -> test4 -> test5 순서로 실행됨
반응형
반응형

유튜브 무료 영상 소스 (free stock video)  프리라이센스 - 보트 요트

유튜브 시작, 인트로 등등 

무료 영상 소스 (free stock video) 

CC0 라이센스 (Free License)  

라이센스 걱정없이 사용 가능한 영상 


부의 상징으로 표시 되는 요트 

넓은 바다위에 조각조각 떠있는 

모습은 평온해 보인다. 




온라인으로 동영상 파일크기 줄이는 방법


DOWN

Sail-Away.mp4

Sail-Away.ogv

Sail-Away.webm


반응형
반응형

유튜브 무료 영상 소스 (free stock video)  프리라이센스 - 그린 벼 수확

유튜브 시작, 인트로 등등 

무료 영상 소스 (free stock video) 

CC0 라이센스 (Free License)  

라이센스 걱정없이 사용 가능한 영상 


녹색 푸른 수확이 자라고 있다 

시간과 계절이 지나면 황금 빛으로 

물든 수확기가 올것이다.




온라인으로 동영상 파일크기 줄이는 방법


DOWN

Green.mp4

Green.ogv

Green.webm


반응형
반응형

[책그림] 경쟁을 뛰어 넘어 블루 오션으로 나아가기

감사합니다. 고맙습니다. 행운과 복을 드립니다. 


경쟁에서 이니는 가장 좋은 방법이 무엇일까요?



간단합니다. 


경쟁하지 않는 것입니다. 

경쟁이 치열한 이유는 서로 비슷비슷한 기준으로 비교하기 때문입니다.

비슷한 성능,비슷한 디자인,비슷한 가격 차이점이 크지 않기 때문에 하나의 파이를 수많은 제품이 나누어 가집니다.


대표적인 것이 자선단체 입니다. 

자선모금 업계는 경쟁이 치열한 레드오션 중의 레드오션입니다.

수천 개의 자선단체들이 저마다의 구호를 외치면서 사람들의 동정심에 호소합니다.

그리고 다음과 같은 전략을 세웁니다.

좀 더 감동적인 이야기를 담은 광고 캠페인을 만들고 화려한 모금 행사를 하고 부자 고객에게 더 초점을 맞추자.

하지만 이런 방법은 경쟁을 더 가속화하고 비용만 늘어나게 할 뿐입니다.

사람들은 점점 죄책감을 유발하는 광고에 피로감을 느껴 기부금은 줄어들게 됩니다.

점점 악화되는 상황에서 한 자선 단체는 다음과 같은 독특한 생각을 했습니다. 


왜 기부 자금 홍보는 동정심이나 죄책감에 호소해야 할까?

기부가 진짜 재미있는 행사, 축제가 될 수는 없을까?


경쟁자가 하는 것이기 때문에 옳을 거라고 생각하지 않고 지금까지 당연하게 여겼던 것을 의심한 것입니다.


그로 부터 탄생한 것이 영국의 자선 단체 '코믹 릴리프' 입니다.


수다쟁이로 소문난 런더의 여행사 직원이 친구들에게 공약을 겁니다.

자신에게 후원을 한다면 24시간 동안 말하지 않고 조용히 있을 거라고요

친구들은 여성에게 500파운드를 후원했으며 이 금액은 코믹 릴리프에게 전달됩니다.

온몸이 털로 뒤덮인 남성미 넘치는 맨체스터 남성은 털을 밀어버리는 공약으로 500 파운드를 모금합니다.


코믹 릴리프가 만든 빨간 코의 날에 일어나는 일들입니다.

누구든 부담 없이 1파운드의 빨간 코만 사면 이 모금 행사에 참여할 수 있습니다. 


제각기 장난스런 공약을 걸어 친구들에게 모금을 받거나 길거리에 나가 재미난 복장으로 사람들에게 기부금을 받습니다.

이 기부 문화가 영국 전체에 퍼지면서 이제 빨간 코의 날은 모든 영국 사람들이 국경일처럼 기다리는 날이 되었습니다.

코믹 릴리프는 '블루오션 시프트'를 이룬 대표적인 사례입니다. 


블루오션 시프트는 조직이 경쟁이 치열한 시장에서 벗어나 경쟁이 없는 블루오션으로 나아가는 과정을 의미합니다. 


2005년에 나온 책<<블루오션 전략>>을 들어 보셨나요

이 책은 전 세계 기업에 블루오션 혁신을 불러일으켰는데요.

그 후 저자 김위찬과 르네 마보안이 12년의 연구 끝에 블루오션으로 이동하기 위한 구체적인 방법을 

연구한 것이 책 <<블루오션 시프트>> 입니다.


블루오션 전략가들은 업계의 조건을 주어진 것으로 생각하지 않습니다.


자선모금 업계에서 동정심에 호소해야 한다.

부자를 대상으로 해야한다 등의 조건은 오히려 경쟁을 치열하게 만들 뿐이었습니다.

전략가라면 오히려 이런 조건을 자신에게 유리하도록 재구성해야 합니다. 


스티브 잡스는 이렇게 말했습니다. 


우리는 살아가는 동안 세상을 잇는 그대로 받아들이라는 말을 듣습니다. 

인생은 그런 생각의 틀안에서 살면서 최대한 원만하게 살려 노력하고, 좋은 가정을 꾸리기 위해 노력하며

즐기고 돈을 모으는것 이라는.... 그것은 몹시 제한된 삶입니다. 


당신의 인생은 그것보다 훨씬 장대할 수 있습니다. 한가지 단순한 진실을 깨달으면 말입니다. 

그리고 그것은 지금 당신이 인생이라고 일컷는 모든것들이 당신보다 똑똑하지 않은 사람들에 의해 만들어 졌다는 것과

당신이 그것을 바꿀 수 있고 그것에 영향을 미칠 수 있으며 다른사람들이 이용할 수 있는 당신만의 무언가를 만들 수 있다는 사실입니다. 


그래서 책은 경쟁 속으로 들어가기 전에 누가 경쟁의 기준을 정했는지 생각해 보라고 말합니다. 


생각보다 똑똑하지 않은 사람들이 그 기준을 만들었다면 그 기준은 틀릴 수 있으며 다른 더 좋은 기준이 있을 수 있습니다. 

경쟁에서 벗어나 새로운 시장을 창출하려면 우리느 자신에게 더 맞는 조건, 사람들이 더 사랑하는 조건을 만들어야 합니다. 

그래프를 보면 더 명확해집니다. 


블루오션 시프트의 '전략 캔버스'를 소개 합니다 

여기 전통적인 자선 모금 기업의 전략 캔버스가 있습니다. 

밑에 나열된 것은 경쟁 요소 입니다. 


동정심에 호소하는 것은 높고 고객 맞춤 상담 서비스도 높습니다. 

반면 기부에 대한 인식,신뢰성이 낮은 편입니다.


그리고 여기 코믹 릴리프의 그래프 입니다. 

새로운 가치 요소가 추가된 것을 볼 수 있습니다. 


재미,상호작용,소속을 상징하는 물품 등이 있죠


중요한 것은 내가 그리는 그래프의 모양이 다른 사람들이 것과 비슷해지면 안된다는 것입니다. 

기존의 기부 업체의 그래프는 소규모든 대규모든 비슷한 모양이었습니다.

하지만 코믹 릴리프는 평균적인 모양과 많이 다르죠 더 중요한 것은 그래프가 많이 꺾여 있어야 한다는 것입니다. 

어느 한 쪽이 낮고 어느 한쪽은 높아야 한다는 것이죠

전략적으로 덜 중요한 경쟁 요소는 제거하거나 낮추고 중요한 요소 몇가지에 집중하는 것입니다.


기업이 아닌 우리 자신에게도 이 전략 캔퍼스를 그릴 수 있습니다. 


내가 속한 업계의 주요 경재 요소를 나열하고 주변 동료들과 나의 그래프를 그리는 것입니다. 

그 뒤 앞으로 어떤 요소를 낮추고 어떤 가치 요소를 새로 창출할지 고민해 봅시다.

나만의 조건과 기준을 발견해 나가면서요.


저자들은 이렇게 말합니다. 

경영학을 가르치는 사람으로서 우리는 한 사람이 이득을 보려면 다른 사람들의 희생해야 한다는

경쟁과 분할로 점철된 세상읠 원하지 않는다.

우리가 찾고자 하는 것은 경쟁을 뛰어넘는 조직과 개인이다.


책<브루오션 시프트>에는 이런 경쟁을 뛰어 넘는 여러 조직을 소개 합니다.


정교한 실력이 아닌 통합과 평화라는 가치를 내세운 이라크 청년 오케스트라,

객실의 크기가 아닌 수면 환경에 초점을 맞춘 호텔 시티즌 M,

감금이 아닌 갱생을 목적으로 하는 교도소를 만들어 재범률을 낮춘 말레이시아 정보의 사례까지

모두 틀에 박힌 경쟁에서 벗어나 자신만의 시장을 만들면서 성공을 이루었습니다.


경쟁에서 지쳤다면 자신만의 가치를 만들어가고 싶다면 <<블루오션 시프트>>의 다음 질문에 답해 보세요.


기존 사람들이 당연하게 받아들이는 가정에 당신은 어떻게 이의를 제기 할 것인가?


생각해 보셨나요?





https://youtu.be/H_8I0rOmFuQ

반응형
반응형
감사합니다. 고맙습니다.
행운과 복을 드립니다.

또 늦장부리다 늦을 뻔 했습니다
늦지는 않아 다행입니다
긴장이 풀릴때가 가장 조심해야 할것 같습니다

반응형

'Gold 일지' 카테고리의 다른 글

[Stepup 64day] 9.2  (0) 2018.09.03
[Stepup 63day] 9.1  (0) 2018.09.01
[Stepup 61day] 8.30  (0) 2018.08.31
[Stepup 60day] 8.29  (0) 2018.08.29
[Stepup 59day] 8.28  (0) 2018.08.28
반응형

자바스크립트 백스페이스 javascript history.back BFCache 이슈 


사용자가 백스페이스를 누르거나 history.back 이벤트가 발생하면

브라우져는 일단 이전 페이지 캐시가 있는지 확인하며 있다면 캐시 페이지를 보여줍니다.

이때 캐시를 Back-Forward Cache 라고 말합니다.


페이지 응답속도를 빠르게 하고자 하는 방식이지만, 페이지에 대한 추가적인 load 이벤트가 없어

개발자의 의도와 다른 페이지를 보여주는 경우도 있습니다.


이때 문제점을 해결코자 2009년에 pageshow/pagehide 라는 이벤트가 생겼고

persisted 라는 boolean 형의 변수에 bfcache를 사용했는지 안했는지를 알려줍니다.


하지만 이 변수에도 브라우저별 OS별 버그가 발견되었습니다.

해당 버그를 FF, IE 에서는 수정하였으나, 

사파리나 크롬에서는 2016년에 해당 버그가 있다는건 알고 있다 발표했지만 수정하지 않고 있습니다.


window.performance.navigation.type 변수의 값이 1면 새로운 페이지를 로딩해서 불러온 것이고

window.performance.navigation.type 변수의 값이 2면 bfcache를 사용한 것이라고 합니다.


결론은 아래 코드로 모든 브라우져에서 동작합니다

window.onpageshow = function(event) {

   if ( event.persisted || (window.performance && window.performance.navigation.type == 2)) {

       cartCalc(); // 

   }

};



반응형

+ Recent posts