소숫점 표현시 BigDecimal 등을 사용하면 0이 생략되어 표시된다. 만약 0.0000과 같이 빈 0도 표현하려면 String.format을 사용해야 한다.
im-d
JVM의 구현은 운영체제마다 다르다. 스펙은 인터페이스 같은 느낌이고, 구현에서 어떤 시스템 콜을 사용할지 결정한다. 예를 들어, 윈도우에서는 윈도우 스레드 API를 사용하고 맥이나 리눅스에서는 Pthread API를 사용한다.
데브독스는 당분간 잠정 종료될 것 같다. 주제를 가지고 토론을 해보는게 어떠냐는 얘기가 나왔는데 괜찮은 것 같다.
07.13
코테 리뷰
류호석님이 재능기부를 해주셨다. 쉽다 생각했는데 떨어져서 많이 상심하고 있었는데, 잘못된 부분을 알고나니 큰 힘이 됐다.
인덱스 실수가 있었다. 아무리 급하고 쉬워보여도 엣지케이스나 뻔히 보이는 예외는 꼭 테스트하자.
String은 무겁다. 수가 적을때는 크게 문제되지 않겠지만, 수가 너무 많은 경우 String이 미리 주어지는게 아니라면 캐릭터를 사용하는게 더 좋겠다. 스트링 풀도 힙 영역 안에 있어서 permgen이 없어졌다해도 힙 메모리 오버가 날 수 있다. LinkedList를 선택한 것은 좋았던 것 같지만, 스택으로도 풀 수 있다니 유사한 문제를 다시 풀어봐야겠다.
07.14
문자열 폭발
어제 리뷰받았던 문제의 유사문제를 풀어봤다. 역시 String으로 하면 잘 안되고 캐릭터로 바꾸니 잘 됐다. 스택으로도 풀어봐야겠다.
멀쩡한 사각형
최대공약수를 이용할 수 있는 문제였다. 최대공약수를 잘 모르니 먼저 공부해보자. 주말에 슬빈님 풀이를 살펴보는 것도 좋은 방법일 것 같다.
07.15
최대공약수, 최소공배수를 정리했다. 내일 검수하고 게시해야겠다.
BigInteger에 gcd 메소드가 있다. 살펴보다 궁금해진 부분이 있어 디버깅을 해봤는데, int 범위를 넘어갈 경우 int범위만큼 쉬프트 하여 저장한다. 이러면 long 없이 여러개의 int 배열로 표현할 수 있기때문인 것 같다.
소수찾기 메소드도 있었는데, gcd도 느리긴 하지만 소수찾기는 많이 느렸다. 내부적으로 최적화가 되지 않은 듯한 느낌이었는데, 이유를 찾아봐야 할 것 같다.
07.16
멀쩡한 사각형 풀이. 최대공약수를 이용하니 쉽게 풀이 됐다. 선의 길이 공식을 사용하면 시간초과가 나온다고 한다.
오픈채팅방은 현재 사용자 목록을 해쉬테이블에 저장하고, 객체 링크를 가진 리스트를 만드는 것으로 해결했다.
ATDD를 함으로 얻는 장점 중 시작과 끝이 정해진다는 점, 불필요한 코드 생성이 적어진다는 점이 있다고 한다. 그리고 outside in tdd 라고 부르기도 하는 것 같다. 큰 내용을 정하고 세부 내용을 구현해서 그런가보다.
07.17
포스트스쿼드 프로젝트 기획 회의를 했다. 지난 주에 어느정도 틀이 나온 것으로 생각했지만, 얘기해보니 서로 생각하는게 많이 달라 보였다. 모두 괜찮다 혹은 좋은 것 같다고 얘기해도 해당 부분이 서로 다르기때문에 확인을 해야 한다. 이번에 이 점을 간과했던 것 같다. 아무튼 서로 생각했던 것을 얘기하고 서로 중요하다고 생각하는 부분 중 어떤게 더 좋은 방법인가 얘기를 해봤다. 빰빰이 정리를 잘 해주셔서 깔끔하게 정리가 됐다. 순간순간 얘기하는걸 캐치해서 정리를 해줬는데, 서로 원하는 부분을 정확히 절충해줬다. 배워야겠다.