기술 창고(246)
-
[Android] SharedPreference 를 이용한 앱 접속 유지
앱을 만들어 배포하게 될 때, 해당 앱을 껏다가 켜도 기존의 접속된 상태를 유지시키면서 자동적으로 진행 중이였던 작업 상황이나 데이터를 불러오기 위한 방법 중 SharedPreference 가 있습니다. SharedPreference 는 말 그대로 앱을 사용하고자 하는 기기의 공유 환경설정을 관리할 수 있습니다. 웹 환경에서는 쿠키나 세션으로 관리해줄 수 있지만 앱에서는 이 SharedPreference로 관리해줄 수 있는 것입니다. 다만 세션이랑 쿠키랑 마찬가지로 엄청 많거나 큰 크기의 데이터를 저장하고 관리해줄 수는 없습니다. 물론, 단순히 접속 유지만을 위해 사용할 것이기 때문에 SharedPreference 를 사용해서 굳이 과도한 데이터를 저장할 가능성은 없다고 봅니다. SharedPrefere..
2024.03.29 -
[Java] 주키퍼 서버 / 클라이언트 (다운로드 및 설정)
주키퍼는 분산 시스템 설계하는 데에 있어 유요한 도움을 주는 서버 및 도구입니다. 오늘은 이 주키퍼 서버 및 클라이언트를 다운로드 하고 설정하는 방법에 대해서 정리해보겠습니다. 분산 시스템을 어떻게 개발할 것인가? 지금 현재 컴퓨터가 여러 대 있지도 않고 클라우드 기기를 여러 대 사놓고 원격으로 개발하는 일은 매우 불편하고 비용도 많이 듭니다. 하지만 일반적으로 분산 시스템 개발은 정해진 방식으로 진행되는데, 이 방식이 보통 여러분 기기에서 로컬로 진행할 수 있습니다. 따라서 개발환경(IDE)에 맞춰 로컬에서 코드를 작성하고, 디버깅하고, 테스트할 수 있습니다. 일반적으로 로컬에서 개발을 마친 다음에 개발한 프로그램을 검증하기 위해 클러스터 같은 플랫폼에 배포하고 품질 검증을 거칩니다. 그러고 나서 실제..
2024.03.20 -
[Java] 클러스터 코디네이션(주키퍼)과 리더 선출 알고리즘
분산 시스템의 알고리즘과 설계를 진행하기 이전에, 분산 시스템에서 가장 기본적이고 공통적인 두 가지 용어부터 알아보겠습니다. (1) 노드 (node) 노드는 분산 시스템의 일부로 동작하는 시스템에서 실행되는 각 프로세스입니다. 분산 시스템에서는 두 노드 사이에 선분이 존재하면 두 프로세스가 네트워크를 통해 서로 통신할 수 있다는 뜻입니다. (2) 클러스터 (cluster) 클러스터는 서로 연결된 노드의 모음입니다. 한 클러스터의 노드들은 동일한 작업을 수행하며 일반적으로 동일한 코드로 실행됩니다. 보통 우리는 분석해야하거나 복잡한 계산이 필요한 데이터의 양이 매우 많을 경우, 이 작업을 수행하기 위해 노드가 모여 있는 특정 클러스터로 넘기길 원합니다. 여기서 문제는, 어느 노드에서 어떤 작업을 수행할 것..
2024.03.19 -
[Java] Java를 활용한 분산 시스템
분산 시스템은 어디에서나 존재하는 시스템입니다. 영화를 보거나 온라인 쇼핑, 휴대폰으로 차량 공유 서비스들을 이용할 때 인터넷에서 무언가를 검색할 때마다 사실 우리는 앱이나 웹 페이지를 통해 그 뒤에 있는 분산 시스템과 통신합니다. 이런 서비스를 제공하는 모든 기업은 전 세계에 걸쳐 고도로 확장이 가능한 대규모 분산 시스템을 운영하여 매일 수백만명의 사용자와 데이터를 처리하고, 일정하고 원활한 사용자 경험을 제공합니다. 또한, 클라우드에서 호스팅 되는 아주 간단한 웹사이트 조차도 분산 시스템에서 동작합니다. 클라우드는 특별히 기업을 위해 구축된 복잡한 분산 시스템인 만큼 소프트웨어 개발자들이 맡기 때문에 사용자들은 제품에 집중하고 나머지 부분은 클라우드 공급 업체가 처리하도록 할 수 있습니다. 중앙 집중..
2024.03.19 -
CentOS 에 MySQL 8.0 설치
CentOS 운영체제에서 MySQL DB를 사용하기 위해 설치하는 과정에 대해서 정리해보겠습니다. (1) yum install https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm yum install 명령어를 통해 MySQL 8.0 커뮤니티 버전의 저장소 설치 파일 주소를 넣어 y를 눌러 진행해줍니다. complete! 구문이 나오면 정상적으로 설치하고자 하는 MySQL 버전의 설치 저장소가 설치된 것입니다. (2) yum install mysql-server 이제 본격적으로 mysql-server를 설치해줍니다. 에러 발생 시! 더보기 이 때! 이와 같은 에러 메세지가 발생하면, gpgcheck 옵션을 확인하고 수정해주어야 합니다...
2024.02.20 -
CentOS 에 JDK 17 버전 설치
CentOS 운영 체제에서 자바 및 Spring 프로젝트를 배포하여 사용하기 위해 JDK 를 설치하는 방법에 대해서 정리해보겠습니다. # CentOS는 더 이상 페키지 업데이트를 지원하지 않아 Yum으로 설치 가능한 OpenJDK는 11버전이 최대라고 합니다. (1) sudo yum -y install wget curl yum 을 통해 wget curl 패키지를 설치합니다. (2) cd /tmp ### Linux 64-bit ### wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz tmp 경로로 들어가 wget 패키지로 설치할 Open..
2024.02.20