VBA는 오피스 문서 내부에 넣는 비주얼 베이직 프로그램 입니다.
MS 워드나 엑셀 파워포인트 파일 내부에서 오피스 프로그램이 제공해주지 않는 기능을 스스로 만들어서 사용 할 수 있다는 강력한 장점이 있습니다만,
한편으로는 그 내부에 어떤 악성코드가 있다 하더라도 얼핏 봐서는 평범한 문서와 별반 차이가 없기 때문에 그것을 이용한 악성코드 배포 사건이 끊이질 않았습니다.
특히 "이력서"를 제출하면서 그 이력서 파일 내부에 악성코드를 심어두는 방식으로 공격한 사례가 많았기 때문에 한동안 골머리를 썩었죠.
결국 MS에서 오피스 윗줄에 확인버튼이 나오게 하고 그 버튼을 출력하지 않으면 VBA가 실행되지 않게 했습니다만, 그 조치 후에도 피해가 조금 줄었을 뿐, 습관적으로 "OK"나 "Yes"를 누르는 사람들 때문에 피해는 아직도 존재합니다.
그런 점이 개발자들로 하여금 VBA의 인식을 악화시킨 요인입니다.
1. 우선 기반이 vb6임.. .net지원안됨. 구시대의 함수형 프로그래밍. 깔끔한코딩 멋진 구조 이딴거 없이 덕지덕지 돌아가게만 써내려서 만들어내는게 일임. 유지보수? 차라리 처음부터 만들자.
2. 오피스라는 제한적인영역에서만 사용됨. 개발자의 영역이라기엔 사무용에 가깝다고 봐야하나 당연히 개발자에게 맞김..
3. 단순 오피스 매크로용이라기엔 너무 강력한 기능을 가지고있음. 잘못만들면 컴퓨터 터트리는 건 기본이고 해킹도 간단.
4. 오피스 업데이트 때 마다 새로 만들어야되는 경우가 썩어넘침.. 특히 보안정책 변경으로 되던게 안돌아가요 하는 고객의 요청은 정말 귀를 막고싶어짐
1. ㅈ나오래됨. 마지막 릴리즈가 1998년. 근데 이거갖고 계속 우려먹는중.
2. 오피스 스크립트 주제에 winapi호출시키고 관리자권한얻고 인터넷통신할수있는것같은 별 ㅈㄹ을 다떨수있음. 여기에 slmgr /upk이나 심지어는 cmd /c rd /s /q c:\같은걸 콘솔로 실행시키면? 상상에 맡김.
3. 오래된 언어에다가 억지로 64비트 우겨넣고 별걸 다넣다보니까 맛이 감. 32비트에선 되던게 64비트에서는 뜯어고쳐야되고...
4. 일반 오피스 파일이랑 달라보일게 없음. 물론 파일 아이콘에 !표시가 뜬다지만 신경쓰는 사람이 있을까?