본문 바로가기

금융(Finance)

[Proc]프로씨의 단순함

반응형
SMALL

[Proc]프로씨의 단순함

 

프로씨는 대형자바 플젝에서 배치파트를 구성하는경우가 많죠

프로씨가 Si플젝에서 전산지식 별로 중요하지 않다는것을
보여주는 대표적인 프로그램입니다

[OKJSP에서 제가 종합한 의견]
- SQL 잘하는것은 절대 자랑이 아니다.
- 프로그램 레벨 SQL은 아무나 짠다..
- 많은 사람이 SQL공부 파견지 에서만 공부하고도 월 550만원 받는다
- 절대 따로 시간내서 SQL공부할 가치가 없다
- 대용량 솔루션 책이 나온이후로 SQL 기법이 많이 상향평준화
- 실제로 신기술 스터디는 많은데 SQL 스터디는 거의 없죠

자바프로그램도 프로씨 처럼 곧 될겁니다.
근데 월 550짜리 잡은 계속 존재 할거에요

하지만 투입된 파견인력의 성실성,업무대화,분석능력 이런건 의미가
있을겁니다. -- 개개인의 인문학적 소양 이런것과 좀 관련됨
===============================================
프로씨 소스상에

디비에서 몇건 단위로 FETCH 조회 할것인가?
FETCH_CNT 변수 선언


조회용 구조채 선언 select 결과와 동일하게
데이터 유형,길이등
struct {
char key [FETCH_CNT][10+1] ;
char data [FETCH_CNT][100+1];
}

select 문 작성
count 변수 선언 및 초기화
-- 구조체초기화
-- a.실제 조회한 건수, b.이번조회 직전 조회건수, c.조회단위(위에 FETCH_CNT)
-- LOOP는 a == c하면 계속진행
-- c언어 문법 이용해서 업무 로직구사
-- 삼파일식으로 데이터 dump 해도 되고
-- 다른테이블에 insert update등 작업
-- 필요하면 대량으로 array fetch, array insert, array update (대용량 책등 참조)
-- LOOP 한번 돌때 마다 초기화 a,b,c등 이런 건수변수,구조체 초기화

[초기화] 이게 굉장히 중요합니다..각 변수들을 어느레벨에서 초기화 할것인가.


정말 이화식-대용량디비 솔루션인가 이책 100% 이해하면
(고졸도 3개월 투자하면됨)
전산경력으로 계산된 단가 초중고... 월 550쉽게 받습니다 ㅋㅋ

씨문법은 아무책(기본)이나 철저히 마스터 하고 "C FAQ" 이런책은
지하철같은데서 읽으면 씨의 원리를 좀 이해할수 있죠
-- 이런것을 하루에 10분씩 읽은 개발자는 좀 깊이는 있고
나중에 좀 편합니다. 10분이 모여서 엄청난 차이를 내니

전 1996년에 대학원졸, 이 이유하나만으로 월 450으로 damned(망할) 프리일 시작했슴
딱 3개월 학원다니고 교수가 추천해준 금융사이트에서 경제전공 석사로 했는데
1년만에 .. 그냥 고졸이나 대졸이 해당 사이트 표준 프로씨 소스를 기초로
소스 수백본 기계처럼 찍어내는 단순플머가 되었습니다 T_T

전산지식이 별 의미 없다는 이야기 입니다.

프로씨 개발자는 [1.분석 설계, 2.최종리허셜 차세대 이행 시나리오 수행]
이런 기간 제외하고는 날로 먹는 직업입니다

근데 프로씨는 특히 바쁜 사람만 바뻐요.. 운좋으면 정말
편하게 고급단가로 [차세대 2년 + 1년 유지보수] == 총 3년 널널할수 있슴

결론 : 프로씨는 한놈(제대로된 샘플)만 골라서 완벽하게 이해하면 끝!
씨언어 수준은 딱 지하철 출퇴근 시간 이용해서 공부하면 충분!
프로씨는 실제내용 99%가 SQL 그자체이고 1%만 씨언어 차지함

[Array fetch 유용성]
프로씨가 유용한게
- PL/SQL 하고 다르게 SQL 처리 할때 마다 로그를 찍고
단계별로 검증하기가 좀 용이합니다.

그리고 C배열에 담아 놓고 일괄로 insert,update로
가능합니다.

예를 들어 대출계좌의 이자계산, 연체시작일. 다음이자일 이런것을 계산하고
최종 커밋을 할때 여러 테이블에 인서트를 해야 하고 Select 문도 좀 복잡하고 무겁습니다.

즉 1개 select 문의 결과를 가지고 10개 테이블에 인서트가 일어나는데 100만건 조회결과로 10개 테이블에 넣으면

-- 결과데이터셋 1개 인서트(10개테이블) 하는데 5초걸리면 무지막지한 시간이 걸리는데 (5초 * 100만개)

pro*c에서 select 결과를 C 배열에 담어놓고
- 1만개짜리 배열을 만드는거죠 구조체로
- 그리고 만개 단위로 fetch해서 Array 인서트를
10개 테이블에 인서트를 삼파일 로딩하는식으로
하면 3-4시간이면 잡이 성공적으로 종료됩니다.

새벽 2시에 전체은행 연체판단 하는 프로씨가 돌기사작하면 적어도 새벽 4시에는 끝나야 하니까요..
좀더 비지니스로직에 집중하는 파트가 존재하는 경우
씨 문법을 사용할 수 있으니까
프로씨 array 처리가 유용합니다.

그리고 차세대 이행시 2-3일동안 수많은 배치가
구 데이터를 신ERD 디비로 옮깁니다.
이때 시간이 많이 걸리는 배치는 시간을 줄이라는 압박을 받죠.. 그리고 수행시간이 짧어야 나중에 실제 차세대 오픈직전 몇일간 리허셜시 에러가 나도 복구가 쉽습니다.

이런이유로
1) 검증이 쉽다 .. SQL을 쪼개서 단계별로
2) 대량파일을 프로그램 메모리(Array)에 담아놓고
fetch단위가 수행될때 마다 Array를 초기화 하면서
삼파일로딩 하듯이 대용량으로 작업가능하다
이런 잇점이 있습니다.

프로씨가 문법적으로는 SQL 빼놓고 강의할 가치가 없을정도로 허접하기때문에 책도 별로 없습니다.
자바책은 많은데 프로씨 책은 사람들이 별로 찾지도 않거든요..그만큼 쉽고 상식적이라는 이야기 입니다

 

https://okky.kr/articles/194180

반응형
LIST