이펙티브 자바를 보다 보면, 표준 예외를 사용하라는 item이 있습니다. 여기에 언급되는 exception들을 보면 Collections에서도 자주 보이는 예외가 몇 개 있는데요. 이번 시간에는 이 중에 UnsupportedOperationException에 대해서 보도록 하겠습니다. 저번에 예를 들었던 것 중에, CopiesList를 들고 오겠습니다. 이것은 AbstractList를 상속받는다고 되어 있어요. 명세를 보면, immutable list를 리턴한다고 되어 있어요. 저번에 본 바로는 CopiesList가 Collection 내부에 private 클래스로 되어 있었어요. 그리고, 계속 읽어보면, n copies of the specified Object라고 되어 있는데요. 특수 오브젝트의 n개..
Java 검색 결과
안녕하세요. 이번 시간에는 java string에 있는 trim 함수에 대해 알아봅시다. trim은 보통 문자열의 앞과 뒤에 붙어 있는 공백을 제거하기 위해서 쓰는 경우가 많습니다. 공백, 아니면 tab을 제거할 때요. 코딩 테스트에서는 이 정도에서 해결을 볼 수 있는 경우가 대다수입니다. 여기까지는 별 문제 없어 보입니다. 그런데, 저는 이 글을 상세 분석에 쓰고 있습니다. 이렇게 간단한 메서드를 왜 상세 분석에 쓸까요? 질문 하나 드리겠습니다. trim은 문자열의 맨 앞과, 맨 뒤에 붙은 모든 white space를 제거할까요? 테스트 데이터를 만들어 보겠습니다. 3개의 String이 들어가 있는데요. 위에 2개는 white space가 공백과 new line, tab으로만 이루어져 있어요. 문제는 ..
spring boot에서 파일에 설정 정보가 있는 경우에는 어떻게 읽어와야 할까요? 요구 사항은 아래와 같습니다. 어떻게 하면 좋을까요? 요구 사항을 먼저 간단하게 분석해 봅시다. 요구 사항에서 중요한 것은 크게 3가지입니다. 프로그램은 properties 설정 파일 하나를 읽어서, db 접속 정보를 읽어내야 합니다. 그 외에 셋팅값 정보는 없다는 것이 중요합니다. 보통 host와 password, db를 읽어야 합니다. 이 3개가 있어야 접속을 할 수 있기 때문입니다. 단지, 접속 정보를 외부 파일로부터 읽어내는 것이 중요한데요. 외부 파일은 아래 위치에 있다고 해 봅시다. jo_test/spring/external_configure의 conf 폴더 밑에 app-prod.properties에 있다고 해..
리스트를 초기화 할 때, 모두 같은 값으로 초기화 해야 하는 경우가 많습니다. 예를 들어 60개의 원소를 모두 0으로 초기화 하거나, 혹은 -1로 초기화 하는 것이 이에 속합니다. c++에서는 vector의 resize를 이용하면 매우 손쉽게 할 수 있었는데, 자바는 아니였습니다. 간단하게 하는 방법 중 하나는, 콜렉션의 nCopies의 힘을 빌리면 됩니다. 위 그림을 보시면, Collections.nCopies 메서드를 썼음을 알 수 있는데요. 1번째 인자인 n은 갯수를 의미합니다. 예를 들어 60개의 원소를 0으로 초기화 하고 싶다면 1번째 인자에는 60을 넣으면 됩니다. 2번째 인자에는 당연하게도, 0을 넣어주시면 됩니다. 당연한 이야기일지도 모르겠지만, Boxing 객체가 아닌 다른 객체를 nCo..
이번 글에서는 우분투에 java를 설치하는 방법을 알아보겠습니다. 여기에 언급된 명령어들은 추후에 다시 다뤄볼 기회가 있을 겁니다. 여기에서는 그냥 간단하게만 훑고 넘어가도록 하겠습니다. 먼저, apt-cache search 명령어와 grep를 이용해서, java 패턴이 있는 패키지 중에서 openjdk-8 패턴이 있는 것을 검색하였습니다. 그랬더니 이런 것들이 쭉 나오게 되었어요. 저는 처음에 openjdk-8-jre-headless를 설치해서, 왜 javac가 설치가 안 되었지? 하고 당황하였습니다. 당황하지 마시고, openjdk-8-jdk-headless를 설치하시면 됩니다. jre는 자바 런타임만 설치하게 됩니다. apt-get install openjdk-8-jdk-headless 명령어를 입..
최근댓글