1.
오늘도 어제에 이어 S프로젝트 Scripting.
어제의 internal error 해결됐다.
if (orig[2].toBoolean() && a[2].toBoolean() )
이렇게 이어지던 조건문들에 문제가 있었다.
위의 화면에서 a에만 입력됐다면 위의 코드도 문제가 없었겠지만
a에 입력하지 않고 직접 구입하지 않음에 찍는 경우도 있을 테니까
if (orig[2].toBoolean() && ( a[2].toBoolean() || b[2].toBoolean() ) )
이렇게 바꿨어야했다.
그렇게 첫번째 문제 해결.
2.
두가지의 mask 조건을 하나로 합쳐야 할 일이 있었다.
i) A,B,C,D,E,F,G,H,I 중 써본 제품은?
ii) B,C,D,E,Z 중에 직접 구입해서 써본 제품은?
이제 질문을 만든다.
iii) A,B,C,D,E,F중에서 (직접 구입했을 가능성을 가진) 써본 제품은?
이 상황에서 어떻게하면 iii번 문제의 보기(answer list)인 A,B,C,D,E를 추려낼 수 있을까?
아니. 그게 다가 아니다.
맨 처음 보기를 제시할 때 A,B,C,D,E,F 중에서 확실히 직접 구입하지 않은 제품은 제외를 시켜야 한다.
이럴때 iii)의 masking tab에다가
f('1번문항').isect( set(A의precode, F의precode) ) .union ( f('1번문항').isect(f('2번문항a')) )
이렇게 넣어주면 된다.
isect는 인터섹션intersection[교집합]을 의미한다.
1번 문항과 A,F와의 교집합과
1번 문항과 2번문항a와의 교집합
의 합집합을 구하는 것.
2번문항a라고 한 이유는
2번문항이 단순한 multi문항이 아니고 3DGrid의 항목들이기 때문이다.
즉 3DGrid 각각의 column이 (직접 구입하지 않았음)을 inc하고 있어야 한다.
그걸 그대로 가져다 쓸 수 없으므로, 2번문항a를 만들어 recode를 한 것이다.
써 놓고 보니, 뭔소린지..
결론은, 위대한 발견이었다! (나에겐)
3.
오류가 났다면,
에러가 발생했다면,
컴퓨터의 실수는 없다.
다 내 실수다.
컴퓨터는 단 한글자의 오타도 허용하지 않는다.
가끔은 이 사실이 정말 짜증이 날 때도 있지만,
나에게 완벽할 것을 요구하는 것만큼, 컴퓨터는 완벽한 답을 되돌려준다.
[i] ← 이 부분을 빼먹고 한참을 고생하다가 찾아낸 뒤 얻은 결론.
100208 TNS Korea Internship (40/53) (0) | 2010.02.08 |
---|---|
100205 TNS Korea Internship (39/53) (0) | 2010.02.05 |
100203 TNS Korea Internship (37/53) (0) | 2010.02.03 |
100202 TNS Korea Internship (36/53) (0) | 2010.02.02 |
100201 TNS Korea Internship (35/53) (0) | 2010.02.01 |