L-ATS는 한순간에 한 사람의 사용자(하나의 계정)만 사용할 수 있도록 운영할 예정이니 프로그램이 종료되는 시점까지 '사용자 정보'는 하나의 데이터 셋만 생성될 것이다. 

 

그럼 프로그램이 동작하는 동안 사용자는 어떤 정보들을 관리하여야 할까?

 

우선 기본 사용자 정보는 아래 두 가지 형태로 구분할 수 있다. 

  • L-ATS 사용자 정보
  • 이베스트 증권 사용자 정보

좀 더 Detailed 정보들을 나열해 보자.


[ L-ATS 사용자 정보 ]

 

 1. L-ATS 가입자 ID : 비밀번호 찾기와 연계하기 위해 E-Mail Type으로 정함.

 2. 가입자 Pricing Grade : L-ATS 가입자의 가격 정책 등급 정보.

 3. Auto Trading 여부 : 현재 자동 매매 처리 중인지 여부 정보.

 4. 현재 접속 단말 MAC : 한 계정당 한 명만 사용할 수 있도록 MAC 인증을 위한 정보.

 

[ 이베스트 증권 사용자 정보 ]

 

 1. 현재 접속 HTS 정보 : '모의투자' 또는 '실투자' 접속 서버 정보와 현재 접속 여부 정보.

 2. 이베스트 가입자 ID : 이베스트 증권 ID 정보.

 3. 현재 계좌 : 증권 사용자는 여러 개의 계좌를 가질 수 있기 때문에, 1개의 계좌를 선택하여 사용할 수 있음.


우선 이정도면 될 것 같다. 

 


 

사용자 정보는 프로그램이 시작된 순간부터 종료될 때까지 단 하나(!)만 존재하게 되므로 프로그램 어디에서도 사용할 수 있도록 Global 형태로 선언했다.

 

아래는 사용자 정보를 관리하는 Class다.

public class User_Info
{
    public static User_Info gUser_Info = new User_Info();

    public bool IsUserLogin;            // 프로그램 로그인 여부
    public bool IsAutoTrading;          // 자동매매 진행 여부

    private string Id;                  // L-ATS 사용자 ID
    private string Grade;               // 회원등급
    private string MacAddr;             // 현재 접속 단말 MAC Address

    public DateTime Last_Login;

    //---------------------------------------------------------------

    public bool IsHTSLogin;             // HTS 로그인 여부

    private string EbestId;             // 이베스트 ID
    private string UserName;            // 사용자 이름
    private string CurAccount;          // 현재 사용 계좌 번호

    // 생성자
    public User_Info()
    {
        IsUserLogin = false;
        IsAutoTrading = false;
        IsHTSLogin = false;
        
        Id = string.Empty;
        Grade = string.Empty;
        MacAddr = string.Empty;

        EbestId = string.Empty;
        UserName = string.Empty;
        CurAccount = string.Empty;
    }

    // 소멸자
    ~User_Info()
    {

    }
    
    ... 생략 ...
}

bool Type의 변수를 제외한 모든 정보들은 private으로 선언하여 Set/Get 함수를 사용하도록 했다. 

참고로 나는 변수의 초기화를 매우 중요하게 생각하는 개발자다. 

 

그리고 언제든 바로 프로그램 상의 사용자 상태 정보를 확인할 수 있는 메뉴를 만들었다. 즉, 위의 User_Info() 클래스의 정보를 확인하는 메뉴이다. 


 

'메인메뉴 > 사용자 정보'  메뉴에서 User_Info() 클래스 정보 표시

 

먼저 L-ATS 로그인 후 사용자 정보를 보면 아래처럼 알 수 있는 정보만 표시가 된다.

 

L-ATS 로그인 후 User_Info() 정보

 

회원가입시 입력했던 Database의 정보들과 로그인 시에 입력한 HTS Server 정보 (모의투자/실투자)가 표시된다. 

 

이베스트 HTS를 로그인하고 보유계좌까진 선택한 후 '사용자 정보'를 확인해 보자.

이베스트 HTS 로그인. 모의투자기 때문에 공인인증번호는 입력하지 않아도 된다.
이베스트 HTS 로그인이 정상 처리되면, 보유한 계좌의 목록을 확인할 수 있다.

 

이제 계좌의 목록 중 하나를 골라서 '선택' 버튼을 클릭하면 비로소 User_Info()의 모든 정보가 완성된다.

 

모든 정보가 채워진 User_Info(). 하단의 StatusBar에도 함께 표시하여 사용자 인지성을 향상시켰다.

 

사실 '사용자 정보' 메뉴는 디버깅 용으로 만들었던 건데... 메뉴가 되어 버렸다.

'Trading' 카테고리의 다른 글

[Trading] XingAPI - DevCenter 사용하기  (0) 2020.08.14
[Trading] L-ATS 사용자 시나리오  (0) 2020.08.02
[Trading] HTS 로그인 설계, 구현  (0) 2020.07.08
[Trading] 프로그램 로그인  (0) 2020.06.21
[Trading] 두번째 프로그램  (0) 2020.06.07
Posted by [ 브랜든 ]
,