자료구조

자료구조 <추상화와 구조체>

um_coding 2023. 8. 22. 21:00

현실에 존재하거나 존재하지 않는 무언가를 프로그래밍 세계로

객체지향 프로그래밍에서는 모든 것을 프로그래밍화 할 수 있다.

현실에 존재하는 요소는 물론이고

심지어 현실에 존재하지 않는 요소(이를테면 게임 캐릭터라던지…)까지도 구현할 수 있다.

다만, 어떤 요소를 프로그래밍 세계에서 구현하기 위해서는

최대한 대상의 특징을 단순화해야 한다.

즉, 구현할 대상을 프로그래밍적으로 꼭 필요한 부분만 단순화 시키는 것을 추상화라고 한다.

ex) 회원가입 - ‘나’임을 알 수 있는 정보만을 입력해 증명

서비스를 제공하는 데 필요한 정보를 받는 것을 추상화라고 한다.

나한테 필요한 정보만을 추출하고 필요없는 것은 무시하는 작업

 

추상화와 구조체

구조체는 이렇듯 추상화를 통해

프로그래밍적으로 활용해 특정 요소만을 저장하는 하나의 자료단위이다.

구조체 하나하나가 우리가 프로그래밍적으로 구현하고 싶은 대상 하나하나가 되는 것이다.

 

구조체 만들기

만약 단순하게 같은 자료형인 것들을 묶기 위해서는 구조체가 아닌 배열을 쓰면 된다.

그렇지만 배열은 우선 내부 요소를 구분할 때 인덱스로만 구분해야 하는 문제가 있다.

그리고 실제로 위의 예시처럼 대상의 어떤 속성이 꼭 같은 자료로만 이루어지지도 않는다.

이를 극복하기 위해 특정 대상을 구현할 때, 자료형이 같거나 다른 복수의 자료를 하나의 집합으로 묶을 수 있도록 구조체라는 것을 제공한다.

가령 위와 같이 구현하고자 한다면 구조체에서는

사람{

    String 이름;

    int 나이;

    int 주민번호;

    int 전화번호;

    String 주소;

}

코드 순서대로 해석

main()함수

PutMoney()함수

TakeOutMoney()함수