메뉴 닫기

IT 개발에 관심 있지만 잘 모르는 사람들을 위한 “ChatGPT를 활용한 Java와 객체지향”

ChatGPT라는 최고의 Tool를 활용해 IT 개발에 관심있는 비전공자 , IT 업계에 관심이 많은 사람들을 위한 글을 작성하고 있습니다.

(이전 글 : http://mukgee.com/?p=831)

 

이번에는 Java와 객체지향에 대해 chatGPT 를 이용해 한번 배워보려고 합니다.

객체지향이라는 개념을 보통 붕어빵에 많이 비유합니다.

 

붕어빵을 찍어내는 기계가 클래스이고 기계로 만든 붕어빵이 객체이다.

 

너무 좋은데, 사실 처음에 들으면 무슨 개념인지 잘 이해가 되지 않습니다.

 

객체 지향은 세상을 보는 관점인데 세상을 속성과 행동을 가진 어떤 물체(Object)로 모두 이해하려고 하는 관점으로 봐야합니다.

ChatGPT에게 도움을 받을 수 있을지 한번 물어보겠습니다.

 

Reddit에 올라온 ChatGPT handBook에 따르면 질문을 바로하지말고 천천히 dive into 하라고 가이드합니다.

이런 chatGPT의 특징을 이해하는게 prompt engineering 의 시작이겠죠.

(출처 : reddit, chatGPT , https://www.reddit.com/r/ChatGPT/comments/zx2b3t/the_chatgpt_handbook_tips_for_using_openais/ )

 

 

HandBook의 가이드 대로 천천히 Nudging 해보겠습니다.

먼저 자바를 공부하고 있다는 사실을 이야기하고 객체지향에 대해 한번 물어봅니다.

 

ChatGPT는 좋은데, 너무 디테일할때가 있습니다.

그리고 영어로 물어볼때 더 좋은 품질의 대답을 얻을 때가 많습니다.

 

그래서 저는 보통 짧은 영어지만 영어로 먼저 물어보고 대답을 얻은 후에 마법의 단어로 제가 원하는 답을 찾습니다.

 

One sentence, In Korean.

 

 

chatGPT는 데이터와 함수라는 표현으로 객체지향을 설명하는데요. 먼저 이야기한 속성과 행동과 동일한 개념이 맞습니다.

세상을 객체지향적으로 본다는건, 어떤 물체(Object)를 속성(데이터)와 행동(함수)을 가진 개념으로 설명한다는 것입니다.

 

객체지향적으로 생각해보는 사고의 연습을 chatGPT와 같이 한번 해보겠습니다.

먼저, 은행의 계좌를 객체지향적으로 한번 생각해보시겠어요?

은행의 계좌는 어떤 속성과 행동을 가지고 있어야할까요?

 

 

한번씩 생각해보셨으면 사고 실험을 chatGPT와 함께 해보죠.

 

은행 계좌를 객체지향적으로 생각해본다면, 관리되어야하는 속성(데이터)는 “계좌번호” , “예금주” , “잔액” 같은 값이고 은행 계좌가 할 수 있는 행동(함수)은 “출금” , “잔액 조회” 같은 행동들이 가능하겠네요.

 

객체지향 프로그래밍의 핵심은 세상을 객체 중심적으로 바라보는 사고의 연습입니다.

은행 계좌를 객체 지향적으로 생각 할 수 있다면 이후 프로그램의 구현은 생각보다 간단할 수 있습니다.

chatGPT의 시대에 구현은 한 문장의 질문이면 완성될 수도 있겠네요.

 

give me bank account code for java.

 

 

ChatGPT를 사용해 구현해본 BankAccount Class 입니다.

처음 붕어빵 예제에서 Class 는 객체를 생성하는 기계라고 했습니다.

이제 기계를 만들었으니, bankAccount 라는 붕어빵을 만들어보겠습니다.

 

 

Java에서는 new라는 키워드로 객체를 생성합니다.

new BankAccount 라는 문법으로 “John Doe” 가 예금주인 계좌를 만들었네요.

그리고 이 계좌를 사용해서 deposit 하거나, withdraw 하는 등 계좌가 가지고 있는 여러 행동(함수)들을 사용해서 객체의 속성값을 변경해볼 수 있습니다.

 

BankAccount라는 class와 new 라는 키워드를 사용한다면 “Jane Smith” , “Jin KIM” 등 여러사람들의 계좌를 붕어빵 기계에서 붕어빵을 찍어내듯 만들어 낼 수 있습니다.

생성된 객체는 동일한 함수를 가지겠지만, 계좌에 잔액이 다 다를 수 있기 때문에 각자 다른 데이터를 가지고 관리되겠죠.

 

이렇듯 객체지향 프로그래밍은 세상을 데이터와 함수를 가진 객체로 바라보면서 그 객체를 재사용하여 세상을 표현하는 사고의 방법이나 프로그래밍 패러다임입니다.

 

Java를 처음 시작하는 사람들에게 객체지향이라는 이야기는 너무 뜬 구름 같고, 그저 붕어빵 이야기 같을 수 있습니다.

하지만, 적절한 사고의 연습을 통해 객체 지향이라는 패러다임을 이해하고 세상을 바라 본다면 chatGPT를 통해 객체지향 프로그래밍에 대해 더 빠르게 학습해나갈 수 있을것 입니다.

 

결국 chatGPT 같은 ML 모델과 대화하기 위해서는 Computational Thinking, 컴퓨터가 생각하는 방식으로 생각할 수 있는 역량이 정말 중요할 것 입니다.

디테일한 구현은 어느정도 ChatGPT에게 맡겨 두고 우리는 좀 더 큰 그림, 사고의 연습을 중심으로 chatGPT를 계속 활용해보겠습니다.

 

다음에는 개발 요청 플랫폼 크몽(https://kmong.com/) 에서 가장 많이 개발 요청 되는 항목 중 하나인 크롤링(쇼핑몰의 크롤링, 뉴스 기사의 크롤링 등..)을 chatGPT를 활용해 구현해보겠습니다.