Base

"동적"이란게 뭐지?

Dr.Mlem 2024. 12. 11. 22:04
Q1.

/** 2) 접근하고자 하는 하위 변수의 이름을 동적으로 설정해야 할 경우 type2가 활용된다 */
const keyName = "phoneno"; // 이렇게 변수 선언 후 등록해서 설정하는걸 동적으로 설정한다고 하는 것 같다.
console.log(student[keyName]);

 
이런 내용이 있었는데, 여기서 동적이라는 의미가 뭔지 잘 정리가 안되었어. 정확히, 프로그래밍에서 동적 이라는 의미가 뭐야?
 
 
 
A1.

ChatGPT의 말:

 

프로그래밍에서 **"동적(dynamic)"**이라는 의미는 프로그램 실행 중에 어떤 값이나 동작이 고정되지 않고, 변화하거나 결정될 수 있다는 것을 말합니다.

이 개념은 다양한 상황에서 사용되지만, 주로 아래와 같은 맥락에서 이해할 수 있습니다:


1. 값이나 동작이 실행 중에 결정됨

  • 코드 작성 시 미리 정해진 것이 아니라, 프로그램이 실행되는 동안 결정됩니다.
  • 예시에서 keyName = "phoneno"처럼 변수 값을 실행 중에 변경하거나 설정하고 이를 통해 동작을 제어하는 경우를 포함합니다.
const keyName = "phoneno"; // keyName에 어떤 값이 들어올지 코드 작성 시점엔 알 수 없음
console.log(student[keyName]); // 실행 중에 keyName에 따라 동작이 달라짐

위 코드에서는 keyName의 값이 "phoneno"인지 "name"인지에 따라 접근하는 속성이 달라집니다. 즉, 속성을 동적으로 설정하고 접근하는 예입니다.


2. 정적인 것(static)과의 비교

  • 정적(static): 코드 작성 시점에 모든 것이 고정된 상태
    • 예: console.log(student.phoneno);
      • 이 경우 접근할 속성이 phoneno로 고정되어 변경할 수 없습니다.
  • 동적(dynamic): 실행 중에 값이나 동작이 바뀔 수 있는 상태
    • 예: console.log(student[keyName]);
      • 이 경우 keyName의 값에 따라 접근 대상이 달라지므로 더 유연하게 동작합니다.

3. 동적의 장점

  • 유연성: 상황에 따라 코드를 재작성하지 않고 동작을 바꿀 수 있음.
  • 확장성: 새로운 데이터 구조나 동작을 추가할 때 코드 수정 없이 적용 가능.
    • 예: 객체 속성이 늘어나더라도 동적 접근을 사용하면 별도 수정 없이 처리 가능.

4. 동적의 활용 예

  • 객체 접근: 키 이름을 동적으로 설정
const key = "email";
const user = { name: "Alice", email: "alice@example.com" };
console.log(user[key]); // "alice@example.com"
  • 동적 함수 호출: 특정 조건에 따라 호출할 함수를 선택
const actions = {
  greet: () => console.log("Hello!"),
  farewell: () => console.log("Goodbye!"),
};

const action = "greet";
actions[action](); // "Hello!"
  • 동적 DOM 접근: HTML 요소 ID를 실행 중에 결정
const elementId = "button1";
const button = document.getElementById(elementId);
button.click();

요약

**동적(dynamic)**이란 프로그램 실행 중에 값이나 동작이 결정되고, 코드가 더 유연하게 동작할 수 있도록 하는 개념을 말합니다. 예제의 student[keyName]처럼, 미리 고정된 값이 아닌 변수에 따라 동작이 결정되는 방식을 동적이라고 이해하면 됩니다.