호이스팅(Hoisting)은 코드 실행이 시작되기 전에 자바스크립트 엔진이 함수 선언과 var 키워드로 선언된 변수들을 해당 스코프의 최상단으로 끌어올리는 것처럼 처리하는 메커니즘입니다. 이러한 특성 덕분에 우리는 함수나 변수가 실제 코드에서 정의되기 전에 호출할 수 있습니다. 다만 몇 가지 주의할 점이 있습니다. var 변수는 선언부만 끌어올려질 뿐 값의 초기화는 이루어지지 않으므로, 정의 이전에 접근하면 undefined가 반환됩니다. 반면 let과 const 역시 호이스팅 대상이지만, 초기화되기 전까지는 일시적 사각지대(TD
JavaScript에서 객체(Object)는 관련된 데이터와 기능을 하나로 묶어 관리할 수 있는 핵심 자료구조입니다. 이 글에서는 객체 리터럴 방식으로 객체를 생성하고, 점 표기법을 사용해 속성에 접근하는 방법을 실제 예제 코드와 함께 살펴보겠습니다.JavaScript에서 객체 생성하기객체를 생성하는 가장 일반적이고 간단한 방법은 중괄호({})를 사용하는 객체 리터럴(object literal) 방식입니다. 객체 내부에는 문자열, 숫자 같은 값뿐만 아니라 함수(메서드)도 포함할 수 있으며, 메서드 안에서는 this 키워드를 통해 자
JavaScript에서 객체 속성 삭제하기JavaScript에서 객체의 속성(property)을 삭제하려면 delete 연산자를 사용합니다. delete 연산자는 객체에서 지정한 속성을 완전히 제거하며, 삭제된 속성에 접근하면 undefined가 반환됩니다.아래는 JavaScript에서 객체 속성을 삭제하는 전체 예제 코드입니다.예제<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" /> <
명시적 대기(Explicit Wait)는 웹 페이지 내 특정 요소에 적용되는 대기 방식으로, 설정된 조건이 충족될 때까지 코드 실행을 일시적으로 멈춥니다.명시적 대기는 동적(dynamic)으로 작동합니다. 예를 들어 대기 시간을 15초로 설정했더라도, 그 시간이 지나기 전에 조건(요소가 클릭 가능해지거나, 화면에 보이거나, 선택 가능해지는 등)이 먼저 충족되면 즉시 다음 단계로 넘어갑니다. 이 덕분에 불필요한 대기 시간 없이 효율적인 테스트가 가능합니다.명시적 대기가 더 유연한 이유명시적 대기는 조건(condition)을 직접 지정
Fluent Wait의 개념Fluent Wait는 Selenium에서 제공하는 동적 대기(Dynamic Wait) 방식입니다. 드라이버가 특정 조건이 충족될 때까지 일시 정지하며, 예외를 발생시키기 전에 설정된 주기마다 조건을 반복해서 확인합니다.일반적인 대기와 달리, Fluent Wait는 요소를 DOM에서 지속적으로 검색하지 않고 일정한 시간 간격(폴링 주기)으로 검색한다는 점이 특징입니다.예를 들어 대기 시간이 5초로 설정된 경우, Fluent Wait는 그 5초 동안 정해진 폴링 간격마다 DOM을 모니터링합니다. 또한 Flu
키워드 기반 프레임워크란 무엇인가?키워드 기반 프레임워크(Keyword Driven Framework)는 테이블 기반 프레임워크(Table Driven Framework)라고도 불립니다. 이 프레임워크에서는 실행해야 할 메서드에 대한 키워드(keyword) 또는 액션(action)을 표 형태로 정의한 테이블을 중심으로 테스트를 설계합니다.자동화 테스트 스크립트는 엑셀 파일에 명시된 키워드와 액션을 기반으로 작성됩니다. 따라서 자동화 테스터는 새로운 키워드를 추가하거나 기존 키워드를 업데이트하는 방식으로 프레임워크의 기능을 지속적으로
데이터 기반 프레임워크란 무엇인가?데이터 기반 프레임워크(Data Driven Framework)는 테스트 스크립트 로직과 테스트 데이터를 분리하기 위해 사용되는 자동화 테스트 설계 방식입니다. 이 프레임워크에서는 파라미터화(Parameterization)를 활용하여 여러 조합의 데이터 세트로 동일한 테스트 스크립트를 반복 실행할 수 있습니다.테스트 데이터는 엑셀(Excel), 액세스(Access), TXT 파일 등 별도의 외부 파일에 관리되며, 테스트 스크립트는 이러한 외부 파일과 연결되어 필요한 데이터를 가져옵니다. 이 프레임워
테스트 자동화에서 널리 사용되는 두 가지 프레임워크, 데이터 드리븐(Data Driven)과 키워드 드리븐(Keyword Driven)의 차이점을 아래에서 자세히 살펴보겠습니다. 데이터 드리븐 프레임워크란? 데이터 드리븐 테스팅은 파라미터화를 통해 다양한 데이터 조합으로 테스트를 반복 실행할 수 있는 방식입니다. 이때 데이터는 테스트 스크립트 로직에 입력되는 값으로 취급되며, 각 데이터 세트는 하나의 독립적인 테스트 케이스로 간주됩니다. 데이터 드리븐 프레임워크는 엑셀, CSV 또는 기타 외부 파일에 저장된 데이터 자체를 중심으로
행동 주도 개발(BDD) 프레임워크란?행동 주도 개발(Behavior Driven Development, BDD) 프레임워크는 개발자, 테스터, 제품 책임자(Product Owner), 관리자, 고객, 비즈니스 애널리스트 등 프로젝트에 참여하는 모든 이해관계자의 의견을 수렴합니다. 핵심 목표는 프로젝트 구성원 모두가 동일한 이해를 공유하도록 만드는 것입니다.BDD는 팀 내 모든 구성원 간의 협업과 조율을 기반으로 작동합니다. 기능 요구사항이나 명세가 비전문적인 일상 언어로 작성되기 때문에 별도의 코딩 지식 없이도 누구나 참여할 수
JavaScript Datepicker에서 미래 날짜(오늘 이후의 날짜)를 선택할 수 없도록 비활성화하려면 maxDate 옵션을 사용하여 현재 날짜를 최대 선택 가능 날짜로 설정하면 됩니다.아래는 이를 구현한 전체 JavaScript 코드 예제입니다.예제 코드<!DOCTYPE html> <html lang=ko> <head> <link rel=stylesheet href=//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css> <script s
<input type=time> 요소에서 Enter 키를 눌렀을 때 브라우저의 기본 동작(폼 제출 등)이 실행되지 않도록 하려면 keydown 이벤트와 preventDefault() 메서드를 함께 사용해야 합니다. 핵심 원리는 간단합니다. 키보드 이벤트를 감지하여 눌린 키가 Enter인지 확인하고, 해당 경우에 event.preventDefault()를 호출해 기본 동작을 차단하는 것입니다. 아래는 전체 예제 코드입니다. 예제 코드 <!DOCTYPE html> <html lang="ko"
href 속성이 #으로 시작하는 링크는 실제 페이지 이동 없이 빈 앵커로 사용되는 경우가 많습니다. 이런 링크를 클릭했을 때 아무런 동작도 일어나지 않도록 만들려면 JavaScript의 preventDefault() 메서드를 활용하면 됩니다. 다음은 이를 구현한 예제 코드입니다. 예제 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport&qu
웹 페이지에서 애니메이션을 구현하는 방법은 CSS 트랜지션이나 requestAnimationFrame() 등 다양하지만, 가장 기본적인 방식 중 하나는 자바스크립트의 setInterval() 함수를 활용하는 것입니다. 이 함수는 일정한 시간 간격마다 지정된 코드를 반복 실행하므로, 요소의 위치나 스타일 값을 조금씩 변경하면 부드러운 움직임 효과를 만들 수 있습니다.애니메이션의 핵심 원리자바스크립트 애니메이션의 기본 원리는 다음과 같습니다.반복 실행: setInterval(frame, 10)처럼 짧은 간격(10밀리초)으로 함수를 계속
웹 개발을 배우는 과정에서 가장 좋은 연습 프로젝트 중 하나가 바로 단위 변환기입니다. 이번 글에서는 HTML과 JavaScript만을 사용하여 킬로그램(kg)을 그램(g)으로 실시간 변환하는 간단한 무게 변환기를 만드는 방법을 소개합니다.동작 원리이 변환기의 핵심 로직은 매우 간단합니다. 사용자가 입력 필드에 킬로그램 값을 입력하면, oninput과 onchange 이벤트가 발생하면서 JavaScript 함수가 호출됩니다. 함수는 입력된 값에 1,000을 곱한 후, 그 결과를 화면의 <span> 요소에 출력하는 방식으로
웹 개발을 처음 배우는 사람에게 가장 좋은 첫 프로젝트 중 하나가 바로 온도 변환기입니다. HTML로 화면 구조를 잡고 JavaScript로 변환 로직을 처리하면, 사용자가 입력한 섭씨(Celsius) 온도를 화씨(Fahrenheit)로 실시간 변환해 주는 도구를 몇 분 만에 완성할 수 있습니다. 온도 변환기 전체 코드 아래는 HTML과 JavaScript로 구현한 온도 변환기의 전체 소스 코드입니다. 입력란에 값을 넣는 즉시 결과가 갱신되도록 oninput과 onchange 이벤트를 함께 사용했습니다. <!DOCTYPE ht
HTML과 JavaScript를 활용하면 킬로미터(km)를 미터(m)로 실시간 변환해주는 간단한 길이 변환기를 손쉽게 만들 수 있습니다. 사용자가 값을 입력하는 즉시 결과가 화면에 표시되도록 구현하는 방법을 예제 코드와 함께 살펴보겠습니다.전체 예제 코드<!DOCTYPE html> <html> <head> <style> body { font-family: Sego
HTML과 JavaScript를 활용하면 사용자가 입력한 속도 값을 실시간으로 변환해 주는 간단한 웹 애플리케이션을 만들 수 있습니다. 이 글에서는 시속(km/h)을 초속(m/s)으로 변환하는 속도 변환기를 직접 구현하는 방법을 단계별로 살펴보겠습니다.변환 원리 이해하기1km/h는 약 0.277778m/s에 해당합니다. 따라서 킬로미터 매 시간(km/h) 값에 0.277778을 곱하면 미터 매 초(m/s) 값으로 쉽게 변환할 수 있습니다.예제 코드아래는 HTML과 JavaScript로 작성한 속도 변환기의 전체 코드입니다.<!
웹 개발을 하다 보면 버튼 클릭이나 특정 조건에 따라 사용자를 다른 페이지로 이동시켜야 하는 경우가 자주 있습니다. JavaScript에서는 location.href 속성에 이동할 URL을 할당하는 방식으로 리디렉션을 매우 간단하게 구현할 수 있습니다.기본 문법window.location.href = https://이동할-주소.com;location.href에 새로운 URL이 할당되는 순간 브라우저는 즉시 해당 주소로 이동합니다.예제 코드아래는 버튼을 클릭하면 다른 웹사이트로 이동하는 완전한 예제입니다.<!DOCTYPE htm
Selenium으로 웹 자동화 테스트를 진행하다 보면 입력 필드(편집 상자)에 들어 있는 값을 확인해야 하는 경우가 자주 발생합니다. Selenium에서 편집 상자의 값을 가져오는 방법은 크게 두 가지입니다.getText() 메서드 사용 – 요소에 포함된 텍스트를 직접 추출하는 기본적인 방법입니다.JavascriptExecutor 클래스 사용 – JavaScript를 실행하여 DOM 요소의 value 속성을 직접 읽어오는 방법입니다.참고로 <input> 태그처럼 내부 텍스트가 아닌 value 속성으로 값이 저장되는 요소는
웹 자동화 테스트에서 요소를 찾는 각 로케이터(locator)마다 고유한 장점과 용도가 있습니다. 어떤 것을 선택할지는 페이지의 구조와 상황에 따라 달라집니다.로케이터 선택 기준페이지에 고유한 속성 값(unique attribute)이 존재한다면, 가장 먼저 해당 속성을 활용하는 것이 좋습니다. 예를 들어 id나 name이 유일하게 존재한다면 이것이 가장 안정적이고 빠른 방법입니다.반면 고유한 속성이 없다면 CSS 셀렉터를 사용하는 것이 권장됩니다. CSS 셀렉터는 속도 면에서 효율적이기 때문입니다.CSS 셀렉터의 한계CSS 셀렉터