private void arrangeColor4Insert(Node node) {

		if (node.isRoot()) {
			node.setColor(Color.BLACK);
			return;
		}

		Node parent = node.parent;
		if (isBlack(parent)) { // 부모B
			return;

		} else { // 부모R
			Node grandParent = parent.getParent();
			Node uncle = parent.getSibling();
			if (isRed(uncle)) { // 부모R, 삼촌R
				parent.setColor(Color.BLACK);
				uncle.setColor(Color.BLACK);

				grandParent.setColor(Color.RED);
				arrangeColor4Insert(grandParent);

			} else { // 부모R, 삼촌B
				// Case 2-1 : 추가된 노드(x)가 부모(p)의 오른쪽 자식 & 부모는 조부모의 왼쪽 자식
				if (node.isRightChild() && node.getParent().isLeftChild()) {
					rotateLeft(parent);
					arrangeColor4Insert(parent);

				} else if (node.isLeftChild() && node.getParent().isRightChild()) { // Case 2-1 대칭
					rotateRight(parent);
					arrangeColor4Insert(parent);

				} else { // Case 2-2
					if (grandParent != null) {
						grandParent.setColor(Color.RED);
						if (node.isLeftChild()) {
							rotateRight(grandParent);
						} else {
							rotateLeft(grandParent);
						}
					}
					parent.setColor(Color.BLACK);

				}
			}
		}
	}