본문 바로가기
반응형

전체글587

[mysql] 인덱스 정리 및 팁 MySQL 인덱스에 관해 정리를 하였습니다. MySQL을 잘 알아서 정리를 한것이 아니라, 잘 알고 싶어서 정리한 것이라 오류가 있을수도 있습니다. 1. 인덱스란? 인덱스 == 정렬 인덱스는 결국 지정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성하는 것입니다. insert, update, delete (Command)의 성능을 희생하고 대신 select (Query)의 성능을 향상시킵니다. 여기서 주의하실 것은 update, delete 행위가 느린것이지, update, delete를 하기 위해 해당 데이터를 조회하는것은 인덱스가 있으면 빠르게 조회가 됩니다. 인덱스가 없는 컬럼을 조건으로 update, delete를 하게 되면 굉장히 느려 많은 양의 데이터를 삭제 해야하는 상황에선 인덱스로 지.. 2017. 11. 5.
Spy 사례1 - 테스트 대상 Mocking 하기 안녕하세요? Spy의 활용 사례 1번째를 소개드립니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 이전 포스팅 SpringBoot @MockBean, @SpyBean 소개 을 보신분들께서 Mock은 어디에 써야할지 알겠는데, Spy는 언제 써야할지 감이 잡히지 않는다는 이야기를 해주셨습니다. 그래서 어떻게 하면 좋을까 고민하다가 마침 회사 업무중에 적절한 사례를 찾게 되어 정리하게 되었습니다. 상황 기본적인 프로젝트 구성은 SpringBoot에서 JUnit, Mockito, Spock을 모두 사용하겠습니다. 사용할 프로젝트 코드들은 .. 2017. 10. 21.
SpringBatch에서 ItemReader를 Mock객체로 교체하기 안녕하세요? 이번 시간엔 SpringBatch에서 ItemReader를 Mock객체로 교체하는 예제를 진행해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 발단 스프링 배치로 테스트 코드를 짜다보면 정말 하기 싫은것이 ItemReader로 읽어올 데이터를 만드는 것입니다. 특히나 실제 업무에서 쓰다보면 수많은 필수값들과 엔티티 관계들로 인해 만들어야할 데이터가 많을 경우 더 그렇습니다. 이렇게 테스트 환경 구축이 힘들때는 역시나! Mock을 활용하면 좋다고 생각했습니다. ItemReader를 어떻게 Mocking할지 고민하.. 2017. 10. 17.
JPA에서 대량의 데이터를 삭제할때 주의해야할 점 안녕하세요? 이번 시간엔 JPA에서 대량의 데이터를 삭제할때 주의해야할 점을 샘플예제로 소개드리려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 발단 업무중에 배치로 일괄 데이터 삭제 기능을 작업하였습니다. 테스트를 진행하는데 삭제 성능이 너무나 안나오는 것이였습니다. 단순 삭제에서 왜이렇게 성능이 안나오나 slow query를 확인해보는데 이상한 점을 발견하였습니다. 이를 샘플예제로 소개드리겠습니다. 예제 샘플 코드 작성을 위해 다음과 같은 의존성들을 사용할 예정입니다. Gradle을 사용할 예정이며, 테스트 프레임워크로 S.. 2017. 10. 16.
SpringBoot H2 DB 클라이언트로 IntelliJ 사용하기 안녕하세요? 이번 시간엔 SpringBoot H2 DB 클라이언트로 IntelliJ를 사용하는 방법을 소개드리려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 들어가며 보통 로컬에서 개발환경을 구축하면 H2 DB를 많이 사용합니다. 여기서 H2는 설치형이 아니라, SpringBoot에 의존성을 둔 H2 내장 DB를 사용하는 경우입니다. 이 경우에 일반적으로는 h2-console 이라는 웹 형태의 콘솔을 사용합니다. 하지만 웹 콘솔은 결국 기능상 한계점이 많아 전문적인 DB Client가 필요할때가 많습니다. 이때 좋은 해결 방.. 2017. 10. 13.
[Java8] 메소드를 파라미터로 전달하기 안녕하세요? 이번 시간엔 java8에 새로 추가된 기능 중 메소드 파라미터에 대해 다시 정리해볼 예정입니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 예제 여기에서는 간단한 프로그램을 기존 자바 코드로 해결하면서 발생하는 문제를 자바8에서 어떻게 개선할 수 있는지 비교해볼 예정입니다. 단, 람다식/스트림 등등의 자세한 내용은 다음 포스팅에 포함될 예정입니다. 여기선 자바8의 변화로 메소드를 파라미터로 넘기는 이유와 장점에 대해 소개할 예정입니다. 과일 재고 프로그램 예를 들어 과일 재고 목록을 관리하는 어플리케이션을 만든다고 가정하.. 2017. 10. 9.

728x90
반응형