반응형

All 98

D3.js 마인드맵 차트

var nodeArray = new Array(); var linkArray = new Array(); var nodeColorArray = d3.scale.category20(); data = { nodes: [ {keyword: '미스트롯', id:'1', tag:'1'} ,{keyword: '김호중', id:'2', tag:'2'} ,{keyword: '편의점 샛별이', id:'3', tag:'3'} ,{keyword: '방탄소년단', id:'4', tag:'4'} ,{keyword: '미스터 트롯', id:'5', tag:'5'} ,{keyword: '전지적 참견 시점', id:'6', tag:'6'} ,{keyword: '(아는 건 별로 없지만) 가족입니다', id:'7', tag:'7'} ,{..

Front/Chart 2020.07.01

Spring 필드주입(@Autowired)보다 생성자주입을 권장하는 이유

생성자주입을 권장하는 이유를 알아보기 앞서 스프링 프레임워크의 DI(Dependency Injection) 의존성 주입 방법은 크게 세가지로 볼 수 있다. 1. 필드주입 사용법이 매우 간단하다. 필드에 @Autowired 어노테이션을 붙여주면 자동으로 의존성이 주입된다. 편리하기 때문에 가장 많이 접할 수 있는 방법인 것 같다. @Component public class MadExample { @Autowired private HelloService helloService; } 2. 수정자 주입 수정자(Setter)를 이용한 주입 방법도 있다. 다만 잘 사용하진 않은듯. @Component public class MadExample { private HelloService helloService; @Au..

Back/Spring Java 2020.05.25

JPA Specification으로 findAll 조회쿼리 where조건 동적 세팅

Mybatis를 사용하다 JPA를 사용해보니, 데이터 select시 조건세팅에 대한 부분이 고민되었다. Mybatis에서는 xml Mapper로 넘어온 파라미터 여부에 따른 조건절을 동적으로 세팅하는 부분이 눈에 보이기 때문에 어떻게 보면 JPA보다 직관적으로 파악 할 수 있다고 생각한다. JPA에서 각 파라미터에 따른 find메서드를 생성할수도 없고, 물론 설계나 어떤 요건에 따른 특화된 기능이라면 그렇게 사용하는것이 좋지만, 공통 조회서비스에서 각 파라미터 별로 메서드를 생성하긴 비효율적이다. 때문에 Mybatis에서 사용했던 내용처럼 Parameter 객체에 모든 파라미터를 담아 그 객체만 넘겨서 동적으로 select하는 방식을 구성해봤다. 1. User Repository import com.ex..

Back/JPA 2020.04.28

@Async 비동기 호출

실행중인 프로세스 이외의 비동기 작업이 필요한 대상이 있다면 해당 메서드에 @Async어노테이션을 추가하면 된다. @Async public void runAsync() { // Run run do run run Aikatsu } 해당 방식은 전통적인 방식으로 동작되는 코드 이다. 매우 간단하다. 하지만 다른 스레드로 실행 시키려고자 한다면 @EnableAsync 설정을 따로 해야한다. @Configuration @EnableAsync public class AsyncConfiguration { private final int ASYNC_THREAD_POOL_SIZE = 5; @Bean(name = "threadPoolTaskExecutor") public Executor threadPoolTaskExec..

Back/Spring Java 2020.04.27

for문(Loop) 성능 개선 - 2

JDK5.0이전에는 대부분 아래와 같이 for문을 작성 했을 것이다. for (int loop = 0; loop < list.size(); loop++) 위의 코드의 문제점은 loop를 돌면서 매번 list.size()메서드를 호출 하기 때문에 적절하지 못하다. 아래와 같이 개선한다면, int listSize = list.size(); for (int loop = 0; loop < listSize; loop++) list.size()메서드를 반복 호출할 필요가 없어지므로 조금 더 향상된 성능을 보여준다. 또, JDK5.0부터는 향상된for문, for-each를 사용 할 수 있다. ArrayList list = new ArrayList(); for (String str : list) *성능테스트 int c..

Back/Spring Java 2020.04.16
반응형