1. 대용량 로그 데이터 수집 - 로그(Log)는 기업에서 발생하는 대표적인 비정형 데이터 - 과거에는 시스템의 문제 상황, 서비스 접근, 사용 로그를 기록하는 용도 - 최근에는 사용자 행태 분석, 마케팅, 영업 전략 필수 정보 생성 - 비정형 로그는 용량이 방대하기에 성능과 확정성 시스템 필요 가. 초고속 수집 성능과 확장성 - 수집 대상 서버가 증가하면 수만큼 에이전트 수를 늘리는 방식 나. 데이터 전송 보장 메커니즘 - 다양한 저장소의 종류에 따라 수집에서 저장소까지의 양 종단점 간에 데이터 전송 안정성 수준 제어 필요 - 여러 단계를 거쳐 저장소에 도착할 수 있는데 단계별로 신호를 주고 받아서 이벤트 유실 방지 - 성능과 안정성은 트레이드 오프(Trade-Off)가 존재하며 비즈니스 특성 고려해 ..
데이터 연계 및 통합 유형 (동기화 기준) - 데이터 연기 및 통합 시 일괄(Batch) 작업, 비동기식 근접 실시간(Near Real Time), 동기식 실시간(Real Time) 방식이 혼용 사용 될 수 있음 - 일괄 작업 시 대용량 처리가 가능하며, 실시간 작업은 관심 대상 영역 상태에 대한 빠른 파악 및 대응 가능 일괄 및 실시간 사례 일괄 작업 사례 - ETL 기능을 통해 운영 시스템으로부터 ODS를 구성하고, 데이터 웨어하우스나 데이터 마트를 구성한 뒤 OLAP 정형/비정형 질의를 통한 경영 분석 수행 작업 실시간 데이터 통합 사례 - 컨테이터 터미널, 공장 등의 센서들로부터 데이터를 실시간으로 획득해 운영 상태 모니터링 및 통제 (Complex Event Processing이라는 SW 및 데..
자바로 파일을 복사하는 3가지 방식을 설명해보도록 하겠습니다. 이것 이외에도 다양한 라이브러리를 사용해서 복사하는 방법들이 있지만, 아래의 방식만 알아도 큰 문제는 없을거라 판단해서 3가지를 선정해보았습니다. 1. FileInputStream/FileOutputStream 방식 우선 가장 고전적인 방식으로 InputStream, OutputStream 을 사용하여 byte를 복사하는 방식입니다. public static void main(String args[]) { String orgFilePath = "D:/test_copy/original.jpg"; String outFilePath = "D:/test_copy/copy.jpg"; System.out.println("status -> " + file..
Spring boot에서 가장 기본적으로 jdbc를 다룰 수 있는 jdbcTemplate에 대한 설정에 대해서 가볍게 설명해보도록 하겠습니다. 포스팅의 내용은 maven을 기준으로 작성하였고, DB는 MySQL 기준인 것을 참고하시면 되겠습니다. Spring boot 설정 Pom.xml org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java spring-boot-starter-jdbc는 jdbcTemplate를 위함이며, mysql-connector-java는 mysql를 기반으로 connection을 하기 위함입니다. application.properties ## MySQL spring.datasource.url=jdbc..
Java에서 List 데이터의 값으로 오름차순을 하거나 내림차순을 하는 방법은 최하단 포스팅을 확인하시면 되며, 여기서는 데이터를 저장한 순서를 뒤집는 방법을 설명해보고자 합니다. 데이터 세팅 public static void main(String[] args) { String[] arrs = {"삼성전자","테슬라","비트코인","펄어비스","코카콜라"}; List list = new ArrayList(Arrays.asList(arrs)); System.out.println("리버스 이전 리스트 -> " + list.toString()); } # 리버스 이전 리스트 -> [삼성전자, 테슬라, 비트코인, 펄어비스, 코카콜라] 오늘은 주식이 우울한 관계로 떡상하자는 마음에 주식 종목들과 암호화폐 종목을 리..
메디블록의 B2C 앱인 메디패스에서 드디어 걷기 보상의 기능이 추가 되었다. 사실 이미 수많은 보상 앱이 존재하는데 메디패스를 사용해야 될 이유가 있는가? 생각할 수 있지만, 이거 하나로 설명이 될 것 같다. 메디블록 차트 현재 가격은 54원이고, 한때 350원을 넘기는 위엄을 보여준 코인이다. 일반적으로 걸음으로 보상을 주는 앱들을 보면 1만보당 100원 정도를 주거나 혹은 적게 주는 경우가 많다. 그러나 메디블록은 2천보에 1메디, 5천보에 2메디로 5천보를 걷는 순간 3메디를 받는 것이고 1만보를 걸으면 총 6메디를 받을 수 있다. 게다가 출석체크 기능까지 있는데 매일 1메디를 주게 된다. 즉, 1만보를 걷고 출석체크까지 하면 7메디를 받으니 현재 가격으로 350원이고, 피크를 쳤던 가격으로 메디블..
필터 버블(Filter Bubble) 개념 필터 버블(Filter Bubble)은 사용자의 정보(위치, 클릭, 검색 이력 등)를 통해 개인화된 결과물을 기반으로 사용자가 필터링된 정보만을 접하게 되어 마치 거품처럼 사용자를 가둬버리는 현상을 말합니다. 이 용어는 미국의 정치 참여 시민단체 '무브온'의 이사장인 엘리 프레이저(Eli pariser)의 생각 조종자들(원제 The Filter Bubble, 2011)이라는 저서에 처음 등장하였습니다. 즉 어찌보면 개인화(Personalize)의 함정이 될 수 있는데 우리가 일반적으로 알 수 있는 것은 유튜브등을 통해서 특정 정치 성향의 내용을 보다보면, 온통 그 정치 성향의 컨텐츠로 도배를 하여 모든 사람들이 이런 생각을 하게 되는 착각에 빠지곤 합니다. 필터..
MySQL에서는 date_format으로 날짜값을 문자열로 변경하는 포맷을 지원해 준다. 아마 DBMS로 개발을 하는 웹개발자라면 한번씩은 꼭 써보게 되는 기능일텐데, 오늘은 date_format의 포맷 설정값들과 예시에 대해서 포스팅을 해보도록 한다. 포맷 설명 포맷설정 포맷 설명 %a 영문 약칭 요일 (Sun to Sat) %b 영문 약칭 월 (Jan to Dec) %c 숫자로 표현하는 월 (0 to 12) %D 숫자 값으로 표시된 일, 뒤에 접미사가 붙음 (1st, 2nd, 3rd, ...) %d 숫자 값으로 표시된 일 (01 to 31) %e 숫자 값으로 표시된 일 (0 to 31) %f 마이크로초 (000000 to 999999) %H 시간 (00 to 23) %h 시간 (00 to 12) %I..
아마존 추천 시스템 미국에서 가장 추천을 많이 활용하는 기업 3개(넷플릭스, 구글, 아마존) 중 아마존(Amazon) 역시 넷플릭스와 구글처럼 독자적인 모습의 추천 사례들을 만들어 왔습니다. 사실 아마존은 다른 업체보다 추천 시스템을 빨리 사용했으며, 협업 필터링을 무려 2003년부터 사용한 것을 알 수 있습니다. 위 리포트는 아마존이 2003년도에 낸 리포트로 제목을 보면 알 수 있지만 Item-to-Item 기반의 협업 필터링을 사용했다는 것을 알 수 있습니다. 아마존은 협업필터링 중 특히 Item-to-Item에서 많은 효과를 보고 있다고 하는데 매출의 35% 이상을 추천 알고리즘으로 내고 있다고 말을 하기도 했습니다. 아마존은 현재 전자상거래가 가장 큰 매출을 차지하고 있지만, Prime Vide..
여러개의 Row로 되어 있는 데이터를 한개의 값으로 묶어서 가지고 오고 싶을 경우, MySQL(혹은 MariaDB)에서는 Group_Concat을 사용하여 처리할 수 있다. 실행 예시 테이블 생성 CREATE TABLE `stock` ( `stock_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'pk', `exchange` varchar(10) NOT NULL COMMENT '구분', `stock_nm` varchar(50) NOT NULL COMMENT '주식명', `ticker` varchar(10) NOT NULL COMMENT '티커', PRIMARY KEY (`stock_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3; 데이터 삽..
개체명은 단어의 의미를 어느정도 파악하기 위해서 사용하는 방법으로 단어의 꼬리표를 다는 방법이다. 예를 들어, 홍길동이라는 것은 사람이름이고, 삼성전자는 기업이름이라고 한다면, 컴퓨터는 문서의 내용을 어느정도 이해할 수 있게 된다. 게다가 많은 개체명의 경우 복합 명사인 경우가 많은데 의미와 함께 단어를 복합명사로 추출하여, 강력한 분석용 단어를 추출할수도 있게 된다. 형태소 분석은 순수하게 의미가 있는 단어로 최대한 잘게잘게 나누기 때문에 문장의 뜻을 정확하게 알기 위해서는 분명 필요한 기능일 수 있으나, 데이터 분석에서 사용을 하게 되는 경우 너무 작은 단위의 단어는 feature만 늘어나게 되고, 문서간의 유사도 등을 비교하거나 검색에서 문서를 찾을 때에도 비효율적이 된다. 개체명 구현 코드 (Ko..
금칙어는 자연어 처리(NLP)에서 원치 않는 데이터를 제거하기 위한 방법중 가장 효과가 좋은 방법입니다. 형태소 분석으로 생성된 품사라든지, 개체명 사전에서 생성된 개체명이 마음에 들지 않을 경우 금칙어 사전을 만들어서 대응을 하는 것이죠. 품사 사전이나 개체명 사전에서 지우면 되는 것이 아니냐 할 수 있는데 사전이라는 것은 다양한 곳에서 활용이 될 수 있으며, 특정 서비스에서만 제거가 필요한 경우가 있을 수 있기 때문이고, 제대로 추출이 되었지만 필요가 없을 수도 있기 때문입니다. 금칙어 예제 소스 private Set STOP_KWD; public void action() { setStopKwd(); Komoran komoran = new Komoran(DEFAULT_MODEL.FULL); Strin..