최신 글
-
AWS
AWS를 활용한 실시간 데이터 분석 파이프라인에 대한 이론적인 공부: Kinesis Data Streams, IoT Fleetwise 서비스 활용
본 포스팅은 다양한 레퍼런스 기준으로 작성되었습니다. 우리는 저지연 데이터 스트리밍 애플리케이션에 의해 주도되는 실시간 데이터와 통찰력의 시대에 살고 있습니다. 오늘날 모든 사람은 모든 애플리케이션에서 개인화된 경험을 기대하며, 조직은 비즈니스 운영 및 의사 결정 속도를 높이기 위해 끊임없이 혁신하고 있습니다. 생성되는 시간에 민감한 데이터의 양이 빠르게 증가하고 있으며, 새로운 비즈니스와 고객 사용 사례에 다양한 형식의 데이터가 도입되고 있습니다. 따라서 조직이 실시간 비즈니스 애플리케이션과 더 나은 고객 경험을 제공하기 위해 저지연, 확장 가능하고 안정적인 데이터 스트리밍 인프라를 도입하는 것이 중요합니다. [1] Amazon Kinesis Data Streams는 클라우드 네이티브, 서버리스 스트리..
-
Product Manager
서비스 평가 지표
서비스를 평가하는 데에 지표 수립은 과거부터 지속되어 왔습니다. 그리고 이러한 데이터 기반 의사결정은 서비스 기획에 있어서 매우 중요하고, 더욱 중요해지고 있습니다. 데이터를 기반으로 의사결정을 내리면 객관적인 판단이 가능합니다. 주관적인 견해나 감각에 의존하는 것보다 객관적으로 문제를 판단할 수 있습니다. 이는 오류나 편향을 줄이고 더 신속하고 효과적인 의사결정을 할 수 있도록 도와줍니다. 또한 데이터를 통해 사용자의 이해를 할 수 있는데, 이를테면 사용자의 행동이나 선호도를 분석할 수 있습니다. 이는 사용자의 니즈를 이해하고 서비스를 그에 맞게 개선할 수 있도록 도와줍니다. 데이터를 기반으로 사용자의 요구사항을 파악하여 서비스를 개선하면 사용자 만족도를 높일 수 있습니다. 데이터를 사용하여 시장분석..
-
Deep Learning
Keras / Sequential Model vs Functional Model
Keras 모델을 만드는 방법은 Sequential과 Functional로 두가지 방법이 있다. Sequential Model은 레이어를 층층이 쌓아가는 방법으로 일반적으로 딥러닝 네트워크 구조를 생각할 때 Sequential Model의 구조를 떠올린다. Layer-by-layer 쌓아올리는 방법으로, layer를 공유하는 구조나 다중 입력/출력을 사용하지 못한다는 한계가 있다. Functional Model은 Layer가 앞/뒤 layer에만 연결된 구조뿐 아니라 훨씬 더 자유자재로 그 구조를 정의하여 사용할 수 있게 된다. Layer를 어떤 layer에든지 연결해서 사용할 수 있는 것이다. 그래서 siamese 네트워크와 residual 네트워크 같은 복잡한 구조의 네트워크를 만들수 있게 된다. S..
-
RDBMS
SQL FullText Search / 웹 어플리케이션 로딩 성능이 낮다면, 쿼리 조회 성능을 확인!
이 포스팅에서는 MySQL의 FullText Search에 대해 주로 다뤄보고자 한다. 웹 어플리케이션을 설계할 때, 고려할 점은 참 많다. 그 중에서도 이번에는 Restful API에서 RDBMS 를 사용할 때 쿼리 조회 성능을 올리는 방법에 대해 소개하려고 한다. 검색에 대해 패턴 일치 검색 기능(LIKE 기능)을 사용한 조회 쿼리의 경우 조회 성능이 가장 낮다고 할 수 있다. 하지만 놀랍게도 많은 초심자들은 이 쿼리에는 문제가 없다고 생각한다(그리고 다른 곳에서 문제를 찾으려고 한다). 패턴 일치 검색 기능은 %를 사용함으로써 컬럼에 인덱스가 지정되어 있어도 인덱스를 사용하지 못할 수도 있다. RDBMS는 정형화된 데이터를 저장하기에 매우 편리한 데이터베이스지만, 설계와 사용에서의 아주 세심한 주..
-
Data Engineering
FutureWarning: 데이터프레임 행 subset 얻기
Python pandas.DataFrame 각 row의 Subset을 얻기 위해서(doc_data) 아래와 같이 코드를 작성했다.for i, row in my_df.iterrows(): doc_names = {"key_example1", "key_example2", "key_example3"} doc_data = {key:row[key] for key in row.keys() & doc_names} doc_dict = {"doc": doc_data} 그랬더니 아래와 같은 경고 문구가 떴다.FutureWarning: Index.__and__ operating as a set operation is deprecated, in the future this will be a logical ope..
-
Data Engineering
파이썬은 모든 것이 객체다, is와 이항 연산자...
파이썬은 모든 것이 객체다.이 중에서 크게 불변 객체(immutable object)와 가변 객체(mutable object)로 구분할 수 있따.클래스설명불변 객체bool부울Oint정수Ofloat실수Olist리스트Xtuple리스트와 튜플의 차이는 불변 여부이며 이외에는 거의 동일하다. 튜플은 불변이므로 생성할 때 설정한 값은 변경할 수 없다.Ostr문자Oset중복된 값을 갖지 않는 집합 자료형Xdict딕셔너리X 불변 객체무엇보다 파이썬은 모든 것이 객체다. 파이썬에서 변수를 할당하는 작업은 해당 객체에 대해 참조를 한다는 의미다.여기에는 예외가 없으며 심지어 문자와 숫자도 모두 객체다.10a = 10b = aid(10), id(a), id(b)# (4393858752, 4393858752, 4393858..
-
Data Engineering
uuid 식별자로 사용가능한가?
uuid(universal unique identifier):실제 용도에서 안전하게 고유하다고 생각할 수 잇는 특정 형태의 식별자 정확하게 생성된 두 uuid는 서로 다른 당사자에 의해 두 개의 서로 다른 환경에서 작성된 경우에도 정확히 동일할 가능성이 거의 없다. 실제 uuid는 표준화된 형식에 의해 생성되고 표현되는 고유 식별자이다. 유효한 uuid는 RFC 4122에 의해 정의된다. 이 사양은 중앙 발급 기관 없이도 여러 구현 간에 고유성을 유지하는 데 사용할 수 있는 알고리즘을 설명한다. RFC에는 다음과 같은 다섯가지 다른 알고리즘이 포함되어 있고, 각 알고리즘은 값을 생성하기 위해 서로 다른 메커니즘을 사용한다. uuid 버전요약설명버전1시간 기준타임 스탬프, 클럭 시퀀스 및 생성 장치별 값..