[하루기록] 22.12.16

지찬우·2022년 12월 16일
0

하루기록

목록 보기
3/10
post-thumbnail

객체 지향

원래 이 하루기록 시리즈는 하루마다 배우고 느낀 점을 꾸준히 기록해 보려고 시작했다. 근데 어느 날은 공부를 안 하는 날도 있을 것이고(매일 하면 최고지만..!), 또 크게 배우거나 느낀 게 없을 수 있다고 생각했다. 그래서 앞으로는 배우고 깨달은 내용을 곁들인 일상 얘기를 적을까 한다. 기술 블로그에 어울리지는 않지만, 일기 형식으로 적어보고 싶다. 그래도 기술적인 내용을 최대한 써봐야지🙃


오늘 점심에 랩실 회식을 했다. 처음으로 랩실 교수님과 식사를 하는 자리였는데, 정말 오랜만에 오리고기를 먹은 것 같다..! 자취하다 보니 그런 고기를 먹을 기회가 흔치 않다 ㅠ

점심을 맛있게 먹고 학교 카페에 가서 우선 ‘스프링 핵심 원리’ 강의를 한 편 수강했다. 오늘은 ‘좋은 객체 지향 프로그래밍’이라는 주제의 강의였는데, 내가 알고 있는 내용 같으면서도 여전히 어려운 내용 같다는 생각이 드는 그런 내용이었던 것이었다 (ㅋㅋㅋ)

  • 추상화
  • 캡슐화
  • 상속
  • 다형성

객체 지향의 특징들이다. 정말 대학교에서도 많이 듣고 배웠던 내용이지만 머리에 잘 안 들어오는 기분이다. 오늘 스프링 강의에서 김영한 님께서는 이 ‘다형성’을 굉장히 강조하셨다. 다형성을 자동차와 운전자로 비유해 주셨는데 이해가 너무 잘 됐다.

객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러
개의 독립된 단위, 즉 ‘객체’들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지
를 주고받고, 데이터를 처리할 수 있다.”

어제 ‘Tecoble’의 getter에 대한 글에서 보았던 내용을 또 한 번 더 듣게 되었다. 이게 아마 위키백과에 ‘객체 지향 프로그래밍’으로 검색하면 가장 첫 줄에 나오는 내용으로 기억한다. 이렇게 또 복습이 된다. 참 신난다.

(위의 강의가 궁금한 사람은 내 velog ‘Spring’ 시리즈를 보면 된다😝)

그래서 오늘 배운 핵심 내용이 무엇이냐!

클라이언트 객체를 변경하지 않고, 서버 객체의 구현 기능을 유연하게 변경할 수 있다는 것이 다형성의 본질이다. 스프링은 이 다형성을 극대화하여 이용할 수 있도록 도와준다.

오늘은 객체 지향의 늪에 한 번 빠져보자는 마인드로 ‘자바의 정석’의 객체 지향 프로그래밍 부분을 읽어보았다. 역시 본질은 모두 같은 것 같다. 재사용성. 유지 보수 용이. 상속과 다형성의 특징?이라고 할 수 있을 것 같다.

함수는 주로 데이터를 가지고 작업을 하기 때문에 많은 경우에 있어서 데이터와 함수는 관계가 깊다. 그래서 자바와 같은 객체 지향 언어에서는 변수와 함수를 하나의 클래스에 정의하여 서로 관계가 깊은 변수와 함수들을 다룰 수 있게 했다.
자바의 정석

자바의 정석에 쓰여있던 글이다. 이 글을 읽는 순간 어제 getter 글에서 봤던 내용이 또 생각났다.

상태를 가지는 객체를 추가했다면 객체가 제대로 된 역할을 하도록 구현해야 한다.
객체가 로직을 구현하도록 해야 한다.


그동안 객체 지향을 너무 가볍게 생각하고 있지는 않았나 하는 생각이 많이 들었다. 한동안은 코딩을 하기보다는 기초를 좀 더 탄탄히 해야 할 것 같다.

profile
좋은 개발자가 되자.

0개의 댓글