2014년 2월 10일 월요일

mysql table int pk값 0들어가는 현상

mysql db 에서 int 형 primary key 가 0이 들어갈경우
일단
1.null 값이 허용되면 null일경우 0으로 갱신

mysql sql_mode 설정 값 변경

>> select @@global.sql_mode;
>> select @@session.sql_mode;

현재 sql_mode 값 확인

>> set sql_mode = 'NO_AUTO_VALUE_ON_ZERO';

으로 설정해줄수 잇음

오늘 현상은 그것은 아니었고

insert into table(intpk, val1) values('0','t');
auto increment 가  intpk에 걸려있으면 당연히 0을 넣어도 1 그리고 그 이후값이 들어가짐 


그런데 유니크인덱스 또는 프라이머리키  intpk, email 두개 걸려잇음

insert into table(intpk, val1, email) values('0','t','ss@ss.s.s') duplicate key update
intpk = '0',
email = 'ss@ss.s.s';

이러면 intpk가 0으로 업데이트가됨


=================================================================

unique 키가 두개 물려 잇음(a,b)가 물렷다 가정하자
insert into table(a,b,c) values('1',2,3);

duplicate key update c = 1

이것은 곧


insert into table(a,b,c) values('1',2,3);

update table set c= 1  where a= 1 or b= 2 limit 1

이거랑 같은말임


duplicate key update c = 1, a=LAST_INSERT_ID(a) 이런것도 한 방법이 될수 있음


http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate.html

2014년 1월 21일 화요일

자바스크립트 인자값 전달

 <script> o = { "h" : 3 }; function obj(v){ v.h = 4; } obj(o); //4 alert(o.h); //객체를 전달하면 참조값을 전달함 o1 = "3"; function str(v){ v = 4; } alert(o1); //3 //원시데이터(number, string, undefined) 등을 전달하면 원본을 복사함 </script>

2014년 1월 20일 월요일

국민, 롯데, 농협카드 개인정보 유출

국민, 롯데, 농협카드 개인정보 유출

이미 이전부터 유출 사실확인하고 수사 착수 후 검거까지 완료
 2013년 6월 경에 카드부정사용방지시스템 고도화 과정에서 코리아크레딧뷰 개발담당자가 유출함.

원본파일 압수조치
 비밀번호, CVC는 노출되지 않음

보이스피싱이나 스미싱, 불법문자에 활용될 소지가 높음

금번의 문제는 인적보안의 문제가 큼

2014년 1월 19일 일요일

parseInt와 Number의 차이

parseInt 는 기본적으로 ECMA 3에서 8진수로 표현 꼭 parseInt("09",10)으로 십진수 표현을 해야됨
ex> parseInt("09") //값없음
ex> parseInt("09",10) //9

Number은 그냥 해도 됨
ex> Number("09") // 9

Number이 더 빠름, parseInt는 말 그대로 파싱을 함 더 느릴수 밖에 없음.
하지만 parseInt는
parseInt("09 hi",10) //9
이렇게 문자열이 있어도 숫자를 얻을수 있다.
** 이 함수가 그리 뛰어난건 아니다. hi 09하면 NaN이 된다.

배열, for , while


//    유사배열
    var a = {
        "0" : "00",
        "1" : "11",
        "length" : 2
    };

alert(b = Array.prototype.join.call(a));


// 정순 루프가 아니면 --를 해서 0으로 끝내는게 비교해서 값을 빠져나가는것보다 성능상 이득이 있음
var arr = [1,2,3,4], b =0 ,a = arr.length;   

    for(a; a--;){
        b += arr[a];
    }

    alert(b);

    a = arr.length;   

    while(a--){
        b += arr[a];
    }
alert(b);

closure 정리


    //자바스크립트의 함수의 가비지컬랙터는 우선순위가 낮음
        function plus(a,b){
            var hap = a+b;
            return function(c){
                return hap += c||0;
            };
        }        //참조된 hap은 가비지컬렉팅 되지 않고 계속 살아있음

        var r = plus(3,4);       
        alert(r());        //7
        alert(r(3));    //10

//클로저 활용1
//1.setTimeout 함수 인자 제공
//본래 setTimeout은 function(){}  이런식으로 나와서 인자를 전달 할수 없음 하지만 이런식으로 클로저 활용하면 인자를 전달할수 있음.
//밖에서 참조를 해서 인자를 줄수 있긴 하다. 하지만 실제 함수가 호출 될 당시에는 줄 수 없다.
function callLater(a,b,c){
    return (function(){
        a[b] = c;
    });
}

window.onload = function(){
    var funcRef = callLater(document.body.style,"background","yellow");
    setTimeout(funcRef,500);
};








//2. 외부에 노출되지 않음

var div = (function(){
    var buffar = ["<div>","","</div>"];
    return (function(contents){
        buffar[1] = contents;
        return buffar.join("");
    });
})();

alert(div("a"));

//클로저는 메모리 누수 문제가 생길수 있음. 내가 모르는 사이에무언가에서 계속 메모리가 생성되어 가비지 컬렉팅되지 않는 현상이 발생 할 수 있음.
//특히 일반적인 것은 생관이 없는데 host객체들 (window, document, activeX 객체 같은 경우 특히 심함) 객체의 원형을 참조 하면, 브라우저가 종료 될때까지 해지가 되지 않는다. 일반적인 객체들은 1->2->3->1이 참조 되면 가비지 컬렉션 대상이 되지만 dom노드 등 호스트 객체들은 원형을 참조 하면 해지를 하지 못한다.

스큐어모피즘, 플랫, 미니멀리즘

* 알아두자
 #  타이포(typo) : 서체
    -  타이포디자인 -> 서체디자인
 # 픽토그램(pictogram) :  그림문자
 # 메타포(metaphor) : 은유, 어떤 것이 떠오름
 # 리얼메타포(real-life metaphor) : 실세계 모습과 현상, 사물의 형태 재현

스큐어모피즘(skeuomorphism), 스큐어모프(skeuomorph)
 - 도구 본래의 모양 형태를 그대로 따라가는 방식
    -> 원래 그렇게 생기거나 그렇게 작동해야 할 이유가 있지만, 실질적으로 그럴 필요까진 없다. 닮았다고 스큐어모피즘이 성립되는건 아니다. 지나치게 범위가 넓게 쓰임.
    -> 근래들어 ios나 ms metro 디자인이스큐어모피즘 논란이 있음
    -> 스큐어모피즘은 사용자에게 아날로그적 환경을 제공 함으로써 높은 사용성, 학습성에 좀더 많은 이득을 줌 
    -> 지나치게 현실과 같아 질 경우 창의적인 결과물을 낳긴 힘듬

플랫(flat)
  -> 2D로 디자인, 효과를 많이 주지 않음. 군더더기 없는 디자인.
  -> 타이포그라피와 픽토그램에 집중, 오직 색감에 집중 할 수 있게 하는 접근법
  -> 이미지 개성에 한계 존재

 미니멀리즘(Minimalism)
  -> 플랫의 상위개념 
  -> 쓸데없는 요소 제거, 다채로운 색감이나 타이포 제외
  -> 절대 직관적이지 않음
  -> 효율성 중시