element.insertAdjacentHTML(position, string)
<!-- beforebegin (바로 앞) -->
<div id="my-div" style="background: gold;"> <!-- 지정된 요소 -->
    <!-- afterbegin (안쪽 시작 부분) -->
    Content
    <!-- beforeend (안쪽 끝 부분)-->
</div>
<!-- afterend (바로 뒤) -->
const ele = document.getElementById("my-div"); // 지정된 요소(element)

/*
 * element.insertAdjacentHTML(position, string)
 * 지정된 요소(element)의
 * 인접한 위치에(position) 전달받은
 * HTML 코드 문자열(string)을 HTML(혹은 XML)로 파싱하여
 * DOM 노드를 생성합니다.
*/

// 요소 바로 앞 새로운 HTML 코드 삽입
ele.insertAdjacentHTML("beforebegin", "<p>(Before begin)</p>");

// 요소 안쪽 시작 부분, 즉 첫 번째 자식으로 HTML 코드 삽입
ele.insertAdjacentHTML("afterbegin", "<p>(After begin)</p>");

// 요소 안쪽 끝 부분, 즉 마지막 자식으로 HTML 코드 삽입
ele.insertAdjacentHTML("beforeend", "<p>(Before end)</p>");

// 요소의 뒤에 새로운 HTML 코드 삽입
ele.insertAdjacentHTML("afterend", "<p>(After end)</p>");
실제 적용된 모습
#container {
    border: 1px solid red;
    margin-bottom: 1em;
}
#container span {
    color: red;
}
<!-- beforebegin (바로 앞) -->
<div id="container">
    <!-- afterbegin (안쪽 시작 부분) -->
    <span>Content</span>
    <!-- beforeend (안쪽 끝 부분)-->
</div>
<!-- afterend (바로 뒤) -->
<button type="button" id="btn">HTML 삽입하기</button>
const ele = document.getElementById("container");
const btn = document.getElementById("btn");

btn.addEventListener("click", () => {
    ele.insertAdjacentHTML("beforebegin", "<p>beforebegin 삽입</p>");
    ele.insertAdjacentHTML("afterbegin", "<p>afterbegin 삽입</p>");
    ele.insertAdjacentHTML("beforeend", "<p>beforeend 삽입</p>");
    ele.insertAdjacentHTML("afterend", "<p>afterend 삽입</p>");
});
실제 적용된 모습 '버튼'을 실제로 클릭해 보세요!
const userInput = "<img src='x' onerror='document.cookie)'>";
el.insertAdjacentHTML("beforeend", userInput);