본문 바로가기
반응형

분류 전체보기53

Android/Kotlin - 내부저장 Shared Preferences vs Data Store vs Room 작성이유 디바이스에 영구저장 되어야 하는 데이터를 관리하기 위한 방법을 찾은 과정을 기록 왜 Shared Preferences를 사용 안 하고? : 현재 안드로이드에서 Data store의 사용을 적극 권장 (개발자 문서에서도 SharedPreferences 사용 가이드를 뺌) 실제 xml 파일 I/O 작업을 하는 것으로 UI Thread에서 작업할 경우 안전하지 않다. Runtime Exception으로부터 안전하지 않다. 비동기 API를 제공하지만 리스너를 통해서만 값을 읽을 수 있다. Type-Safety를 제공하지 않는다. 값 변경 시 리스너를 통해서만 비동기식 액세스를 제공 데이터 타입을 변경하면서 생기는 런타임에러, ANR Data Store? SharedPreferences를 대체하기 위해 .. 2022. 8. 9.
Protocol Buffer - 프로토콜 버퍼 프로토콜 버퍼란? 구글에서 개발하고 오픈소스로 공개한 직렬화 데이터 구조(Serialized Data Structure) 직렬화란? 데이터를 파일로 저장하거나 네트워크로 전송하기 위하여 바이너리 스트림 형태로 저장하는 행위 바이너리? 두 조각을 의미 / 이진법 / 이진 파일 / 텍스트 형태가 아닌 이진형태로 인코딩된 파일 / Binary Digits → bits 스트림형태? 흐름 → 열거되어 있다 → 배열이나 리스트같은 구조라고 이해함 구조적데이터(XML과 같은)를 직렬화하기 위한 메커니즘 구글에서 검색 색인 작업에 사용하려고 만들었다고 한다. C++,C#, Go, Java, Python, Object C, Javascript, Ruby 등 다양한 언어를 지원 하나의 파일에 최대 64M까지 지원할 수 있.. 2022. 8. 9.
웹서버, WAS 선정기준 일단 어떤 서버든, 아키텍처든, 기술이든 선택할 때에는 기획, 서비스에 맞춰 선정하는 것은 기본중에 기본이다. 웹서비스를 운영하기 위해서 고려해야할 사항은 정말 많다. 생각나는 것만 추려보자면 1. 어떤 웹서버를 사용할 것인가 2. 동적 웹서비스를 위해 서버사이드 스크립트 언어는 어떤 것을 사용할 것인가 3. 프레임워크를 사용할 것인가 모든 결정은 기획, 서비스에 맞춰서 결정해야하고 가장 기초가 되는 웹서버의 기본적인 역할이나 정의에 대해 알아보았다. 웹서버는 하드웨어적인 측면과 소프트웨어적인 측면으로 정의할 수 있다. 하드웨어 측면 - 웹사이트의 컴포넌트 파일(image, html 문서, css, js 등)을 저장하는 컴퓨터 소프트웨어 측면 - 이 컴포넌트 파일들을 요청하는 클라이언트에게 전달하는 프로.. 2022. 8. 9.
Docker - EFK 환경구축 과정 Docker log를 fluentd로 수집한 후 ElasticSearch에 적재해 Kibana를 활용하기 위한 환경구축 과정 사용 서버 OS: Ubuntu 20.04 1. EFK를 운용할 새로운 서버 - 서버 1대에 ELK를 전부 설치해 관리할 계획 2. Dokcer로 운영되고 있는 API서버 서버 아키텍처 EFK(Elasticsearch, Fluentd, Kibana) 부분 서버 1번 Docker Containers 부분 서버 2번 먼저 로그를 쌓을 Docker container는 이미 활용되고 있다고 가정하고 EFK 를 설치할 서버에 Docker를 설치한다. - EFK를 운용할 새로운 서버 $ sudo apt-get update $ sudo apt-get install \ ca-certificates.. 2022. 8. 4.
시스템 로그 수집 툴 - Fluented vs LogStash 로그를 수집하기위해 로그 수집을 편하게 할 수 있게 해주는 툴들을 알아보고 선정했다. 여러가지 툴들이 있었지만 json parser를 지원하지 않거나, 수집한 로그를 시각화하는데 범용화된 툴들과 호환이 안되는 것들을 배제하다 보니 Fluentd랑 Elastic의 LogStash, Beats가 남았다. 글의 제목에서 보일 수 있듯이 결국엔 Fluentd와 Logstash만 비교 툴로 남게 되었는데 Beats는 Logstash가 로그를 쌓는데 너무 많은 리소스를 사용한다고 피드백이 많이 들어와서 elastic에서 만든 경량 로그수집 툴이다. Beats가 제공하는 로그 수집 제품은 다음과 같다. 밑의 사진에서 보이듯이 쌓이는 로그들을 elastic search로 바로 적재할 수 있지만 그렇게 되면 원시적인 형.. 2022. 8. 3.
[git] git pull 에러 발생시 ( error: Your local changes to the following files would be overwritten by merge ) 나의 경우에는 개발 브랜치에서 작업을 해야 하는데 마스터 브랜치에 작업을 해서 pull error가 났었다. 위와 같은 경우 stash를 사용하여 해결할 수 있다. stash는 현재 작업하고 있는 내용을 백업, 저장을 하고 git을 깨끗한 상태로 변경해준다. 해결법 1. 문제가 생긴 master branch가 있는 폴더로 이동 후 git stash 명령어를 입력하면 다시 pull을 할 수 있다. 혹시나 그 전에 master에서 했던 작업들을 찾고싶다면 git stash list 로 stash 목록을 확인하고 git stash pop 으로 가장 최근 stash 목록을 다시 가져오면서 해당 stash를 삭제한다. stash를 삭제하지 않으면서 stash목록을 다시 코드로 가져오고 싶다면 git stash a.. 2022. 7. 20.
반응형