Programming
-
Druid + superset로 BI 아키텍쳐 구축하기Programming 2021. 3. 28. 22:57
드루이드란? Druid는 대량의 트랜잭션 이벤트를 ingestion하고 탐색할 수 있도록 지원하는 엔진이다. 실시간과 시계열 데이터에서 100ms 이하의 쿼리 응답속도를 위해 설계된 오픈 소스 데이터 저장소 실시간/배치 데이터로 데이터를 수집해서 빠르게 BI쿼리(OLAP)를 처리, 분석하는 목적으로 사용 데이터 roll-up을 통해서 ingestion되는 원천 데이터를 취합할 수 있다. roll-up을 하면 원천 데이터의 저장 용량을 최소화 할 수 있고 스토리지 리소스를 절약하고 쿼리 속도를 빠르게 하지만 개별 이벤트들에 대해 쿼리할 수 없게 된다. OLAP(On-Line Analytical Processing)? OLAP, 온라인 분석 처리는 다차원 데이터 구조를 이용하여 다차원의 복잡한 질의를 고속으..
-
[에러로그]파이어폭스에서 리액트 SVG 리사이징하기Programming/.JS 2021. 2. 6. 15:45
파이어폭스에서만 적용이 되지 않는 svg 아이콘 사이즈 개인적으로 파이어폭스를 애용하는 중인데, 유독 다른 브라우저에서는 모두 아이콘이 정상적으로(크롬, 사파리, 엣지)작동하는 것에 비해 파이어폭스에서는 적용되지 않는 것이 보였다. 블링크나 웹킷 엔진 기반에서는 사이즈가 제대로 반영이 되지만 게코 엔진(발음이 이상하지만 gecko engine이다)과 다른 것이 무엇일까 생각하면서 한참을 github 이슈나 구글링을 통해서 찾아본 결과 크게 다른 이슈될만한 버그리포트나 티켓들을 찾아볼 수 없었다. 그래서 직접 개발자도구로 해당하는 Attribute를 타겟팅해서 태그를 직접 비교해봤다. 놀랍게도 아주 미묘한 차이를 발견할 수 있었는데 다른 브라우저에서는 스타일 태그의 width와 height에 자동으로 px..
-
[python]str을 dict로 바꾸는 두 가지 방법Programming/python 2021. 1. 24. 18:23
dict는 string으로 변경할 수 있는 데, string은 dict로 변경할 수 없다 dict1 = {"a":"b", "c":"d"} str1 = str(dict1) print(str1) # 실행 결과 {"a":"b", "c":"d"} 딕셔너리 타입을 str로 형 변환을 하면 원하는 것처럼 알맞게 잘 출력한다. 하지만 이 str을 다시 딕셔너리 타입을 변경하려고 하면 에러가 발생한다. dict1 = '{"a":1, "b":2}' print(dict(dict1)) # 실행 결과 dictionary update sequence element #0 has length 1; 2 is required str을 dict로 바꾸는 방법 1. string으로 형 변환된 것을 eval을 사용해서 코드화 한다. str..
-
argument v.s parameter, function v.s. methodProgramming 2020. 12. 13. 16:28
귀에 걸면 귀걸이 코에 걸면 코걸이지만 어디가 코인지, 어디가 귀인지 어디가 코인지는 확실히 알자는 마음에서 정리. 둘은 비슷한 단어로 자주 혼동해서 사용하지만 사실 그 쓰임새가 다르다. argument와 parameter의 차이 parameter는 매게변수로 번역하고 argument는 인자로 번역된다. public void MyMethod(string myParam) { } 메소드를 정의할 때 myParam을 parameter라고 부른다. string myArg1 = "this is my argument"; myClass.MyMethod(myArg1); 메소드를 호출할 때 메소드의 파라미터로 보내지는 데이터를 argument라고 부른다. 메소드를 정의할 때는 parameter, 메소드를 호출할 때는 a..
-
Vue.js로 To Do List 애플리케이션 만들기(하)Programming/.JS 2020. 6. 14. 23:00
2020/06/13 - [Programming/.JS] - Vue.js로 To Do List 애플리케이션 만들기(상) TodoList.vue TodoList는 추가한 값들이 로컬스토리지에 저장되고 그 저장된 것을 가져와서 차례대로 뿌려줄 컴포넌트이다. 세션이나 DB에 저장한 뒤에 처리할 수도 있지만 간단하게 로컬스토리지를 통해서 이를 구현하도록 하자. {{ todoItem }} 새로운 디렉티브가 등장했다. v-for는 지정된 갯수만큼 반복해서 HTML을 표시하는 반복문 디렉티브이다. 여기서 반복시킬 propsdata는 상위 컴포넌트로부터 전달받은 데이터를 이용할 것이다. 상위 컴포넌트인 App.vue에서 보내주지 않은 지금 상태에서는 propsdata가 로컬스토리지에서 가져온 데이터임을 가정하고 작성한다..
-
Vue.js로 To Do List 애플리케이션 만들기(상)Programming/.JS 2020. 6. 13. 23:02
할일 관리 앱은 프론드앤드 프레임워크를 배울 때 가장 대중적으로 도전하는 활용 예제이다. 제일 무난하게 시작할 수 있는 낮은 입문턱이지만 데이터 조작(CRUD)이 어떻게 사용되는지, 컴포넌트의 구조와 컴포넌트간의 통신이 어떻게 이루어지는지도 알수있는, 간단해보이지만 이 안에 많은 것들이 함축되어있고 또한 이것을 알게된다면 여기서 응용하여서 다른 더 고도화된 앱들을 구성할 수 있다. TO DO APP 구상하기 위 사진은 우리가 만들어볼 할일 관리 앱의 완성본이다. 반응형으로 구성되어 웹 뿐만 아니라 모바일에서 봐도 문제가 없도록 UI를 구성하였다. 할 일을 input에 적어서 +버튼을 누르면 목록에 추가되고 휴지통 아이콘을 눌러서 낱개로 지우거나 Clear All버튼을 눌러서 한번에 다 지우는 것도 가능하..
-
파이썬 제너레이터(Generator)Programming/python 2020. 6. 6. 22:26
제너레이터를 설명하기 앞서 이터레이터에 대한 이해가 살짝 필요하다. 제너레이터랑 이 이터레이터에 yield 구문을 추가해 호출될 때마다 이터레이터와는 다르게 모든 값을 포함한 배열을 리턴해주는게 아니라 하나의 값만을 리턴하기 때문이다. 이터레이터란? 이터레이터(iterator)는 값을 차례대로 꺼낼 수 있는 객체(object)이다 파이썬에서는 이터레이터만 생성하고 값이 필요한 시점이 되었을 때 값을 만드는 방식을 사용함 데이터 생성을 뒤로 미루는 것인데 이런 방식을 지연 평가(lazy evaluation)라고 함 이터레이터는 반복자라고 부르기도 함 반복 가능한 객체(iterable)와 이터레이터(iterator)는 별개의 객체이므로 둘은 구분해야 한다. 이터레이터와 제너레이터의 차이점 이터레이터는 __n..
-
면접에서 많이 물어보는 질문 시리즈Programming 2020. 3. 15. 21:13
#면접질문, #신입이 알아야할 개념들 2020/03/15 - [Programming] - REST의 정의와 RESTful API란 무엇인가? 2020/03/08 - [Programming] - 동기와 비동기방식의 차이점(콜백함수와 프로미스) 2020/03/01 - [Programming/java] - 가비지 컬렉션, 컬렉터(Garbage Collection)란? 2020/02/24 - [Programming] - 세션과 쿠키, 그리고 캐시의 차이점은? 2020/02/02 - [Programming] - 애자일 방법론과 TDD 그리고 BDD 2020/01/28 - [Programming] - [SQL] DCL, DML, DDL 약어 설명과 명령어 2019/11/03 - [Programming/Algorit..