분류 전체보기
-
elasticsearch 사용해보자.카테고리 없음 2023. 4. 20. 09:52
저번 포스팅중에 엘라스틱서치를 설치 해봤다. 여기 설치는 해봤으니 사용해보자. 관계형 데이터베이스 elasticsearch Database Index Table Type Row Document Column Field Schema Mapping Index Everything is indexed SQL Query DSL 출처 : http://d2.naver.com/helloworld/273788 관계형 데이터베이스와 엘라스틱 서치에 관한비교를 해봤다. 네이버 개발자블로그에서 찾았다. 우리는 예전에 엘라스틱서치의 플러그인도 설치를 해봤으니 거기서 해도 되고 curl로 해도 상관없다. 엘라스틱과 키바나를 실행 시키고 http://localhost:5601 다음과 같이 접속해보자! 엘라스틱 서치는 Rest Api..
-
spring boot jpa Multiple datasource카테고리 없음 2023. 4. 20. 09:52
스프링 부트의 여러개 데이터 소스를 써야 한다면 설정을 조금 해줘야한다. 회사에서 할때는 잘 안됐는데 집에서 한방에 됐다.ㅋㅋㅋㅋ 문제가 뭔지는 담주에 회사 가서 다시 천천히 살펴 봐야겠다. 원래 있던 소스에서 변경을 할라고 해서 뭔가 꼬였나. 아무튼 일단 한번 찬찬히 살펴보자 spring: jpa: show-sql: true generate-ddl: true properties: hibernate: ddl-auto: validate user: datasource: url: jdbc:h2:tcp://localhost/~/user username: sa password: driverClassName: org.h2.Driver customer: datasource: url: jdbc:h2:tcp://loca..
-
spring Transactional? javax Transactional?카테고리 없음 2023. 4. 20. 09:52
@Transactional 스프링을 개발하다보면 어노테이션으로 트랜잭션처리를 많이 한다. 아주 좋은 어노테이션이다. 근데 한가지 궁금한게 생겼다. IDE로 자동완성을 하다보면 두가지가 나온다. javax.transaction 패키지의 Transactional 또 하나는 Spring Transactional이다. 이 두가지의 차이점이 궁금하였다. 그래서 테스트를 시작했다. 일단 Spring boot로 테스트를 해보았다. spring boot 1.4M2 로 테스트를 하였는데 똑같이 AOP도 동작하고 rollback도 동작하였다. 엥 그럼 뭐가 다른거지? 이것 저것 해봤는데 AOP와 롤백이 동작하였다. 다른게 존재 하지 않았다. 물론 Transactional 속성 값은 다르겠지만 롤백 자체가 되는건 스프링에서..
-
spark 설치 및 간단하게 보자카테고리 없음 2023. 4. 20. 09:52
spark을 설치 해보자 간단하게 설치하고 실행만 시켜보자. mac 기준으로 설치를 진행하겠다. 깔기만 하면 되긴 하는데..설치할 것도 없다. 위와 같은 설정으로 다운받자. 원하는 곳에 압축을 푼후 ${SPARK_HOME}/bin 으로 가서 아래와 같이 실행 시키자! ./spark-shell 그럼 위와 같이 실행 될 것이다. 이 spark-shell을 실행 시키면 sparkContext가 생성 된다. 로그를 보면 확인 할 수 있다. Spark context available as sc. 이렇게 말이다. 그리고 webUI도 함께 올라간다. http://localhost:4040 으로 접속 해보자! 일단 설치가 완료 되었다. 이번 시간에는 간단하게만 알아보자 scala> val textFile = sc.te..
-
JPA (JPQL) (3) join카테고리 없음 2023. 4. 20. 09:52
어제 스프링캠프를 갔다왔다. 아주 좋았다. 커피도 주고 밥도 주고 혼자라 심심한거 빼곤 좋은 경헙이었다. 아주 만족한다. 좋은 강의도 많이 듣고 내년에도 꼭가야지 이번 시간엔 jpql의 join에 대해 알아 보자. JPQL은 일반 SQL과 기능은 같지만 문법만 약간 다르다. 내부 조인 우리가 흔히 쓰는 SQL의 inner join이다. inner는 생략 가능 하다. 한번보자. String team = "team1"; String query = "select m from Member m inner join m.team t where t.name = :teamName"; List members = entityManager.createQuery(query,Member.class) .setParameter("t..
-
java CGLIB AOP (2)카테고리 없음 2023. 4. 20. 09:52
예전에 한번 java proxy 기능으로 AOP를 포스팅 한적이 있다. 요기 원래 cglib는 따로 있던 건데 Spring이 가져왔나부다. Spring프로젝트에 포함되어 있다. 우리는 java Proxy로 AOP를 만들 때 단점이 한개 있었다. 그 단점은 바로 인터페이스를 만들어야 하는 이유이다. class TwiceImpl implements Twice { @Override public int twice(int x) { return x * 2; } } interface Twice { int twice(int x); } 우리는 예전에 이런 코드를 작성 할때 인터페이스를 만들었어야 했다. 그래야지만 AOP가 동작 한다. 하지만 이제는 인터페이스가 필요 없이도 AOP가 가능하다. cglib 라는 프로젝트? ..
-
@Async 와 비동기카테고리 없음 2023. 4. 20. 09:52
@Async 와 비동기 대한 고찰 Spring의 @Async는 비동기적으로 메소드를 실행 한다. 비동기는 리턴값을 받을 수 없다. 그건 당연한 거다. 설사 받는다해도 null값이 떨어질 것이다. 한가지 받을 방법이 있는데 그게 바로 java.util.concurrent.Future 타입으로 받아야 된다. @Async public Future getFuture() throws InterruptedException { return new AsyncResult("return"); } 이런 식으로 리턴 값을 받을 수 는 있다. 사용해 보자 Future stringFuture = asyncBean.getFuture(); String result = stringFuture.get(); 그런데 조금이상하다 비동기로 ..
-
spring @Autowired카테고리 없음 2023. 4. 20. 09:52
spring Autowired 맨날 아무 생각 없이 @Autowired @Inject @Resource 이것들을 쓰다보니 그냥 의존성 주입인 줄만 알았다. 물론 틀린 말은 아니다.하지만 그게 다가 아니다. 어떤 소스중에 factory-method 쓰면서 Autowired 하지않고 getInstance를 그대로 호출 하는 소스가 있었다. private static ClassA instance = new ClassA(); public static ClassA getInstance() { return instance; } 대충 소스는 이것! 그럴듯한 소스이다. 뭐 저 인스턴스를 그냥 써도 무방하다. private final ClassA classA; @Autowired public ClassConstructo..