울면서개발하기
JAVA SCRIPT / NEXACRO

넥사크로 24 에서 바뀐 속성 설정 방법 — set_value() 와 value 대입

· 2026년 10월 25일 다시 씀

넥사크로 24 로 올라가면서 도움말의 속성 설정 문법이 바뀌었다. 21 까지는 set_ 메소드로 설정하라고 했는데, 24 는 속성에 값을 바로 대입하라고 안내한다.

// 넥사크로 21 (21.0.0.1200) 도움말
this.Edit00.set_value("Hello");

// 넥사크로 24 (24.0.0.600) 도움말
this.Edit00.value = "Hello";

넥사크로 21 과 24 도움말의 Edit.value 문법 비교. 21 은 set_value(strValue) 로 설정, 24 는 value = strValue 로 설정

24 에서는 둘 다 된다

그렇다고 set_value() 가 없어진 것은 아니다. 24 에서는 두 방법이 모두 동작한다. 개발자도구 콘솔에서 value 속성의 정의를 보면 이유를 알 수 있다.

Object.getOwnPropertyDescriptor(Edit.prototype, "value");
// { enumerable: true, configurable: false, get: f, set: f }

value 는 prototype 에 정의된 접근자 속성(getter/setter)이고, setter 의 위치를 따라가 보면 set_value 와 같은 함수다.

// 넥사크로 24 라이브러리 (ComComp.js) 의 set_value
_pEdit.set_value = function (_a) {
  _a = this._convertValueType(_a);
  if (this._p_value !== _a) {
    if (!this.applyto_bindSource("value", _a)) {
      return;
    }
    this._setValue(_a);
  }
};

즉 this.Edit00.value = "Hello" 라고 쓰면 내부에서 set_value("Hello") 가 그대로 실행된다. 값 변환, 바인딩된 데이터셋 반영, 화면 갱신까지 같은 길을 탄다. 라이브러리를 보면 nexacro._defineProperties 로 속성들에 이런 접근자를 일괄로 붙이는 것으로 보인다(내부 함수라 공식 문서에는 없다).

그럼 어떻게 쓰나

  • 24 만 쓰는 프로젝트: 도움말대로 대입해도 되고, 기존 set_ 코드도 그대로 동작한다
  • 21 이하와 함께 돌아야 하는 코드(공통 라이브러리 등): set_ 메소드를 쓴다. 24 에서도 동작하므로 양쪽에서 안전하다. 21 이하에서도 대입이 setter 를 타는지는 확인하지 않았으니, 대입 방식에 기대지 않는 편이 낫다
  • 읽기는 예전부터 this.Edit00.value 였으므로 바뀐 것이 없다

투비소프트가 앞으로 set_ 를 점차 없애려는 것인지, 둘 다 계속 지원하려는 것인지는 도움말만으로는 알 수 없다.

다시 쓰며 바로잡은 점

  • 원문은 “대입하면 set_ 메소드가 내부에서 실행된다”고만 했다. 이것이 prototype 의 접근자 속성(setter) 덕분이라는 점과, 위 확인은 넥사크로 24(24.0.0.600) 기준이라는 점을 밝혔다
  • 여러 버전에서 함께 쓰는 코드는 set_ 를 쓰라는 실무 기준을 덧붙였다