[인생 프로그래밍] 객체(Object)

Rex·2022년 2월 4일
0

인생 프로그래밍

목록 보기
22/33
post-thumbnail

객체(Object)

객체는 "자료형 & 변수 (Data type & Variable)" 영역에서 잠깐 언급한 적이 있는데, 프로그래밍에서 매우 자주 사용되는 데이터 형태이다. 이번 장에서는 좀 더 깊게 다뤄보고자 한다. 일단 객체 변수를 선언해 보자.

user = {  // Object 자료형의 변수
    "이름": "Rex",
    "나이": 33,
    "직업": "개발자",
    "한국인여부": True
}

객체 데이터의 형태는 파이썬과 자바스크립트가 동일하니 함께 설명할 수 있다. 객체 데이터는 파이썬에서 'Dictionary'(줄여서 'dict') 라는 이름으로 불리고, 자바스크립트에서는 'Object' 라는 이름으로 불리며, 프로그래밍에서는 이처럼 key 와 value 를 가지고 있는 형태(key-value pair(키-밸류 쌍))를 'Map' 이라고 부른다.
프로그래밍 언어마다 부르는 게 달라서 조금 헷갈릴 수 있겠지만, 이런 형태의 자료의 구조(Data Structure)가 'Map' 이라는 것은 변함이 없다. 개발자들끼리는 Map 이라고 하면 이런 key-value pair 형태의 데이터를 상상하기 때문에 의사소통에 문제가 없을 것이다.

왜 Map 이라고 부르는가?

대부분의 사람들이 'Map' 을 '지도' 라는 뜻으로 이해하고 있을 것이다. 맞는 말이다. 프로그래밍에서 Map 은 정확하게 '지도' 를 말하는 건 아니지만 지도의 개념과 비슷하다. Map 객체는 특정 정보(Key)를 가지고 그와 Mapping 된 값(Value) 을 찾을 수 있기 때문이다. 지도를 보고 목적지를 찾는 것과 개념이 비슷하다. 이런 걸 Mapping(맵핑) 이라고 한다. 수학의 함수에 대한 이해가 있는 사람은 Map 을 '함수' 의 일종이라고 생각하면 된다. 무언가에 특정 값을 넣었을 때, 특정 결과값을 얻을 수 있다는 원리가 동일하기 때문이다.


Map 객체와 반복문 : Dictionary

Map 객체는 파이썬과 자바스크립트 모두 위 코드처럼 반복문을 사용할 수 있다.(순서를 보장하지는 않는다.) Map 객체 내부에 있는 key 와 value 값에 접근할 수 있는 것이다. 아래의 코드를 작성해 보자.

print(user["직업"])  # "개발자" (Bracket notation)

# 딕셔너리에 대한 반복문
for key in user:
    print(f"key: {key} / value: {user[key]}")  # f-string 문법

맵(Map) 객체는 위 코드처럼 반복문을 돌릴 수도 있고, 방대한 자료를 저장할 수도 있으며, 아주 쓰임새가 많다. 맵은 프로그래밍의 모든 영역에서 엄청나게, 아주, 매우 많이 사용되니 꼭 알아두자.

파이썬에서 문자열을 편리하게 다루는 방법은 f-strings (Literal String Interpolation) 문법을 사용하는 것이다. 위 코드에서 보다시피 string 사이에 변수를 표현하기가 매우 쉽다.

실행 결과

개발자
key: 이름 / value: Rex
key: 나이 / value: 33
key: 직업 / value: 개발자
key: 한국인여부 / value: True

파이썬의 Map 객체 : Dictionary

파이썬에서는 이 데이터의 형태를 Dictionary(줄여서 'dict') 라고 부른다. 그래서 앞으로 파이썬 파트에서는 Map 객체를 '딕셔너리' 라고 언급하겠다.

만약 위 코드에서 user 딕셔너리의 "이름" 값을 가져오려면 user["이름"] 이라고 쓰면 된다. user 딕셔너리에서 "이름" 이라는 key 로 Mapping 된 "Rex" 라는 value 를 가져올 수 있는 것이다. 이처럼 대괄호([])로 key 에 접근하는 방법을 괄호 표기법(Bracket notation) 이라고 한다.


자바스크립트의 Map 객체 : Object

const user = {
    이름: "Rex",
    나이: 33,
    직업: "개발자",
    한국인여부: true
};

console.log(user["직업"]);  // "개발자" (Bracket notation)
console.log(user.직업);  // "개발자" (Dot notation)

// Map 객체에 대한 반복문
for (const key in user) {
    console.log(`key: ${key} / value: ${user[key]}`);
    // JavaScript 에서 string 사이에 변수를 표현하려면 백틱(`, Backtick)으로 문자열을 작성하여 Template literals 를 적극적으로 활용하자!
}

JavaScript 에서는 파이썬과 같이 Bracket notation 을 사용할 수도 있지만, 점(.) 을 이용해서도 객체의 key 에 접근 가능하다. 이를 점 표기법(Dot notation) 이라고 한다. JavaScript 에서는 동적(dynamic)인 string key 를 사용해야 하는 경우가 아니라면 일반적인 경우 대부분 점 표기법을 사용하는 편이다.


정리하기

  1. 객체(Object)
    • 객체는 Map 이라는 key-value pair 자료 구조이다.

생각 해보기

우리의 삶에서 key-value pair 로 만들 수 있는 다양한 데이터를 생각해 보자.

"Map 자료구조는 키-값의 쌍으로, 데이터를 다루는데 매우 자주 사용되는 형태이다."


연습 문제

다음 과정을 시작하기 전에 풀어보길 권장하는 문제이다. 이 문제를 해결하지 못하더라도 다음 과정으로 넘어갈 수 있지만, 풀어낸다면 정말 큰 학습이 될 것이다. 어렵지 않으니까 천천히 읽고 구현해 보자.

  1. 나 자신, 내가 소속된 어느 곳에 대하여 Object 변수를 만들어보자. 이전에 봤던 코드와 같이 이름, 소속, 나이 등을 작성해 보는 것이다.
  2. 만든 Object 변수를 콘솔에 출력해 보자.
  • 지금 Python 과정을 하고 있다면, Python 으로 풀어야 한다.
  • Python 과정을 모두 마치고 JavaScript 를 시작했다면, JavaScript 로 풀어야 한다.
  • 너무 어려우면 ChatGPT 에게 도움을 요청하자.

궁금증 / 질문 / 개선점이 있다면 꼭 댓글을 달아주세요. 제가 최선을 다해 도와드리겠습니다. 여러분들의 최고의 학습 친구가 되어드리겠습니다.

#인생프로그래밍 #개발자렉스 #프로그래밍 #프로그래머 #개발자 #개발입문 #프로그래밍입문서적 #코딩교육 #코딩무료교육 #파이썬 #자바스크립트 #자바 #파이썬기초 #파이썬독학 #파이썬책 #혼자공부하는파이썬 #혼공파 #자바스크립트책 #앱개발 #어플개발 #ProgrammingOfLife #programming #programmer #coding #software #developer #python #javascript #java

profile
🔥 from Abstraction to Realization

0개의 댓글