파이썬에는 built in 함수로 id가 있습니다. 문서에 따르면, 이것은 객체의 고유값을 리턴하는 메서드입니다. cpython은 주솟값을 돌려준다고 문서에 언급이 되어 있습니다. 저는 이 메서드를 어떤 객체를 가리키는지 보기 위해서 쓰곤 합니다. 몇 개의 예를 보고, 톡방에 질문 들어왔던 내용도 보도록 하겠습니다. 예제 1입니다. 그리 어려울 것은 없습니다. a는 배열 [5]를 가리키고, b는 [10]을 가리킵니다. 이 상태에서 id(a)와 id(b)를 출력합니다. 다음에, b에 a를 대입합니다. 다음에, id(b)를 출력합니다. id 값을 찍어보니 위와 같이 나왔습니다. 이것을 trace 해 보도록 하겠습니다. 먼저 4번째 줄 상황을 보겠습니다. id(a)와 id(b)가 달랐습니다. a와 b가 다른 ..
객체 검색 결과
lombok에 빌더 어노테이션에 대해 생각해 보다가, 문득 builder를 왜 쓰는지가 궁금했습니다. 디자인 패턴에 대해서 하나도 모르는 저는 빌더 패턴을 3편에서 4편 정도를 쓸 듯 싶습니다. 먼저, '완전한 상태'에 대해서 생각해 보겠습니다. age와 name으로 이루어진 모델이 하나 있습니다. 그리고, 이 오브젝트는 생성이 되면 값이 변경되지 않습니다. getter와 setter가 있습니다. 그리고 Main 함수를 보겠습니다. 모델의 나이를 set하고, name을 set 합니다. Model 클래스에서 이름과 age가 필수 항목이라고 할 때, 모델 객체만 만든 상태는 완전한 상태인지 생각해 보겠습니다. 그렇지 않습니다. 이 상태에서 뭔가 작업을 한다고 하면 문제가 생길 듯 해 보입니다. 그래서 4번째..
오늘은 Java의 객체, 클래스에 대해서 알아보도록 하겠습니다. 돌아 돌아 여기까지 오기는 했는데. OOP의 컨셉을 5 ~ 7편에 걸쳐서 잡도록 하겠습니다. 클래스는 설계도, 객체는 설계도 대로 만들어진 실체로 생각하시면 편한데요. 예제 프로그램을 보면서 이해해 보도록 하겠습니다. 조금 쉬운 예제가 뭐가 있을까요? 자판기를 예로 들어 봅시다. 실제로 자판기는, 물건이 여러 개가 있고, 물건이 없는 경우도 처리를 해야 합니다만. 여기에서는 간단하게, 물건은 셀 수 없을 정도로 너무 많이 있고, 1가지 물건만 판다고 해 봅시다. 그러면 우리는 자판기가 해야 할 일을 2가지로 요약할 수 있을 겁니다. get_item과 put_money 이렇게 2개로요. 그러면 자판기의 상태는 어떻게 표현하면 좋을까요? 일단,..
자바에는 두 가지 타입이 있습니다. 기본 타입은 byte, char, short, int, long, float, double, boolean이 있어요. 참조 타입은 객체를 가리키는 변수인데요. 이들이 어떻게 다른지 예제 프로그램과 그림으로 설명해 보도록 하겠습니다. 문제의 예제 프로그램입니다. 7번째 줄까지 수행이 되면, 메모리에 다음과 같이 올라갑니다. n과 m은 기본형으로 선언된, 변수들입니다. 즉, 실제 값을 저장하고 있습니다. 8번째 줄에 2차원 배열인 arr을 선언했는데요. 이는 기본형이 아닙니다. 즉 참조형이라는 이야기인데요. 이것은 실값을 저장하지 않습니다. 참조값을 저장해 놓습니다. 그러면 arr은 실값을 저장해 놓았나요? 아닙니다. 객체를 참조하는 어떠한 값을 저장해 놓습니다. 이것이 ..
최근댓글