Proframe 4c, 5c 에서 제공하는 기능중 File IO를 사용할 때 주의할 점이 있다. File IO 의 Read Buffer는 최대길이가 10240 (10kb) 로 고정되어 있다. 때문에 File IO 구조체를 만들때 총 길이가 10240을 이상일 경우 한번에 데이터를 못읽는 경우가 생긴다.그리고 그 다음번 데이터를 읽을때 다음 전문의 시작부분이 아니라 소실된 데이터 부분부터 시작하기 때문에 담기는 데이터가 꼬이게 된다. File IO의 Read Buffer 의 최대길이는 엔진소스에서 설정되기 때문에 해당 부분 변경을 위해서는 패치가 필요하기 때문에부득이한 케이스를 제외하고는 AP 개발시에 사용하는 File IO 구조체의 총길이를 10240 미만으로 가져가야 한다. 왜 이렇게 만들어놨을까 궁금..
Proframe 가이드 상으로는 일반배치 작성시 하나의 배치모듈에 하나의 일반배치서버를 사용하도록 가이드 한다. 하지만 배치 모듈이 만개가 넘어가는 상황에서 각 모듈마다 일반배치서버를 생성하면 너무 큰 리소스 낭비이기 때문에 많은 프로젝트에서 하나의 일반배치 서버에서 여러 배치 모듈을 호출하는 방식을 채택하고 있다. 이 경우에 문제점 중 하나는 모든 배치모듈들의 로그가 하나의 로그파일에 생성되기 때문에 수천개의 로그가 뒤죽박죽 섞일 수 있다. 이를 해결하기 위해 스튜디오에서 일반배치서버 소스를 자동 생성하지 않고 약간의 커스터마이징을 추가하여 직접 서버를 만들어야 한다. 다음 소스는 Proframe 스튜디오 상에서 일반배치서버를 생성할 경우 자동 생성되는 서버 소스의 pfmBatchInit method ..
테이블 데이터를 지울때 보통 DELETE, TRUNCATE, DROP 셋 중 하나를 쓰는데위 명령어들은 다음과 같은 차이점이 있다 DELETE commit 전에는 롤백이 가능하다where 절 추가가능data는 삭제되지만 테이블 저장공간은 삭제되지 않는다. TRUNCATE실행하면 롤백 불가능where 절 사용불가능인덱스를 포함한 테이블 데이터 삭제, 저장공간 역시 삭제. DROP테이블 자체를 삭제 대용량 데이터를 DELETE로 삭제할 경우 눈에 보이는 데이터는 제거되었지만 HWM(High Warter Mark)는 기존 데이터 위치에 그대로 있기 때문에 데이터 delete 후 몇건 없는 데이터를 select 할때 대용량 데이터를 full scan 하는것처럼 성능저하 현상을 보일수 있다. HWM 까지 초기위치..
Batch 업무는 특성상 배치 실행여부를 확인하기 위해 반환값에 의존할 수 밖에 없는데 Proframe에서는 Batch Jop information을 지원하여 조금 더 수월하게 배치 실행 정보를 확인 할 수 있다. 배치 실행 정보는 PFM_BATCH_JOB 테이블에 기록되는데, 기본적인 status, 시간, 배치모듈 정보 외에도 다음의 API를 사용하여 배치 성공과 실패에 대한 추가적인 정보를 기입 할 수 있다. 배치 성공시:PfmBatchSuccessJobTable pfmBatchSuccessJobTable;strcpy( pfmBatchSuccessJobTable.job_last_key, "100" );pfmBatchSuccessJobTable.job_nrm_cnt = 30;strcpy( pfmBatc..
위와 같은 메세지와 함께 리눅스 부팅이 안된다면 /etc/selinux/config 파일의 설정을 잘못한 경우이다.얼마전 CentOS 7 에 Oracle 11g 를 설치하며 /etc/selinux/config 파일 내용중 SELINUX=permissive로 바꾼다는 것을 SELINUXTYPE=permissive로 잘못 입력하여 설정 변경후 재부팅 하는데 부팅 자체가 안되어 난감했었다. SELinux는 리눅스 커널기반의 보안강화 모듈인데 이에 대한 자세한 설명은 정광섭님의 블로그에 잘 정리되어 있다. 여튼 해당 문제점을 해결하려면 boot configuration 에 selinux=0 를 추가해줘야는데 CentOS의 경우 부팅화면에서 'e' 키를 누르면 boot configuration 화면으로 들어갈 수..
ProFrame 싫다. 처음 ProFrame이란 프레임워크를 접했을 때는 상당히 거부감이 들었다. Proframe은 많은 것을 제공한다. 업무개발자는 정말 순수 업무 로직만 개발하면 된다. 개발자 입장에선 편리하다는 장점이 있지만 너무 많은 편의로 인해 개발 실력을 쌓을 많은 기회를 놓치게 된다. 한참 성장하고 싶은 초보 개발자의 입장에서 이점이 가장 싫었다. C언어를 사용하여 개발하는데도 Proframe을 이용하면 인프라 레벨의 low level 프로그래밍을 할 기회가 거의 없어진다. OS, 네트워크, 프로세서 동작 구조, 메모리 관리와 동작방식, 라이브러리 동작, 링커/로더등에 대해 이해하고 고민할 필요가 없어진다. 그저 입력구조체를 만들고 데이터를 받아 처리하는 업무로직을 구현하고 출력구조체로 가공..
- Total
- Today
- Yesterday
- SA란
- 오라클
- Terraform GCP
- 아마존 입사
- oracle
- AWS 인터뷰
- AWS 후기
- AWS 신입
- 뱅크샐러드 면접
- AWS 신입 채용
- expect 스크립트
- ProFrame
- GCP 자격증 후기
- AWS 취업 후기
- gcp 자격증
- dbio
- AWS 입사
- AWS Associate Solution Architect
- TECH U ASA
- 아마존 이직
- 프로프레임
- 2022 회고
- 구글 입사 후기
- AWS TECH U
- GCP 이직
- 구글 이직
- AWS 면접
- Terraform
- AWS 이직
- AWS 문화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |