java to kotlin 전환시작 - 전환의 이유 최근 팀에서 kotlin을 도입하고 명확한 장점에대해 공감하게 되어 기존 java 프로젝트를 kotlin 으로 전환하는 작업을 진행했고, 성공적인 전환을 완료했습니다. 작업 과정과 그 과정에서 얻은 경험들을 이번 포스팅을 통해...
Spiring boot 2.7.0 update Spring boot 2.7.0 update 사항 정리 (2022. 05. 19) 원문 https://spring.io/blog/2022/05/19/spring-boot-2-7-0-available-now https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes 내기준 주요 변경사항 ES RestHighLevelClient 가 deprecated 됨 low-level RestClient 사용해야해서 간단한 호출들대한 자잘한 코드 사이즈가 증가하겠음 복잡한 쿼리...
변경된 데이터 수집을 위한 방법 프로그램을 개발하다보면 변경된 데이터를 반영하기 위해 데이터를 조회해 오는 기술들이 필요로 할 때가 있습니다. 먼저 이러한 상황이 쓰여야하는 예를 들어보면 아래와 같은 상황이 있겠습니다. 실시간으로 바뀌는 환율및 주가 정보를 가져와서...
스프링 부트 테스트 성능높이기 이전에 SpringBootTest @MockBean 관련 포스트와 연계된 내용으로 @MockBean 을 사용하고있는 SpringBoot 테스트 환경에서 성능을 높일 수 있는 방법들에 대해 몇가지 적어보려고합니다. 이전포스팅에서 공유드렸던것 처럼 SpringBootTest를 사용하고있는 환경에서는 테스트시에 사용하는 별도의 Application...
@Suppress, @SuppressWarning 인텔리제이의 큰 장점중 하나는 실시간 코드 inspection을 통해 간단한 정적분석기능이 내장되어 있다는것 입니다. 하지만 가끔은 의도한 warning이 파일에 계속해서 Warning 표시가 뜨게된다면 다른 코드들이 묻혀버리게 될 수 있습니다. (깨진 창문의 법칙) 이때 유용하게...
Spiring boot 2.6.0 update Spring boot 2.6.0 update 사항 정리 (2021. 11. 19) 원문 https://spring.io/blog/2021/11/19/spring-boot-2-6-is-now-available https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.6-Release-Notes 내기준 주요 변경사항 bean 순환참조가 default 옵션으로 금지처리됨. 순환참조 여부를 좀 더 빠르게 확인 가능해질듯. 순환참조를 의도적으로 사용 할...
단위테스트 안티패턴 1. 비공개 메서드 단위테스트 private 메서드를 단위테스트 해야하는가? 비공개 메서드를 직접 테스트 하기보다는, 포괄적인 메서드 호출로 간접적으로 테스트 하는것이 좋다. 비공개 메서드가 너무 복잡하다면, 별도 클래스로 도출해야하는 리팩토링 징후로 볼 수 있다. 2....
MockBean, SpyBean 보통 테스트 수행시 타겟 코드에 대해서만 검증을 하기 위해서 의존되는 코드를 원하는 대로 처리 할 수 있게 Mocking을 설정하게됩니다. Mocking은 아래와같은 상황에서 주로 사용되게 됩니다. 단위테스트시 테스트 범위를 제한시키고자 할때 외부 API 호출...
네트워크 타임아웃 어느정도 규모가 있는 서비스라면 보통 외부와의 통신없이 사용하는 stand-alone 으로 사용하는 경우는 드물다고 할 수 있습니다. 서비스 특성에 따라 일반적으로 사내 API 혹은 외부 API 들을 연계해서 사용하는것이 대부분일텐데 이때 각 서비스들간에 네트워크...
스크럼을 실무에 도입한 경험 지금 스크럼을 도입해서 사용하지 않은팀이라도 애자일 이라는 용어는 계속해서 들어보셨을거라 생각합니다. 그리고 아마도 가볍게 몇가지 시도를 해보다가 큰 효과를 보지 못해 애자일 회의론자로 돌아서신분들도 있을거라 생각합니다. 우선 애자일은 단지 방법론임을 이해해야합니다....
들어가기에 앞서 이전에 ‘Jira를 통해 스크럼 관리하기’ 라는 주제로도 글을 쓴 적이 있습니다. 이후 github을 메인으로 프로젝트를 관리하는 팀에 오면서 github으로 스크럼 프로젝트를 관리하는 방법에 대해 정리하고 공유하려고 합니다. 앞서서 말씀드리자면, 애자일한 프로젝트 관리에 특화된...
몰입의 즐거움 오랜만의 독후감 1999년 발간된 오래된 책 이고, 심리학과 철학적인 내용으로 읽기 힘든 문제로 쓰여진 전공서적과 같은 느낌 그리고 책을 읽는내내 꾸짖음을 듣고있는듯한 자기계발을 강조하는 읽기 싫은 3박자를 갖춘 책이었습니다. 그럼에도, 몰입 이라는 단어가...
코틀린에서의 CheckedException 코틀린에서는 자바와 달리 CheckedException 처리를 강제화하지 않습니다. (https://kotlinlang.org/docs/exceptions.html#checked-exceptions) 따라서 Exception 을 처리할때 자바와 다음과 같은 차이점이 존재합니다. // java case1 public void doSomething(){ try{ service.somethingA() } catch(AException e){ // exception process } }...
list 동기화의 필요성 아마 이 글을 읽으시는 독자분들 께서는 멀티쓰레드 환경에서 list.add(...) 혹은 list.get(...) 을 수행할때 오류가 발생함을 경험해보셨을것이라 생각합니다. 일반적으로는 다른 쓰레드에서 list 내부 array의 size가 변경되면서 out-of-index로 인해 발생하는 exception 혹은, 경쟁이 일어나면서...