전체 글

공부용 블로그입니다. :)
1) MiniO API를 이용한 CRUD 실습 (Java) (1) Connection (연결) MinioClient minioClient = MinioClient.builder().endpoint(endPoint) .credentials(accessKey, "secretKey) .build(); endPoint는 miniO 서버의 IP와 포트 주소를 기입하고 accessKey, secretKey는 대시보드에서 발급받자! (2) Check Bucket Exist (버킷 체크) boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("test").build()); if (found) { System.out.println("존재")..
1) MiniO 설치 (배포) (1) 지원 환경 MiniO는 Windows, Mac, Linux, FreeBSE, Docker 환경에서 사용이 가능하다. Linux 지원 사양에 따른 URL 링크 64-bit Intel/AMD https://dl.min.io/server/minio/release/linux-amd64/minio 64-bit ARM https://dl.min.io/server/minio/release/linux-arm64/minio 64-bit PowerPC LE (ppc64le) https://dl.min.io/server/minio/release/linux-ppc64le/minio IBM Z-Series (S390X) https://dl.min.io/server/minio/release/..
1) Minio (Minimal Object Storage) (1) Minio란 MiniO는 오픈 소스로 제공되는 분산 스토리지 솔루션이다. 파일 스토리지, 블록 스토리지를 지원하지 않고 오로지 오브젝트 스토리지 형태로 제공되며 Amazon S3 클라우드 스토리지 서비스와 완벽하게 호환되기 때문에 Amazon S3의 SDK를 사용할 수 있다. 오브젝트 스토리지를 사용하고 있기 때문에 파일에 대한 직접적인 수정은 불가능하며, 항상 덮어쓰는 (Overwrite) 방식이 사용된다. (2) MiniO 주요 특징 ① AWS S3 API 호환 MiniO는 AWS S3의 API를 완벽하게 똑같이 구현하여 100% 호환되기 때문에 MiniO를 스토리지로 사용하다 S3 스토리지로 마이그레이션 하더라도 애플리케이션 코드를..
1) Git Flow란 Git Flow는 Git으로 형상 관리를 할 때, 브랜치를 효율적으로 관리하기 위해 사용하는 브랜치 관리 전략이다. (Branch Management Strategy) 2) Git Flow를 사용하는 이유 프로젝트 규모가 작거나 혼자서 개발을 하는 경우에는 굳이 브랜치를 만들 필요 없이 Main 브랜치에서 작업해도 상관이 없다. 다만 프로젝트 규모가 커지거나 팀 단위로 개발이 이루어지는 상황에서 별도의 브랜치 관리 전략 없이 개발을 진행하게 되면 무분별하게 브랜치를 생성하게 되어 잦은 충돌로 인해 생산성이 떨어지게 되고 협업이 원활하지 않게 된다. 즉, Git Flow를 사용하는 이유는 Git을 효과적으로 활용하여 프로젝트 관리와 협업을 개선하고 팀의 생산성을 높이며 소프트 웨어 ..
1) 탄생 배경 초기 클라우드 컴퓨팅의 대두 배경중의 하나로서 데이터센터(IDC)의 자원 낭비가 있었는데 전력 소모 비용에 따른 서버 내에서 사용되는 용량은 그리 크지 않아 불필요한 전력이 낭비되고 있었다. 이러한 불필요한 전력을 효율적으로 사용하기 위해 초기 클라우드 컴퓨팅인 그리드 컴퓨팅이 대두되었다. (유비쿼터스 [어디서든 접속가능] + 그리드 컴퓨팅 [잉여자원를 묶어 풀로 활용] + 과금 정책 [전기세 모델 → 고정비용이 아닌 사용한만큼 지불] 또한, 그리드 컴퓨팅의 경우 가상화된 자원이 아닌 실제 물리 자원을 직접적으로 제공하였기에 클라우드가 무조건 가상화라고 할 수 없지만 가상화 기술을 도입한다면 클라우드를 훨씬 유용하게 사용할 수 있기에 이를 도입할 수 밖에 없었다. 2) 발전 단계 3) 클..
1) UFW (Ubuntu 방화벽) 활성화로 인해 SSH 접속 차단 시, 해결 방법 (1) 개요 AWS에서 제공되는 Ubuntu 이미지로 EC2를 생성하게 되면 기본적으로 UFW (firewall)은 비활성화 되어 있다. 방화벽 설정을 위해 UFW 데몬을 활성화 시키고 SSH 포트 (22번)를 설정하지 않고 터미널을 종료하게 되면 AWS 보안 그룹에서 SSH 포트를 Allow 하더라도 EC2 자체 방화벽인 UFW에서 패킷을 DROP 하기 때문에 접속을 할 수가 없다. 따라서, 이러한 상황이 발생한 경우에 크게 3가지 방법으로 해결할 수 있다. (2) 해결 방법 ① 인스턴스 삭제 + 볼륨 분리 EC2 인스턴스를 삭제하되, 부트 볼륨만은 남긴 다음 새로 EC2 인스턴스를 만들 때 해당 볼륨을 마운트하여 생성..
1) 문제 설명 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다. 예를 들어, ..
1) DockerFile로 스프링 부트 이미지를 생성하기 (1) 개요 이전 게시글에서는 컨테이너가 아닌 가상 머신에서 스프링 부트 서버를 배포하였다! 요즘에는 대부분 무중단 배포 서비스를 실현하기 위해 컨테이너 환경에서 서비스를 제공하므로 도커를 이용하여 스프링 부트 서버를 배포하고자 한다! 도커를 설치하는 부분은 Redhat, Devian 계열마다 각각 다르므로 생략하였고 구글링을 통해 해결하자! (2) 기본 환경 Red Hat Enterprise Linux release 8.7 (Ootpa) aarch64 System (3) DockerFile 작성 및 빌드 cat