4 분 소요

트리거 = pa에 시작되고 요청을 호출할때 발생함

비즈니스 로직은 PAD에 담기게 됨

시퀀스 INIT= 사전에 준비해야할 작업(사이트를 열어서 로그인 등) 프로세스 = 작업하는 곳 파이널 = 작업을 업로드 하거나 보낼때 사용 됨

케이 시냅스 = 건드리지 않는 부분 비지니스 시냅스 = 필요에 따라 수정 하는 부분 리트라이어블 흐름 = 다시 돌려야할 부분 ㅇㄹㄴㅇㄹ = 가시 돌리면 안되는 부분

프레임워크 교육

8월 22일 14시

Job은 실행 기록같은 것이다

(로그 기록)

PA는 PC가 없이 가동이 됨. API로만 자동화

PAD는 사용자처럼 작업해서 데이터 수집을 해서 작업하는 것

트리거 발생( 메일이 들어오거나, 매일 8시에 돌린다 등등 조건을 걸 수 있음)

트리거는 PA에서 걸 수 있도록 함. PA가 PAD를 호출할 수 있도록 구성되어있음

PA와 PAD를 모두 포함한게 프레임워크

비즈니스 로직은 PAD에 남게 됨

PAD 호출 후 PAD가 정상 호출에 성공을 했는지 실패했는지 남길 수 있음

init process final 크게 3가지가 있음

init이 과제 준비 작업(변수 설정 및 날짜 계산. 사전 작업. 사이트 로그인하는 작업 등등)

process는 실제 작업들

결과 파일 작성 및 메일 보여주는 작업 등이 final 작업

PAD에서 끝이나면 PA로 호출할 수 있고 끝이 남

하위 흐름 중에서

[KSynapse] : 건드리지 않는 내용을 넣게 됨

[Business] : init에서 파일을 다운 받아야 한다면 Business 하위 흐름에 위치 시켜야 함

init도 두 부분으로 나뉘게 됨(오류 발생했을 때는 기준으로)

[InitRetryable] : 다시 처음부터 돌리는 방법1(껐다 다시 켰을 때 성공이 되는 경우도 있기 때문)

[InitOnce] : 다시 돌리지 않는 부분을 넣음

ex) 상품 등록을 하게 되면 다시 중복해서 등록할 필요가 없으니까 InitOnce 부분에 들어가게 됨

[SetTransection] : 메일 10건을 처리를 한다면 프로세스 부분을 어떻게 구성을 해야하는지 생각.

반복문? 프로세스 재사용? → 재사용을 하는 것이 낫다

그러면 프로세스 부분은 여러 번 돌아가게 됨

10건이 아니더라도 목록을 추출하면 테이블에 n개가 들어가게 되어서 프로세스로 돌어가게 됨

[Process] : Step이 나뉘어져 있는데 이렇게 나눌 수 있다 라는 것

10건 중에서 3번째가 오류가 났으면 3번째부터 다시 수행. → 그 3번째 안에서도 오류가 난 부분과 안난 부분을 나누기 위해서 Step을 나눔

완료된 Step이면 다음 Step으로 넘어갈 수 있는 부분을 변수 설정 해줄 수 있음

[StepFinal] : 메일을 보내거나 끝났을 때 작업을 넣는 것

#개발표준(회사와 사이트마다 다름) -변수명명 규칙, 흐름명명(작업을 동사행태로 가져옴) 규칙을 확인해야됨

-PDD = 업무 분석 및 To-Be 설계 0.1부터 시작해서 버전을 계속해서 설계도를 업데이트가 되야됨 -문서를 정확하게 설계해야지 다른 사람들도 한눈에 알아보기에 좋은 개발자라고 할 수 있음.

–과제를 분석하고 설계를 해보고 다음주 수요일까지 개발까지가 목표 목요일은 QA까지 완료해야됨.

상호명 엑셀 파일을 읽는것 - 작업대상

init retryable = 에러가 발생해서 성공할때까지
프로세스를 준비하기 위해서가 가장 정확한 의의라고 볼 수 있다.

x: 성공 error : 일반적인 에러 예기치 못한 BRE, Notry = 예기된 에러로 리트라이를 안하며 개발자에 따라 각자 정의됨 예) 웹하드에 파일이없거나 메일이 안갔거나 재시도를 해봤자 의미가 없는 것

