public void Insert(int value)
        {
            Node newNode = new Node(value);

            //첫 삽입에 root node가 null이면 루트 노드를 생성한다
            if (rootNode == null)
            {
                rootNode = newNode;
                return;
            }

            try
            {
                Node parentNode = FindParentNodeForInsert(rootNode);

                // 새로운 노드의 부모 셋팅
                newNode.SetParents(parentNode);

                if (parentNode < newNode)
                {
                    parentNode.SetRight(newNode);
                }
                else
                {
                    parentNode.SetLeft(newNode);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Node FindParentNodeForInsert(Node currentNode)
            {
                if (newNode < currentNode)
                {
                    if (currentNode.GetLeft() == null)
                    {
                        return(currentNode);
                    }
                    else
                    {
                        return(FindParentNodeForInsert(currentNode.GetLeft()));
                    }
                }
                else if (newNode > currentNode)
                {
                    if (currentNode.GetRight() == null)
                    {
                        return(currentNode);
                    }
                    else
                    {
                        return(FindParentNodeForInsert(currentNode.GetRight()));
                    }
                }

                else
                {
                    throw new Exception("이미 저장된 데이터와 같은 값의 데이터는 저장할 수 없습니다.");
                }
            }
        }