안녕하세요. 이 글에서는 Serializable에 대해서 상세히 다루지 않습니다. 다만, java에서 transient 키워드에 대해서 간단하게만 다뤄보고자 합니다. transient가 무엇을 하는 지 알아보기 위해 Serializable을 implements 했어요. 굵게 쳐져 있는 Warning. 신뢰되지 않는 데이터를 역직렬화를 시키지 말아달라는 부분이 있긴 하지만, 여기에서는 다룰 주제가 아닙니다. 직렬화? 뭘 어떻게 한다는 것일까요? data class를 직렬화 시켜서 파일로 떨궈보겠습니다. 그랬더니 byte 형태로 표현이 되었어요. AC ED 00 05 ... 00 02 data의 내용을 조금 조작해서 직렬화를 시켜 봤더니 요래 나왔네요. AC ED 00 ... 01. 우리가 객체를 누군가와 ..
전체 글 검색 결과
안녕하세요. 톡방에서 Long 객체에 저장된 값을 Integer type으로 conversion을 할 수 있는지에 대한 질문을 받았습니다. 이에 대한 제 답은 그냥 intValue 메서드를 써서 int type으로 강제 형변환한 값을 꺼낸 다음에, boxing 시키라는 것이였습니다. 이 답변을 하고 난 후에, 코드를 보니, Number 클래스가 있어서 간단하게 알아보았습니다. 이 클래스 안에는, intValue, longValue, floatValue, doubleValue, byteValue, shortValue 메소드가 있어요. 이들이 boxing 되어 있는 value를 type conversion하기 위한 것이다. 나름 합리적인 추론일 겁니다. 설명을 봐도 유추할 수 있는데요. super class..
spring security를 이용해서 api 서버를 간단하게 만드는 토이 프로젝트를 진행하다가, 뭔가 거슬리는 것이 있어서 몇 가지 설정을 off 한 게 있었는데요. csrf도 그 중 하나였습니다. 3회 코딩테스트를 출제하느라 얼레벌레 넘어간 감이 있었는데요. 문득 생각이 난 김에 몇 편 정도 써 보려고 합니다. 혹여나 이상한 부분이 있다면, 댓글을 남겨주시면 감사하겠습니다. 먼저, spring security + spring web 디펜던시만 추가하고 아무것도 추가하지 않은 서버를 돌리면, 요런 로그인 페이지가 하나 뜨게 됩니다. 페이지 소스를 보겠습니다. 보면 _csrf라고 hidden type이 하나 뜨게 되는데요. csrfFilter 클래스에서 doFilterInternal 메서드에 브레이크 포..
java 9 버전 부터 Map.of 메소드가 생겼습니다. 이것을 언제 쓸 법 한지 알아보고, 간단하게 내부를 보도록 하겠습니다. 보시면, unmodifiable map을 리턴하게끔 되어 있습니다. 수정할 수 없는 맵을 리턴한다고 보면 맞겠네요. 예제 프로그램을 하나 보겠습니다. 먼저 key와 value값이 (1, 1)인 쌍과 (2, 2)인 쌍을 넣은 다음에, m에 들어있는 내용들을 toString으로 출력해 보겠습니다. 그러면, (2, 2)쌍과 (1, 1)쌍이 출력됩니다. 만약에 이 상황에서, 키를 추가한다고 하면 어떻게 될까요? 예제는 이렇습니다. 일단, Map.of는 둘 이상의 (k, v)쌍을 호출하게 되면 ImmutableCollections 안에 있는 MapN 객체를 만들어 내게 됩니다. 이것은 ..
제가 개최한 코딩테스트 2회의 2번 문제는 가희와 키워드 문제였습니다. 메모장에 있었던 키워드는 해당 키워드에 대한 글을 쓰고 나면 지워지게 되는데요. 문제는 블로그에 글을 쓰고 난 후, 메모장에 남은 키워드는 몇 개인지를 묻는 것입니다. 이 문제의 원래 출제 의도는 string의 길이 제한을 잘 보고 압축을 해서, 문자열 비교하는 복잡도를 떨궈낼 수 있는 가였습니다. 문제 제한을 더 자세히 보겠습니다. 문제에서 등장하는 키워드의 총 개수는 200만개 이하입니다. 200만개에 대해서 메모장에 키워드가 있는지를 검사하면 되므로, treemap을 써도 괜찮아 보이긴 합니다. O(200만log50만)면 괜찮지 않을까요? 여기서 문제. treemap을 쓰면 문자열의 compareTo 함수는 얼마나 호출이 될까요..
최근댓글