AtomicInteger
를 사용하여 상태를 관리하고 있었는데, 대신에 이전 값을 변경해주면 속도차이가 있지 않을까 하고 생각했다. 하지만 속도 차이가 나지는 않았는데 결국 반복횟수는 크게 차이나지 않기 때문이었던 것 같다.ByteBuffer
, BufferedStream
, BufferedReader
를 비교해봤다. 병렬환경같은 실질적인 차이가 날만한 테스트는 해보지 못했지만, 그래도 직접 바이트를 컨트롤 하는 것이 더 효율적이지 않을까 하고 생각을 했다. 하지만 예상과 다르게 BufferedReader
의 속도가 가장 빨랐는데, BufferedReader
의 스트림으로 바로 변환해주는 메소드가 스트링을 리스트로 파싱해주는 작업보다 효율적인듯 하다. 하지만 그럼에도 엄청난 차이는 나지 않았기 때문에 일반적인 경우에는 자신이 편한 것을 사용하면 될 것 같다.남의 코드를 보는 것이 중요하다고 한다. 좋은 코드에 대한 기준을 잡을 수 있기 때문인데, 어쨌든 이러나 저러나 남의 코드를 봐야 할 일이 많으니 독해력을 키워야 할 것 같긴 하다. 다음 주 부터는 오전 스크럼 시간에 코드 리뷰를 한다고 한다. 실력이나 안목이 많이 늘어날 것 같긴 한데, 한 편으로는 걱정도 된다. 페어 프로그래밍도 해보고 싶었는데 이번에는 하지 않는 것 같아 조금 아쉽다. 따로 해볼 수 있는 방법이 있는지 생각해봐야겠다.
이외에도, 요즘에는 사용하는 메소드가 어떻게 구현되어 있는지 읽어보려고 노력 중이다. 사실 잘 읽히지 않기는 하다. 인터페이스와 구현이 명확하게 분리되어있거나 추상 클래스를 이용하고 팩토리 메소드를 활용하는 경우 구조 파악도 힘든 경우가 있다. 웬만한 코드보다 레퍼런스에 훨씬 가까울테니 보고 따라할 수 있는건 따라해보고 싶은데, 일단은 주석부터 차근히 읽고 이해해보는 연습을 먼저 해야할 것 같다.
내일은 스프링의 샘플 프로젝트들을 살펴보려고 한다. 나도 샘플 코드들을 작성해보고 있는데, 사실 어제 완성하기로한 샘플도 완성하지 못했다. 좀 널널하게 하긴 했지만 그 것과는 별개로 하다 보니 좀 제대로 만들어놓으면 편할 것 같다는 생각이 들어서다. 어차피 바로 개발에 착수할테니 지금 대략적인 패턴을 생각해놓고 조사해놓는 것이 좋을 것이라 생각했다. 하지만 항상 하는 고민인, 무엇이 좋은 패턴 혹은 방법인가에 대한 답을 스스로 내리기는 힘들기 때문에 일단은 스프링에서 제공하는 샘플을 참고하려고 한다. 정 안되면 책을 구매해서 봐야겠다.
TestRestTemplate
을 사용할 경우 클라이언트 사이드에서부터 시작하기 때문에 통합테스트에 사용하기 좋다고 한다. MockMVC
는 단위테스트와 통합테스트 사이에 있다고 하는데, 서비스도 Mock 객체로 잘 바인딩하면 고립시켜서 단위테스트 역할만 수행하도록 할 수 있을 것 같다.Powered with by Gatsby 2.0