# EC++

10개의 포스트
post-thumbnail

Execution Client와 Consensus Client의 연결 과정

Execution Client와 Consensus Client의 연결 과정 Execution Client와 Consensus Client는 모두 병렬로 동시에 작동한다. 두 클라이언트 간의 통신이 필요하다. 이 통신을 통해 Consensus Client는 Execution Client에 지침을 제공하고, Execution Client는 비콘 블록에 포함 시키기 위해 트랜잭션 번들을 Consensus Client에 전달할 수 있다. 두 클라이언트 간의 연결은 Local RPC 연결을 사용하여 설정되며, 두 클라이언트 간에 전송되는 명령은 엔진 API에 의해 정의된다. Proposer이 아닌 경우(Validator인 경우) Consensus Client(eth2)는 블록을 수신한다. Gossip Protocol(Consensus P2P Network)을 통해 받는다. 수신된 블록은 Consensus Client(eth2)에 의해 검증되어 올바른 메

2023년 5월 17일
·
0개의 댓글
·
post-thumbnail

실행 컨텍스트(EC)란? (작성중)

본고에서는 자바스크립트의 실행 컨텍스트의 의미와 동작 방식을 설명한다. 1. 실행 컨텍스트가 정확히 무엇인가? ECMAScript 스펙에서는 실행 컨텍스트를 다음과 같이 설명하고 있다. > 실행가능한 코드를 형상화하고 구분하는 추상적인 개념 실행 컨텍스트는 자바스크립트 코드 동작의 근간을 설명하며, 이를 통해 자바스크립트의 특성(호이스팅, 클로저)을 이해할 수 있게 된다. 자바스크립트 엔진은 우리가 작성한 코드를 실행하기 위해 여러가지 정보를 알고 있어야 한다. 여러가지 정보란 이하와 같다. > - 변수 : 전역변수, 지역변수, 매개변수, 객체의 프로퍼티 > - 함수 선언 (함수 표현식을 포함하지 않음) > - 변수의 유효범위 (Scope) > - this 이와 같이 실행에 필요한 정보를 형상화하고 구분하기 위해 자바스크립트 엔진은 실행컨텍스트(EC)를 객체의 형태로 관리한다. 아래의 코드를 살펴보자. 위 코드를 실행하면 아래와 같이 동작하게 되는데, 먼저 g

2021년 5월 12일
·
2개의 댓글
·
post-thumbnail

[EC++] Chapter 8. new와 delete를 내 맘대로

요약 Item49: new 처리자의 동작 원리를 제대로 이해하자 Item50: new 및 delete를 언제 바꿔야 좋은 소리를 들을지를 파악해 두자 Item51: new 및 delete를 작성할 때 따라야 할 기존의 관례를 잘 알아 두자 Item52: 위치지정 new를 작성한다면 위치지정 delete도 같이 준비하자

2020년 8월 30일
·
0개의 댓글
·
post-thumbnail

[EC++] Chapter 9. 그 밖의 이야기들

요약 Item53: 컴파일러 경고를 지나치지 말자 Item54: TR1을 포함한 표준 라이브러리 구성요소와 편안한 친구가 되자 Item55: Boo子有親(자유친)! 부스트를 늘 여러분 가까이에

2020년 8월 30일
·
0개의 댓글
·
post-thumbnail

[EC++] Chapter 7. 템플릿과 일반화 프로그래밍

요약 Item41: 템플릿 프로그래밍의 천릿길도 암시적 인터페이스와 컴파일 타임 다형성부터 Item42: typename의 두 가지 의미르 ㄹ제대로 파악하자 Item43: 템플릿으로 만들어진 기본 클래스 안의 이름에 접근하는 방법을 알아 두자 Item44: 매개변수에 독립적인 코드는 템플릿으로부터 분리시키자 Item45: "호환되는 모든 타입"을 받아들이는 데는 멤버 함수 템플릿이 직방! Item46: 타입 변환이 바람직할 경우에는 비멤버 함수를 클래스 템플릿 안에 정의해 두자 Item47: 타입에 대한 정보가 필요하다면 특성정보 클래스를 사용하자 Item48: 템플릿 메타프로그래밍, 하지 않겠는가

