
이전 포스트: Concentrated-Liquidity에서 특정한 가격대에 한정하여 유동성을 공급하는 핵심 개념을 다루었다.
tick그리고tick-space는 기존 연속적(continuous; unsigned int) 형태의 가격을, 불연속적(descrete) 형태로 대체하기 위해 탄생한 개념이다.
Tick이란 무엇인가?tick/tick-index/indices, tick-spacing 그리고 tick-bitmap을 통해 가격의 범위(price range)를 효율적으로 추적하고 관리할 수 있는 새로운 수 체계를 구축했다. 
tick 또는 tick-index에 해당한다. int24 로 선언되었으나 모든 값을 사용하지는 않고, [−887272,887272] 사이의 값으로 정의된다. 

int24 tick 이 닫힌 구간 [−887272,887272]의 값만 사용하는 이유확실한 이유는 없지만, 조사 과정에서 정리한 합리적인 추론을 소개한다.

type(uint256).max를 price의 최대값으로 설정했다는 것이다.2**128를 최대값으로 가지게 되고, 밑을 1.0001(basis point)로 취하는 로그에 진수로 넣어 계산하면 다음과 같이 동일한 범위의 구간을 얻을 수 있게 된다. 
Q64.96 자료형에 가격 정보를 저장하고, tick-index와 상호 변환하는 과정은 별도의 🚧 작성 예정에서 다룰 예정이다.
tick-spacing이란 무엇인가?tick-spacing은 delta-x와 같은 존재다. 
tick-spacing이 2인 경우, price range를 정의할 때 사용되는 lower tick (i_l)과 upper tick (i_u) 모두 2의 배수이어야만 한다.cross-indices 연산이 수행될 때, 상호작용하는 모든 컨트랙트의 상태를 변경하느라 높은 가스비를 지불해야 한다. (v3 기준)tick-bitmap이란 무엇인가?tick의 유동성 공급 여부를 판별할 수 있는 flag를 bitmap 형식의 자료구조를 활용하여 관리한다. 
int24 tick 값에 대해 256(8비트)에 대한 몫과 나머지로 해싱한다. 
bitPos 계산 시, 왜 uint8 타입 캐스팅을 하는지?

uint8 캐스팅으로 하위 8비트만 절삭해야, 피제수가 음수이더라도 index로 활용할 수 있는 [0, 256) 구간의 값이 나오게 된다. 