감사합니다.
저도 MySQL 게시판 답변하고 있지만, 이렇게 길게 답변하긴 어려운 일인데요 ^^
어제 문서 좀 읽어 봤는데.... 이제 조금 뭔가 알겠더군요
namespcae가 뭔지도...., M 문법도.......
고맙습니다.
>>박지훈 님께서 쓰시길<<
:: 저는 지난 2년간 Cache(3.x) 를 사용했던 개발자입니다.
:: (협력업체 근무자라고나 할까요)
:: 주로 VB를 사용해서 OA 프로그램을 개발했습니다.
:: 저 또한 배우는 것이 쉽지 않았는지라
:: (하이콤-Cache 한국내 디스트리뷰터-에 쫓아다니면서,
:: 또 개발자분 모셔서 식사대접하면서 많은 도움 받았습니다)
:: 이런 자리 마련되었다고 하길레
:: 시작하는 부분에 있어서는 조금이나마 도움이 될 수 있을까 하고 들리는 것입니다.
:: 워낙에 다른 디비들과 다른 부분들이 많아서
:: 처음 공부할때에 많은 애로가 따르기에
:: 그런 부분은 작은 도움을 줄 수 있지 않을까 생각했습니다.
:: 디비에 깊숙히 들어가기 시작하면 저도 같이 헤메야겠죠.
:: 아직까지도 모르는 것이 더 많은지라...
::
:: 제가 프로그램을 접한 것이 Asem -> C -> VB 순서라
:: Cache를 접하면서 꼭 Asem을 하는 느낌이 들었습니다.
:: 세 언어의 성능의 차이는 아시는 분들은 아실 것입니다.
:: Cache는 세 언어의 특성을 다 지닌 것 같습니다.
:: SQL을 사용하는 것은 편의성이나 속도면에서 VB를 사용하는 느낌이고...
:: Cache Script를 사용하면 C를 사용하는 느낌이고...
:: 순수하게 M 언어 차원에서 Global(data를 저장하는 기본단위라고나 할까요)을
:: 직접 Access하고 처리하면 Assembly 언어를 사용하는 느낌입니다.
:: Assem이 I/O를 통해 하드웨어 직접 제어하듯이
:: 데이터 쓰여 있는 곳에 물리적으로 접근하여(느낌상 그렇다는 이야깁니다)
:: 다이렉트로 읽고 쓰면서 인텍스를 깨어먹기도 하고(다른 방법으로는 깨먹을 수가 없죠. 데이터가 들어
:: 있는 클래스의 구조를 바꾸지 않는 한)
:: 엄청난 장점과 위험이 따르죠.
:: 그만큼 루틴을 작성하기 어렵고 디버깅하기 어렵고 많은 애로사항이 따르지만
:: 만들어놓으면 속도가 그야말로 무제한이라고 할 수 있습니다.
:: 마치 Riva128을 처음 접했을 때 느낌처럼...
:: Cache 디비는 엄청난 속도광입니다.
::
:: 데이터 베이스에 접근하는 여러가지 방법이 제공되고...
:: 공부하면 할수록 모르는 것이 더 많아지고...
:: 여러모로 쉽지 않은 DB입니다만...
:: 하면 할수록, 어려운 길을 가면 갈수록 더 빛이 난다고나 할까요.
:: 하지만 단순히 SQL문만 사용한다 할지라도 다른 디비보다 더 빠르다고 하네요.
:: 직접 비교해보지는 못했습니다만...
:: 결론적으로 디비의 속도는 설계와 튜닝이 좌우하겠죠?
:: Cache의 클래스 구조는 설계상으로도 많은 장점을 제공하며
:: 데이터 무결성에 있어서 안정성을 제공하고
:: 데이터 접근 방식에 있어서도 많은 편의를 제공합니다.
:: -------------------
::
:: 클래스 Sample을 보시려면 Object Architect를 사용하시면 됩니다.
:: 4.0 기준으로 설명하겠습니다.
:: Cache를 인스톨하면 오른쪽 하단에 Cube(파란색 정육면체 퍼즐모양 아이콘)이 생깁니다. 그 아이콘을
:: 오른쪽 버튼으로 클리하면 메뉴가 뜨는데 그곳에서 Object Architect를 실행합니다.
:: 그러면 어디에 접속할 것인지를 물어보는데...
:: DB Server의 IP와 Namespace를 지정해주면 됩니다.
::
:: "새로 만들기"를 선택하신 후에
:: 연결이름 - 원하는이름 아무거나 입력
:: 서버 - Cache가 깔려 있는 서버의 IP(자신이면 물론 127.0.0.1이면 되겠죠)
:: 네임스페이스 - SAMPLES
:: 포트 - 1972(Cache는 공통적으로 이 포트를 사용합니다.)
::
:: "확인" 버튼을 눌러 입력을 완료하면 접속 아이콘이 하나 생성되는데...
:: 그것을 더블 클릭하거나 "연결" 버튼을 누르면 됩니다.
::
:: 그러면 Object Architect가 실행되면서 클래스들를 보실 수 있습니다.
:: 간단하게 보이는 것들을 설명드린다면
::
:: 왼쪽에 보이는 트리뷰는 클래스 구조를 보여줍니다.
:: 하나의 클래스를 선택하면 오른쪽에 그 내용들이 보여집니다.
::
:: 오른쪽 창에 보이는 탭들을 바꾸면 하나하나 내용들을 볼 수 있습니다.
:: 모두 - 밑의 모든 항목을 모두 보여줌
:: 속성 - 필드라고 보시면 되겠습니다
:: 테이블 = 클래스, 속성 = 필드
:: 라는 개념을 가지고 접근하시면 되겠습니다.
:: 정확히 같지는 않은데...
:: 그것은 쓰시면서 찾아가면서 느낄 수 밖에....
:: 클래스의 이것저것을 보시다 보면
:: 왜 Cache를 Object Database라고 부르기도 하는지 이해가 가실 것입니다.
:: 왜 클래스라고 부르는지도...
:: 메소드 - 클래스 안에 내장된 루틴들
:: 스토아드 프로시저(?) 라고 생각해도 될려나?
:: Cache scrip를 사용하여 작성되는 클래스 내부 함수라고 할 수 있습니다.
::
:: 매개변수 - 일단은 신경쓰지 마시고 넘어가세요.
:: 쿼리 - SQL문으로 작성되는 쿼리입니다.
:: 오른쪽 마우스를 클릭하여 New Query를 작성해보시면
:: 쿼리를 쉽게 작성해주는 인터페이스를 보실 수 있습니다.
:: 쿼리가 클래스 안에 내장되는 이유는 여러가지 이유가 있겠습니다만
:: 쿼리작성의 편의성이 이유라기보다는
:: 실행시에 SQL문으로 쿼리를 날리면 그것을 분석하여 데이터를 준비합니다.
:: 그 자체도 시간이 걸리죠
:: 클래스 안에 내장된 쿼리는 클래스 컴파일시에 M언어로 번역되어 저장됩니다.
:: Ado Connection을 통해 SQL문을 보내는 것보다 훨씬 효율적으로 동작합니다.
::
:: 클래스에 내부 항목중에 하나라도 변경되면 클래스는 다시 컴파일 되어야 합니다.
:: 단순히 디비구조만을 선언한다면 MySQL 경우 Create Table, Drop Table로 화일 지우고 쓰면 그만이겠
:: 지만... 단순한 테이블이 아니라 Object로 존재하는 Cache의 클래스의 경우에는 컴파일을 해주어야 합
:: 니다.
::
:: 데이터형의 경우, 기본 데이터형 이외에 다른 클래스명을 지정한 것들이 있는데
:: 테이블 참조(오래되서 정확한 표현이 생각이 안나네요)라고 보시면 됩니다.
:: 그 속성에 저장되는 데이터는은 참조되는 클래스의 ID가 저장됩니다.
::
:: GUI환경에서 이루어지므로 이정도 설명이면 샘플을 보는데 무리가 없을 것으로 생각됩니다.
:: 스스로 클래스를 만들어 볼 수도 있겠죠.
:: 저도 이정도 지식만 가지고 지멋대로의 클래스를 만들어 보았었습니다.
::
::
::
::
::
::
:: >>허정수 님께서 쓰시길<<
::
:: :: 안녕하세요.~
:: ::
:: :: 창용님께서 올려주신 16번 문서를 보니...
:: ::
:: :: 중간에 이런 내용이 나오더군요
:: ::
:: :: " Already have the User.Person, User.EHistory and User.Dog classes defined in the TRA
:: IN
:: :: namespace from the previous exercise and that these classes have persistent data associated w
:: ith
:: :: them."
:: ::
:: :: 아직 제가 클래스 만드는 것을 정확히 모르니. 앞에서 언급한 "Previous exercise"를 구해서 공부
:: 하면
:: :: 좋을거 같은데요.... 이 문서 어디서 구할 수 있을가요 --;
:: ::
:: :: 감사합니다.
:: ::
:: :: ps. 박지훈님도 창용님이랑 같은 회사 근무하시나요?
|