티스토리 뷰

SEB_BE_41

09.02 열한 번째 수업(OOP)

Greatshine 2022. 9. 2. 21:47

 

 

오늘부터 객체지향 프로그래밍(OOP , Object Oriented Programming)에 대한 기본적인 틀을 잡아가기 시작했다.

객체는 하나의 레고 블록이라고 할 수 있고 그것을 이용해 레고 집을 만든다거나 레고 배를 만든다거나.

블록을 쌓고 쌓아서 형태를 가진 하나의 멋진 구조물을 만들 듯이

객체지향 프로그래밍 또한 각각 기능을 가진 객체를 쌓고 쌓아서 어떠한 프로그램을 만드는 것이라고 할 수 있다.

 

오늘의 수업의 가장 중요한 핵심은 나무들을 하나하나 살펴보고 숲을 보는 것이 아닌

숲을 뚜렷하게 볼 수 있을 때까지 살펴보고 숲이 보이기 시작한다면 그 때부터 나무를 보기 시작해야 한다는 것이였다.

 

객체 지향에서 우리가 굵은 글씨로 기억하고 있어야 할 단어들은 클래스, 인스턴스(객체), 필드, 메소드인 것 같다.

클래스는 설계도이고 인스턴스는 그 설계도로 만들어 낸 구조물이다.

인스턴스와 객체는 비슷한 말이지만 세부적인 개념을 따졌을 때 집 설계도의 구조물, 차 설계도의 구조물과 같이

특정한 클래스의 객체를 인스턴스라고 말할 수 있고, 그러한 인스턴스들을 우리는 한데 모아 객체라고 말할 수 있다.

나는 붕어빵 틀과 붕어빵으로 외우는 것이 젤 편하다고 생각이 들었다.

붕어빵 틀을 이용해서 앙금을 다른 것으로 채우며 다양한 종류의 붕어빵을 만드는 것처럼

클래스를 이용해서 우리는 다양한 인스턴스를 만들 수 있다.

 

클래스의 구성요소로는 필드, 메소드, 생성자, 이너 클래스가 있다.

이 중 생성자를 제외한 나머지 3개를 클래스의 멤버라고 한다.

필드는 클래스에 포함된 변수로 객체의 속성을 정의한다.

속성이라 함은 자동차로 치면 자동차 모델의 이름, 바퀴의 개수, 색깔 등이라고 말할 수 있겠다.

메소드는 특정 기능 수행 명령문의 집합으로 객체의 기능을 정의한다.

기능은 차를 움직인다, 차를 멈춘다, 경적을 울린다와 같은 기능이라고 말할 수 있다.

생성자랑 이너 클래스는 다음 학습에 더 자세하게 다루니 다음 학습 이후에 적도록 해야겠다.

 

객체를 만드는 과정에서 기억해야 할 것은

new키워드를 통해 참조 변수 안에 인스턴스를 담는다는 것이다.

그러면 클래스의 멤버들이 인스턴스에 담기게 되고

우리는 참조 변수를 호출하면 클래스의 멤버들이 담긴 인스턴스의 주소 값을 호출하는 것과 같게 된다.

하지만 메소드는 클래스 영역에 저장이 되는데,

이는 같은 클래스로 만든 객체들은 모두 같은 메소드를 공유하기 때문에 그렇다.

객체는 '해당 위치에 있는 객체 안을 보세요'라는 뜻을 가진 포인트 연산자(.)로 활용할 수 있다.

 

가장 기본적인 내용만 다루었고, 더 자세한 건 코드스테이츠 학습자료의 내용을 갖고 올 가능성이 높아져서 

혼자 학습하는 게 나을 것 같아 따로 적지 않았다.

처음으로 학습자료들을 읽게 되었을 때는 숲도 흐릿흐릿하게 보였는데

두 번째 읽었을 때는 숲이 이제 보이려 해서 나무들을 조금씩 살펴보기 시작했고 

세 번째 읽었을 때는 숲이 전체적으로 보이는 것 같아서 혼자 예제를 만들어 학습자료의 예제들과 비슷하게 코드를 짜 봤다.

 

 

인스턴스를 생성해서 클래스의 멤버들을 사용
클래스의 멤버들을 선언
콘솔 창

 

 

오늘의 일기

 

 

위의 코드는 혼자 생각하며 적은 것이라 체계적이진 않을 테지만,

그래도 어느 정도 OOP라는 큰 숲을 볼 수 있게 된 것 같아서 기분이 좋았다.

그래도 아직은 개념의 정리가 필요하다.

개념들을 만약 내 머릿속에서 옷 들로 구체화시켰다면, 이를 잘 접어서 서랍장에 차곡차곡 정리해야 하는데

지금은 거실 바닥에 널브러진 옷들을 보고 있는 느낌이라고 해야 할까.

매 회고록마다 적고 강조하게 되는 복습의 중요성이 다시 한번 나타나는 것 같다.

시간을 잘 활용하는 것이 젤 중요할 것 같다.

오늘은 블로깅에 대한 실시간 세션 시간도 있었다.

블로깅 수업을 통해 사소한 것도 기록해야 한다는 기록의 중요성을 새겨듣게 되었으며

학습 콘텐츠를 진행할 때 핵심 개념을 내가 아는지 모르는지 기록하게 되었다.

또한 문제 해결 능력과 에러 핸들링 경험이 왜 중요한 지 다시 한번 상기시켜주셔서

문제를 풀고 난 뒤의 회고록이나 프로젝트 진행 뒤의 회고록에선 그것들이 잘 묻어 나오게 해야겠다고 명심했다.

중간중간 어떤 것이 중요하고, 어떤 것을 채워나가야 하는 지 알려주시는 것이

내 머릿 속을 잘 환기시켜주는 것 같다.

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함