2019. 2. 8. 11:54


내가 요새 느낀 점 한가지..


모든 기술적인 공부는 

무엇을 만들어야 하는지

누구를 위해 만들어야 하는지

만들면 뭐가 좋은지

이런 인문적인 생각부터가 우선인것 같다.


기술적인 것은 스스로 공부하고 갈고 닦는것은 기본이고

실질적인 것은 얼마나 목적을 가지고 나아가냐인것 같다


초보자들입장에서는 당장에는 문법이 중요할 수도 있다.

하지만 문법은 거의 다 거기서 거기이다. 



Posted by 토실토실천재
2019. 2. 6. 10:43


1. 정적 멤버
  - 클래스 : 객체를 만들기 위한 형틀 (마치 붕어빵을 만들기 위한 붕어빵 틀)
  - 객   체 :  클래스가 메모리에 구현되어 생성된 실체
  - 인스턴스  : 메모리에 구현된 클래스의 실체
     >> 하나의 클래스로부터 많은 인스턴스의 생성 가능

참고)  같은 클래스타입의 객체 3개를 생성했을때의 메모리 구조




필드는 특정 객체에 서로 다른 메모리에 생성되지만, 메소드는 공유됩니다.

요악하자면 객체끼리 필드는 따라 가지고 메서드는 공유됩니다.
이것은 모든 객체 지향언어들의 공통점이라고 할수있습니다. 
객체별의 필드, this에 의해 구분되는 메서다를 멤버 또는 비정적 멤버라고 합니다. 
반대개념이 정적개념이며, 키워드 static 으로 지정합니다.


정적메서드 
  - 클래스에 소속, 클래스 차원의 동작 처리
  - 특정 객체에 대한 처리를 하는것이 아님(this 영향 안받음)
  - 클래스 소속의 정적 필드만 엑세스 가능
  - 특정 객체에 소속되지 않으므로 반드시 클래스로부터 호출해야 함.
  Class A
   {
        public static void B()
        {
               Console.WriteLine("스태틱 메소드입니다. 클래스에서 호출하셔함");
         }
   }

   - A.B() 이런식으로 호출해야 합니다. 
   - 정적생성자는 당연히 특성상 클래스가 로드될때 딱한번 자동 호출됩니다.
  
좀 말이 어렵네요. 정적(Static)이라함은 호출순서에 상관없이
즉시 메모리에 옮겨진다는 말입니다. 한마디로 전역함수, 전역변수와 같이, 프로그램이 
실행될때 즉시, 메모리에 올라가서 실행이 되는데, 이는 프로그램이 종료되기까지 계속해서
남아있습니다. 이런식으로 대표적인 함수가 바로 진입점인 Main() 메서드 입니다.
최초 실행될때 어떤 객체도 생성 되지 않으므로 객체에 소속될수가 없지요.


2. 상수 멤버
  ; 한번 초기화 되면 절대 변경할수 없는 멤버입니다.

  - 1. const 상수 : public const int Day = 24; 컴파일할때 값이 딱한번 초기화 됨
     ->  Day란 변수는 이제 24 값만 가질수 있고, 수정이 불가하다.
         객체생성전에 호출되야 하므로 정적메서드가 될수밖에 없습니다.
         Console클래스의 WriteLine도 정적 메서드 입니다. 어디서든 자유롭게 호출 가능합니다.
        - 지역변수에도 적용가능
  
  - 2. readonly 생성자에 의해 한번만 초기화 된다. : readonly public int A; (읽기전용)
         - 클래스 필드에만 적용
         - 실행중에 생성자에서 초기화 

 - 사실 메서드내의 지역상수는 const만으로도 충분합니다.



'프로그래밍 > C#' 카테고리의 다른 글

C# - 보충 : 함수와 return  (0) 2019.02.18
C#-11. 객체지향에서 용어정리  (0) 2019.02.09
C#-9. 생성자  (0) 2019.02.05
C#-8. C# 응용프로그램의 기본구조  (0) 2019.02.03
C#-7. 객체지향과 클래스  (0) 2019.01.31
Posted by 토실토실천재
2019. 2. 5. 14:00

암호화폐 거래소들이 많습니다. 최근에는 신규거래소가 많이 생겼습니다. 지난 포스트에서도 신규 암호화폐 거래소가 우후죽순 생긴다는 현상에 대해서 언급한적도 있습니다. 결론은 돈이 되기 때문에 생겨나는 원인이지요. 그렇지만 우리 투자자들이 늘상 마주하고 있는 현실중 하나인 점 입출금에 대해서 언급해보도록 하겠습니다.


입출금에는 크게 2가지가 있습니다. 하나는 원화 입출금(통장으로의 입출금), 다른 하나는 코인지갑간의 입출금 입니다. 예를 들면 제가 A라는 거래소에서 B라는 거래소로 비트코인 1개를 전송했다고 가정해봅니다. 그런데 A라는 거래소에서 출금이 지연되고 있습니다. 원인을 분석해본 결과 아직 블록체인 트랙재션에 온라인 되지도 않았습니다. 즉 거래소자체에서 펜딩중이라는 거지요. 입금은 자유롭게 진행되는데 출금만 늘 늦어지고, 해당거래소에 이메일을 보내고 나서야 몇 분뒤 정상적으로 출금이 됩니다.


또하나는 입금지갑 생성은 회원가입중 기본적인 체크만 하며, 바로 생성해줍니다. 당연히 입금은 아주 잘 처리 되겠지요. 그 후 출금을 하려고 하는데 온갖 인증을 하라고 합니다. 물론 인증은 필수지요. 그렇지만 뭔가 기분이 언짢습니다. 입금은 아무 인증없이 할 수 있게 해놨는데 말이죠.


거래소내의 입금은 막지 않겠다. 나가는건 막는다?

거래소 중 제법 규모가 있는 거래소에서도 비슷한 경험을 한적이 많습니다. 이부분은 한두번이 아니라서 언급하는겁니다. 결론적으로 생각할 수 있는건 자금유출을 막는거라고 밖에 생각할 수 없습니다. 어느정도는 이해할 수 있지만 보안을 위해서라도 입금 지갑 생성시에도 처음부터 인증을 해야한다고 생각합니다.


신규거래소 일수록 그럴 확률이 높습니다.

신규거래소는 신생 업체이므로 자금유입을 적극적으로 해놓는게 맞습니다. 신규유입자금을 높여서 자산을 늘리고 조금조금씩 발전하는 것이 일반적입니다. 하지만 제일 중요한 것은 거래소의 신뢰도 입니다. 신뢰된 거래소가 투자자들을 유입시키는 것이 우선이라고 생각합니다. 어처구니가 없었다고 생각되는 부분 중 하나가 출금신청 후 1시간을 기다려도 되지 않는 출금이 메일 한통 보내고 5분뒤 해결이 됐다는 점만 봐도 더더욱 치가 떨리는 상황이 되었죠. 


극히 최근에 모 신생 거래소가 또 먹튀를 했다고 합니다. 객관적인 생각을 해도 이거 너무 파격적인 이벤트라고 생각하는건 돌다리라도 하나 두들겨보고 건너듯 한번 의심해보는것도 나쁘지 않습니다. 


내 자산 내가 지켜야 하니깐요. 남이 지켜주지 않습니다. 절대로

Posted by 토실토실천재