본문 바로가기
반응형

분류 전체보기386

[spring] jpa와 mybatis 동시 사용시 transactinoManager (multi) 설정하기(xml) 및 내부 살펴보기 현재 시스템이 2개의 TransactionManager 로 나뉘어있다. 하나는 지금까지 사용한 마이바티스 기반 TransactionManager가, 그리고 다른 하나는 앞으로 JPA로 커스터마이징 할 TransactionManager 이다. 기존의 마이바티스로 설정된 TransactionManager 의 구현클래스는 DataSourceTransactionManager 이다 그리고 JPA의 경우 구현하는 TransactionManager는 JpaTransactionManager 다 문제는 @Transactional 은 하나의 TransactionManager 를 사용한다는 점이다. 그래서 @Transactional 을 선언한 곳에서 어떤트랜잭션을 사용하느냐에 따라 어떤것은 롤백이 되고 어떤것은 롤백이 되지.. 2019. 12. 17.
[spring] LocalDateTime 주고받기(Response, Request) 데이터베이스에서 날짜데이터를 로드할 때 날짜형식의 String 형태으로 구성하여 전달하는 경우가 있다. (2019-12-14 07:00:00 과 같은 방식) 그중 마이바티스를 사용하는 경우 query를 작성할때 날짜를 format변경하여 String으로 조회하게 하여 리턴하는 경우 문제가 발생했는데, 개발자마다 누군가는 포멧팅을 하고 누군가는 포멧팅을 쓰지 않았다. 그러다보니 클라이언트가 날짜를 처리할때 통일되게 처리하지 못해 문제가 발생했었다. 그래서 이번에 LocalDateTime 형식으로 변경하면서 날짜포멧을 변경하는 작업을 정리하고자 한다. 그전에) 기존에 운영되고 있는 시스템은 spring 5.x 버전을 사용하고 있지만, 여기서는 예제 편의상 springboot 로 진행했다. Springboot.. 2019. 12. 15.
[spring] 데이터 변수명 변경하여 전달하기 (@JsonProperty 사용) 레거시 시스템중에선 클라이언트에서 변수가 팟홀(Pothole)표기법(언더바, 예를들면 customer_id 와 같은 방식)를 사용하고 있었다. 그러나 자바(서버)에서는 카멜식(customerId)를 사용하고 있기 때문에 화면에 전달할 때에는 자동으로 변환될 필요가 있었다. 그래서 찾아본 결과 @JsonProperty 를 이용하면 하나의 DTO에 설정이 가능하다. 해당 어노테이션을 사용하기 위해서는 com.fasterxml.jackson.core 패키지를 사용해야한다. 메이븐: https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations Maven Repository: com.fasterxml.jackson.core » .. 2019. 12. 14.
[pandas] read_csv 사용 시 날짜를 datetime 형태로 지정하기 csv 의 특정 컬럼 중 날짜형태(yyyy-MM-dd hh:mi:ss) 로 표시되어 있어도 csv를 불러오면 object(string) 형태로 선언되어 있다. 이전까지는 padnas.to_datetime 을 이용해서 형태를 바꿨는데 데이터가 1000만 건이상이 되면 변환해주는것도 시간이 꽤 소요된다. 그래서 옵션을 추가해 처음 로드할때 부터 데이터타입을 맞추는게 더 효율적이다. read_csv를 이용할때 옵션을 주면 datetime 형태로 로드가 가능하다 이번 포스팅은 샘플파일 기준으로 작성했다. 샘플데이터는 다음과 같이 저장되어 있다. read_csv를 이용할때 옵션을 주면 datetime 형태로 로드가 가능하다 id,상품명,구매 1,아메리카노,2019-12-01 11:20:00 2,카페라떼,2019-.. 2019. 12. 10.
[데이터분석] 장바구니 분석(apriori 알고리즘) 사용 및 해석하기 apriori 알고리즘을 사용하기 위해서는 다음과 같은 구조로 데이터셋이 되어야 한다. dataset = [ ['아메리카노', '카페라떼'], ['카페라떼', '아메리카노', '카푸치노'], ['바닐라라떼', '아메리카노'], ... ] DBMS에 이런식으로 데이터가 저장되어 있을리가 만무하다. 전처리를 위해 어떻게 처리하면 좋을지 이전 포스팅에 추가해두었다. https://blog.naver.com/varkiry05/221724021065 [데이터정제] apriori 알고리즘을 실행할 수 있게 데이터 변형하기 DBMS에서 바로 데이터를 뽑으면 다음과 같은 행태일 것이다.​하지만 Apriori 알고리즘을 실행하려면 ... blog.naver.com 여기서는 샘플을 만들어 진행하고자 한다. 데이터셋 샘플 .. 2019. 12. 4.
[데이터정제] apriori 알고리즘을 실행할 수 있게 데이터 변형하기 DBMS에서 바로 데이터를 뽑으면 다음과 같은 행태일 것이다. TransactionID, ProductName 1아메리카노 2카페라떼 2아메리카노 2카푸치노 3아메리카노 3카푸치노 하지만 Apriori 알고리즘을 실행하려면 다음과 같은 데이터구조가 되어야 한다 dataset = [[아메리카노] , [카페라떼,아메리카노,카푸치노] , [아메리카노,카푸치노]] 위와 같은 형태의 데이터를 뽑기 위해서는 2가지 방법이 있다. 1) DBMS에서 위와같은 형태로 뽑는다. 2) pandas 를 이용해 데이터를 가공한다. # 1번의 경우 MySQL을 이용한다면 다음 함수를 통해 구분자뽑기가 가능하다. 다만 뽑을때 구분자를 콤마로 하면 csv로 저장하여 python에서 로드할때 에러가 발생할 수 있기 때문에 여기서는 '.. 2019. 12. 2.
반응형