2020년 8월 30일
·
0개의 댓글
·
post-thumbnail

[EC++] Chapter 6. 상속, 그리고 객체 지향 설계

요약 Item32: public 상속 모형은 반드시 "is-a"를 따르도록 만들자 Item33: 상속된 이름을 숨기는 일은 피하자 Item34: 인터페이스 상속과 구현 상속의 차이를 제대로 파악하고 구별하자 Item35: 가상 함수 대신 쓸 것들도 생각해 두는 자세를 시시때때로 길러 두자 Item36: 상속받은 비가상 함수를 파생 클래스에서 재정의하는 것은 절대 금물! Item37: 어떤 함수에 대해서도 상속받은 기본 매개변수 값은 절대로 재정의하지 말자 Item38: "has-a"혹은 "is-implemented-in-terms-of"를 모형화할 때는 객체 합성을 사용하자 Item39: pri

2020년 8월 30일
·
0개의 댓글
·
post-thumbnail

[EC++] Chapter 5. 구현

요약 (27.캐스팅) 다른 방법이 가능하다면 캐스팅은 피하십시오 특히 수행성능에 민감한 코드에서 dynamic_cast는 몇 번이고 다시 생각하십시오 설계중에 캐스팅이 피요해졌다면, 캐스팅을 쓰지 않는 다른 방법을 시도해 보십시오. 캐스팅이 어쩔 수 없이 피요하다면, 함수 안에 숨길 수 있도록 해 보십시오. 이렇게 하면 최소한 사용자는 자신의 코드에 캐스팅을 넣지 않고 이 함수를 호출할 수 있게 됩니다. 구형 스타일의 캐스트를 쓰려거든, C++스타일의 ㅐ스트를 선호하십시오. 발견하기도 쉽고, 설계자가 어떤 역할을 의도했는지가 더 자세하게 드러납니다. Item26: 변수 정의는 늦출 수 있는 데까지 늦추는 근성을 발휘하자 Item27: 캐스팅은 절약, 또 절약! 잊지 말

2020년 8월 30일
·
0개의 댓글
·
post-thumbnail

[EC++] Chapter 4. 설계 및 선언

요약 Item18: 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자 Item19: 클래스 설계는 타입 설계와 똑같이 취급하자 Item20: '값에 의한 전달'보다는 '상수객체 참조자에 의한 전달' 방식을 택하는 편이 대개 낫다 Item21: 함수에서 객체를 반환해야 할 경우에 참조자를 반환하려고 들지 말자 Item22: 데이터 멤버가 선언될 곳은 private 영역임을 명시하자 Item23: 멤버 함수보다는 비멤버 비프렌드 함수와 더 가까워지자 Item24: 타입 변환이 모든 매개변수에 대해 적용되어야 한다면 비멤버 함수를 선언하자 Item25: 예외를 던지지 않는 swap에

2020년 8월 30일
·
0개의 댓글
·
post-thumbnail

[EC++] Chapter 3. 자원 관리

요약 Item13: 자원 관리에는 객체가 그만! Item14: 자원 관리 클래스의 복사 동작에 대해 진지하게 고찰하자 Item15: 자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자 Item16: new 및 delete를 사용할 때는 형태를 반드시 맞추자 Item17: new로 생성한 객체를 스마트 포인터에 자장하는 코드는 별도의 한 문장으로 만들자

2020년 8월 30일
·
0개의 댓글
·
post-thumbnail

[EC++] Chapter 2. 생성자, 소멸자 및 대입 연산자

요약 Item5: C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자 Item6: 컴파일러가 만들어진 함수가 필요 없으면 확실히 이들의 사용을 금해 버리자 Item7: 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자 Item8: 예외가 소멸자를 떠나지 못하도록 붙들어 놓자 Item9: 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 Item10: 대입 연산자는 *this의 참조자를 반환하게 하자 Item11: operator= 에서는 자기대입에 대한 처리가 빠지지 않도록 하자 Item 12: 객체의 모든 부분을 빠짐없이 복사하자

2020년 8월 30일
·
0개의 댓글
·