예시 과제 설명(국세청)
프로젝트 개요를 보고 init과 process와 final을 나눠야 함
init에서 엑셀 파일과 조회하는 과정을 2번 해야 함
프로세스 명도 잘 봐야 함. 이게 목적인 것이다
엑셀 파일을 읽어서 상호명을 읽음. 작업 대상(상호명이 몇 개가 있는지 모르니까). 방문판매사업자 조회를 상호명만큼 해야 함. 이게 process만큼 해야 함(트랜잭션) 사업자 등록번호를 얻는 것까지가 프로세스. 국세청에 조회는 작업대상만큼 조회를 할거임. 그럼 프로세스. 휴폐업 상태의 상호들을 엑셀 파일에 정리하는 것은 한 번만 함.프로세스에서 조회만 하고 전체 트랜잭션 데이터를 엑셀에 한 번만 써도 됨. 메일 공유는 한 번만 해도 되니까 step5로 해도 되겠다.
init
initOnce
없음(사전에 준비해야 될 것이 없음). 예를 들어서 경로를 세팅하는데 날짜가 아닐 수도 있음. 영업 일이 아닐 때 트랜 잭션이 끝나야 하니까. 이체 일인데 영업 일이 아니면 이체를 하면 안될 때
있다면 경로 설정 정도라고 볼 수 있음
initretryable(프로세스에서 사용하는 것을 준비하는 단계라고 생각하면 됨, 재시도가 가능한)
프로세스에서 실패했을 때 다시 돌아감. 성공하면 한 번만 실행됨. ex 확인 버튼을 누르다가 오류가 나면 다시 다 닫았다가 다시 열음. 프로세스에서 실패했을 때도 들어감. (다른 경우는 처음 경우와 settransactiondata에서 실패했을 때)
사용하는 프로그램을 닫았으니까 다시 열 수 있는 것이 들어감
공정거래위원회 조회 화면까지, 국세청 조회 화면까지 해야함
initretryable이 없으면 계속 확인하고 닫고 확인하고 닫고 해야함. 비효율적
settransactiondata(한 번씩만)
상호명 엑셀 파일을 읽어서 데이터 테이블로 만들어야 함(트랜잭션이라는 것. 트랜잭션 아이템의 묶음을 트랜잭션이라고 하는데 트랜잭션 아이템을 트랜잭션으로 보기도 함)
process
StepA : 상태를 가지고 옴(영업일인지, 휴업일인지)
B :
int_transationNumber를 우리는 데이터테이블로 받기 때문에 0부터 시작
Step : A, B, C, D
트랜잭션을 먼저 설정했으니까 먼저임
0 A → 0 B → 0 C → 0 D → 1 A … 순으로 감
max : 2라고 했을 때(첫 시도와 별개로 재시도가 2번)
0 A 성공 → 0 B 실패(첫 시도) → 0 B 실패 → 0 B 실패 → 1 A 로 가야됨. (이미 0 트랜잭션에서 재시도 횟수를 채움)
실패할 때도 코드를 잘 짜야함(담당자가 실패했을 때 메일 보내달라고 할 수 있음)
총 4가지
(성공으로 집계) : 에러가 없을 때가 있고(성공), 비즈니스 룰 익셉션(BRE)일 때(사전에 정의된 에러),
(실패로 집계) : 일반 에러(위에서 했던 경우. 일반/예기치 못한), NoRetry 일 때
BRE와 NoRetry를 스스로 구분할 줄 알아야 하는데 모르면 물어봐라
파일이 없거나 그럴 떄 재시도 해봤자 의미가 없으니까 BRE나 NoRetry로 됨
공책 다시 보기
0 A 실패 → 0 A 실패 → 0 A 실패 → 1 A 성공 → 1 B 실패 → 1 C BRE → 2 A로 감
방문판매업 신고 상태일 때가 없다 → BRE 에러? → 정의되지 않음 → NoRetry일까? → 성공과 BRE일 때는 성공으로 집계를 하고 예기치 못한 에러와 NoRetry는 실패로 집계를 한다 → BRE로 들어가는데 우리가 잘못됐냐 담당자가 잘못됐냐 이건데 엑셀에 조회 되지 않은 값을 줬으니까.
stepfinal
엑셀 저장, 메일 발송까지

sdlfkg’;sldkfgl;’ksdb,xmc/v.,mb/x.c,vb,.msdflkgl’e;lkrgoweiropgi[posidfgk;’xlkcbx,cvmb,/.mxc.,vsdlfkgl;’e;lrkopisdoigsd;lfkg;sldkf,.xc.,vb.,x/c.v,bm/x.c,vbmxc/.,vgskdflg;’sdfl;gk;dlsf’geortipwe[poritewg.lsdfmgbsmd;flmbsl;fd;lgksd;’fkgle’;rlitoweir[potis;fd’lgkls’d;flkxc,vmb/.xmcvb./,xmcv./b,mx/.v,cmbdsgs’;fldgks’;dlfkg;’erotiwope[rpotiksjdkfl;gskdfjg;lksdjfgklcgvnmxc,.m/n.,m.v,cbn,/.cmvb.,nmc/v.,blfkh’;dflgkh;ldf’;glkheoritpe[rpotipoi]]]]]

댓글남기기