이펙티브 자바를 보다 보면, 표준 예외를 사용하라는 item이 있습니다. 여기에 언급되는 exception들을 보면 Collections에서도 자주 보이는 예외가 몇 개 있는데요. 이번 시간에는 이 중에 UnsupportedOperationException에 대해서 보도록 하겠습니다. 저번에 예를 들었던 것 중에, CopiesList를 들고 오겠습니다. 이것은 AbstractList를 상속받는다고 되어 있어요. 명세를 보면, immutable list를 리턴한다고 되어 있어요. 저번에 본 바로는 CopiesList가 Collection 내부에 private 클래스로 되어 있었어요. 그리고, 계속 읽어보면, n copies of the specified Object라고 되어 있는데요. 특수 오브젝트의 n개..
코딩 검색 결과
안녕하세요. 이번 시간에는 Java의 switch 문에 대해 알아보겠습니다. c언어의 switch문하고 다를 것은 없고요. 이번에 제가 낸 문제에서, 쓰면 좋겠다 싶어서 소개를 해 보려고 해요. 이 글에서는 string switch문이 어떻게 돌아가는지를 먼저 소개하고, 어떻게 적용할 수 있는지 알아보겠습니다. string 빼고 나머지는 제가 예전에 c언어 시간에 소개했던 switch문과 동일하므로, 관련 글의 연장선 정도라고 보시면 좋겠습니다. [관련글] c언어 switch문에 대해 알아봅시다. java에서는 String도 switch문이 됩니다. 저만 몰랐을 수도 있겠지만요. 이 프로그램은, 간단합니다. acquire를 입력받으면, 뎁스를 하나 증가시키고 acquire!를 출력합니다. release를..
이번 시간에는 파이썬의 list comprehensions에 대해 알아봅시다. list를 간단하게 초기화 할 수 있는 방법입니다. 먼저 예제 3개를 보도록 하겠습니다. 예제 1번입니다. [k for k in range(10)]이 있네요. 뒤에서부터 해석해 봅시다. 일단 for K in A를 먼저 봐야 하는데요. A가 range(10)이였습니다. 게다가, range는 iterable 해요. 그러면, K의 값은 0부터 9까지 된다는 의미인데요. for 앞에 K가 붙어 있어요. 그러면 K값이 list의 원소가 된다는 의미입니다. 그러면, list에 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]가 나와야 할 텐데요. 정말 그렇게 나왔나 볼까요? 정말 그렇게 나왔습니다. 이제 필터링을 해 보겠습니다. 아..
함수 안에서 yield를 본 적이 있을 겁니다. 함수 안에서 이것을 쓰게 되면, 제너레이터가 됩니다. 이 문서에서는 어떻게 제너레이터를 쓰고 왜 쓰는지에 대해서 언급하지는 않습니다. 함수 안에서 yield를 썼을 때, 실행 문맥에 어떤 것을 저장하고 있길래, yield가 나타나면, 실행을 양보하고, 다시 foo를 호출하면, 그 다음 위치부터 실행시킬 수 있는지에 대해서 간단하게 고찰해 보겠습니다. main에서 foo를 호출했을 때를 생각해 봅시다. 이 때 foo(a)의 위치를 2, 그 다음 줄에 위치해 있는 a = a + 1을 위치 3이라고 해 보겠습니다. foo(a)를 호출하고, 리턴이 되면, 위치 3에 있는 a = a + 1이 수행됩니다. 그림으로 그려 보면 위와 같습니다. 이는, 함수를 호출할 때 ..
제가 개최한 코테 문제 중에서는, 시각 처리 문제가 있었습니다. 생각보다 많이 쓰일 법 하니 알아두면 좋을 듯 해요. 특정 날짜로부터 1일 전, 1달 전, 1년 전, 1년 후의 날짜를 구해야 합니다. 어떻게 해야 할까요? YYYY-MM-DD로 표현되는 date를 어떻게 연산하는지 알아봅시다. mysql에 있는 DATE_ADD와 DATE_SUB를 알아볼 건데요. 첫 번째 인자에는 date가 들어갑니다. 두 번째 기간에는 INTERVAL이 들어가는데요. 예제를 보도록 하겠습니다. 위 예제는 2004-02-29부터 1 YEAR만큼 지난 날짜를 출력합니다. 뭔가 이상하게 나오는데요. 365일을 기준으로 해서 그런 건지는 아리송 하네요. 윤년이 낀 경우는 조심해야 합니다. 1 DAY만큼 지난 날짜를 출력하려면, ..
최근댓글