상속이랑 다형성은 Java를 배울 때 가장 어려운 부분 중 하나입니다. 3 ~ 7편으로 나눠서, 차근 차근 써 보도록 하겠습니다. 이번 시간에는, 자식 객체를 생성했을 때, 어떤 일이 일어나는지 보도록 하겠습니다. 코드를 보겠습니다. 뭔가 간단해 보이는 것은 기분 탓인 듯 싶습니다. 일단, Parent의 생성자에서는 I'm parent init 이라는 문구를 출력합니다. 그리고, Child에서는 I'm child init이라는 문구를 출력합니다. main 함수에서는 Child 객체를 하나 생성합니다. 실행 결과가 어떻게 나올까요? 요렇게 나옵니다. parent init 다음에 child init이 출력됩니다. 어떻게 흘러갔는지 차근차근 보겠습니다. 먼저 생성자의 역할을 다시 상기해 볼 필요가 있습니다. ..
코딩 검색 결과
이 글은 commit과 rollback에 대해서 깊게 들어가지 않습니다. 큰 그림만 그리는 글이니, 심도 있는 글을 원하신다면 다른 (좋은) 글을 보시는 것을 권장합니다. Transaction이란, 작업 단위를 의미합니다. 그러면, 작업을 했을 때, 성공적으로 수행이 된 경우가 있고, 실패가 된 경우가 있을 겁니다. 이 때 어떻게 처리해야 할까요? 이전에 제가 Thread에서 stop을 호출하는 게 왜 위험할까요? 라는 질문을 한 적이 있었습니다. 그에 대한 답은 절반만 수행된 상태가 나타나기 때문입니다. 원소가 삭제는 되었는데, 크기가 바뀌지 않은 경우가 그 예입니다. 이것을 데이터베이스의 '작업'에도 적용을 시켜 보겠습니다. school 데이터 베이스의 takes 릴레이션에서 ID가 1000이고, 수..
이번 시간에는 c언어 fseek 함수를 배워보도록 하겠습니다. 이 함수는, 간단하게 요약하면 파일의 임의 위치에 접근하게 해 주는 함수입니다. 당연하게도, 탐색할 수 없는 파일이면, 이 함수를 호출하는 것이 무용지물일 거에요. 먼저, 0123456789라는 내용을 적은 input.txt를 생성해 보겠습니다. cat input.txt를 하면, 0123456789가 출력이 될 겁니다. 같은 디렉토리에 있는 실행파일 fs는 input.txt의 내용을 읽고 쓰는 함수입니다. input.txt가 존재하기 떄문에, 파일을 여는 연산은 성공해야 할 듯 싶습니다. 그런데 보기 좋게 fail이 뜹니다. 뭐가 문제일까요? 파일이 분명 있는데. 의심해 볼 만한 것 중에는 권한이 있습니다. 어떠한 User로 로그인이 되어 있..
db 교과서를 보니, 이런 문제가 나왔습니다. 왜 null 값이 도입되었을까? 사실 필요가 없어서, 도입되지는 않았을 겁니다. 몇 가지 상황에 대한 예를 들어보겠습니다. 농수산물에 대한 데이터 베이스가 있다고 생각해 보겠습니다. 테이블 하나만 고려해 보겠습니다. 각각 카데고리, 생산품의 고유 id, 생산자의 id를 의미합니다. 물론, 이것이 정보의 다는 아닙니다. 각 카데고리 id별로 어떠한 품목인지 저장하고 있는 테이블이 있을 겁니다. 그리고, product_id별로, 해당 상품의 이름을 저장하는 테이블도 있을 겁니다. 그리고, 생산자의 id와 생산자에 대한 정보를 저장하는 테이블 또한 있을 겁니다. 여기에서는 그냥 간단하게 이것 하나만 고려해 보도록 하겠습니다. 농수산물 p를 생산했지만, 누가 생산했..
생활코딩에 올라왔던 질문을 해결해 보도록 하겠습니다. google 코드 잼 등을 보면, 라운드들이 있어요. 그 중, 1차 라운드, 2차 라운드, 3차 라운드가 있어서, 이들 중 한 라운드에 통과하면, 다음 라운드에 진출한다는 규칙도 있습니다. 이런 것은 SQL로 어떻게 처리하면 좋을까요? test table은 아래와 같이 주어져 있습니다. 여기서 name은 유저 이름, _check는 각 시험에 통과했는지를 나타냅니다. 여기서 _check는 'Y'나 'N'만 나올 수 있습니다. null 값은 허용이 되지 않는다고 해 봅시다. 어떠한 유저가 x차 라운드 중 최소한 하나 이상 통과했다면, 통과 여부를 'Y'로, 아니면 'N'으로 표기하고 싶습니다. 다시 조건을 보면, 'Y'가 하나라도 있으면, 통과라고 했습니..
최근댓글