이번 시간에는 참조형에서의 upcasting에 대해 알아보도록 하겠습니다. 그리고 다형성에 대해서 간략하게 논해보도록 하겠습니다. 먼저 예제 프로그램을 보겠습니다. Animal 클래스와 Animal을 상속받은 dog와 cat이 있습니다. dog와 cat은 오버라이딩이 된 speak 메서드를 가지고 있습니다. Main 메서드는 위와 같습니다. 프로그램의 실행 결과는 어떻게 나올까요? 분명히, 저는 Animal 참조 변수 dog1과 cat1의 speak 메서드를 수행하였습니다. 그런데, 실행 결과는 I'm dog, I'm cat이 나옵니다. I'm animal이 아니라요. 동일한 type이지만, 다양한 결과가 나왔습니다. 이를 다형성이라고 합니다. 그런데, 우리는 dog나 cat을 참조하는 참조 변수 값을,..
코딩 검색 결과
오늘은 read commit와 repeatable read 격리에 대해서 간단하게 알아보겠습니다. 세션 1에서 다음 쿼리들을 수행할 겁니다. Query1, Query2, Query3을 수행합니다. 다음에 세션 2에서 쿼리 4만 수행합니다. 중요한 것은 Query1과 Query2 사이에 Query4를 수행합니다. 처음에 테이블 t에 들어있는 데이터는 다음과 같습니다. Session 1이 query1까지 수행하고, Session 2가 update를 수행하고 커밋을 했을 때, 다시 t에 있는 내용들을 출력해 보겠습니다. 어? 똑같군요. 이제 세션 1의 t1을 commit를 한 다음에 다시 t에 있는 데이터들을 모두 출력해 보겠습니다. 그제서야 a가 1인 레코드의 b의 값이 10으로 업데이트가 됩니다. 즉, 우..
상속과 다형성을 이해하기 위해서는, static binding과 dynamic binding에 대해서 이해하는 것이 핵심이라고 생각합니다. 오늘 이에 대해서 간단하게 알아보겠습니다. 예제 프로그램 1을 보겠습니다. Obj class가 있고, Obj를 상속받은 MyObj가 있습니다. 이 2개는 static 메소드인 foo를 가지고 있습니다. Main 클래스는 위와 같습니다. 이 때, 실행 결과는 어떻게 나올까요? Obj, Obj, MyObj가 나옵니다. o1, o2가 Obj를 참조하는 변수이기 때문입니다. 이러한 정보는 complie 타임에 올라갑니다. Obj의 필드 x 값이 100입니다. 그리고 MyObj의 필드 x 값이 0입니다. Main 클래스는 위와 같습니다. 실행 결과가 어떻게 나올까요? 100,..
이번 시간에는 c언어 fread 함수를 먼저 알아보도록 하겠습니다. 사용법이 다소 복잡해 보입니다. ptr은 파일에서 읽어온 것을 저장할 block을 가리키는 포인터입니다. 다음에, size는 block의 사이즈, count는 갯수를 의미합니다. 만약에, size개의 크기를 count개만큼 읽어오겠다고 한다면, 읽어온 총 byte 수는 size에 count를 곱한 값입니다. 파일 지시자가 가리키는 위치로부터 size에 count를 곱한 byte만큼 주루룩 읽어오는 함수가 fread인 셈입니다. 먼저 1.txt에 다음과 같은 내용을 저장하였습니다. fw 프로그램은, fwrite 함수를 이용해서 moo형 레코드를 하나 하나씩 1.txt라는 파일에 썼습니다. 1.txt에는 다음과 같은 내용이 저장이 되어 있는..
요새 롯데 자이언츠의 상승세가 무섭습니다. 이번 년도에 가을야구 갈 거 같습니다. 초반부터 야구 이야기를 해서 죄송합니다. group by에서 2개 이상의 속성으로 그룹화를 하고 싶을 때 어떻게 해야 좋을까요? 오늘 그것을 배워보고 응용 문제를 하나 풀어보겠습니다. 쿼리부터 알아보겠습니다. group by 절에 속성(1)부터 속성(n)까지 좌르륵 넣어줍니다. 이는 나누는 기준이 속성(1),...,속성(n)임을 의미합니다. 예를 들어서, 나누는 기준이 년, 분기였다면, 2015년 1분기, 2015년 2분기, 2015년 3분기, 2015년 4분기, ... 등으로 그룹화가 된다는 것입니다. 그리고, 노란색에 나타난 attribute는 select 절에 똑같이 나타나야 합니다. 이것만 보시면 이해가 안 되실 듯..
최근댓글