본문 바로가기

IT 천국

(127)
[Kubernetes] 쿠버네티스 설치(kubeadm) 및 cluster 구성하기 쿠버네티스를 공부하기 위해서는 제일 처음으로 할일이 여러 노드에 kubernates패키지를 설치하고 master 노드와 worker노드간의 연결을 설정하는 일이다. 집에 있는 Synology 718+의 VMM 으로 VM을 3개 만들어 그들간에 cluster를 구성해보려고 한다. 시작하기 전에 호환 되는 Linux는 Debian 및 Red Hat 기반 Linux 배포판. 머신당 2GB 이상의 RAM. 2 CPU 이상. 클러스터의 모든 시스템 간의 전체 네트워크 연결(공용 또는 사설 네트워크). 모든 노드에 대한 고유한 호스트 이름, MAC 주소 및 product_uuid. kubelet 위해서는 스왑을 사용하지 않도록 설정함. 마스터 노드 (Master Node) 노드들의 상태를 제어하고 관리 쿠버네티스의..
[Docker] Ubuntu에 Docker 설치하기 Docker 설치 전 확인 사항 ssh 연결 설정이 안되어있을 경우 아래와 같이 관련 모듈을 설치한다. apt-get update - (sudo) apt-get update ssh openssh-server 설치 - (sudo) apt-get install openssh-server ssh 클라이언트와 서버를 동시에 설치 - (sudo) apt-get install ssh 방화벽 해제 - (sudo) ufw enable - (sudo) ufw allow 22 - (sudo) ufw reload ssh 서비스 시작 - (sudo) service ssh start 제대로 구동 되었는지 확인 - (sudo) service ssh status - (sudo) ps -ef | grep sshd - (sudo) n..
[Oracle] 파티션 별 순번 매기기 ROW_NUMBER 테이블 쿼리를 한 후 순번을 매기는 경우가 있다. 예를 들어 판매량별로 우선순위를 매기고 이를 순번으로 기록해 두면 추후에 특정 등수 이상 또는 이하의 레코드를 추출할 떄 해당 컬럼을 활용하여 쉽게 추출할 수 있다. ROW_NUMBER 문법 스펙은 다음과 같다. ROW_NUMBER( ) OVER ([ query_partition_clause ] order_by_clause) 예제1) 아래 쿼리는 employees 테이블에서 department_id 별로 salary 액수기준 내림차순으로 정렬한 후 rn(row_number)가 3 이하인 레코드를 추출한다. SELECT department_id, first_name, last_name, salary FROM ( SELECT department_id, fir..
[Oracle] Insert, Update 판단을 한번에... Merge into 구문 살펴보기 서버 개발을 하면 주기적으로 갱신되거나 신규 유입되는 데이터의 경우에 DB에 해당 Key를 가진 레코드를 확인해보고 있으면 Update, 없으면 Insert로 분기시키는 로직을 많이 작성하게 된다. 간단한 개념이지만 은근히 귀찮은 작업이기도 하다. 하지만 오라클 DB에서는 이를 한번에 판단해서 처리해주는 구문이 있다. 바로 Merge into 구문이다. MERGE [ hint ] INTO [ schema. ] { table | view } [ t_alias ] USING { [ schema. ] { table | view } | ( subquery ) } [ t_alias ] ON ( condition ) [ merge_update_clause ] [ merge_insert_clause ] [ error..
[Docker] Docker Hub에 이미지 올리기 Docker hub 에 가입하고 로그인 도커 허브 Url은 다음과 같다. 일반적인 사이트 회원가입처럼 회원가입을 진행하고 로그인을 한다. https://hub.docker.com/ 계정을 생성하고 로그인을 하면 초기화면으로 진입한다. 새로운 Repository를 생성해본다 상단 Repositories 메뉴를 선택하고 Create Repository를 선택한다. 본인 계정 밑에 Repository 이름을 입력하고 Public/Private 유무를 체크한다. 우측에는 tip으로 tag 생성 방법 및 push로 로컬에 저장된 이미지를 허브로 올리는 방법이 명시되어 있다. Test application 도커 빌드 및 허브에 올리기 java8위에 올라가는 간단한 war파일을 이미지로 빌드해본다. docker se..
[Synology] WebDAV 서버로 윈도우 네트워크 드라이브 사용하기 여러 PC로 작업을 하다보면 계속 각 PC에 저장되는 로컬 파일들의 Sync를 갈망하게 된다. 한곳에서 파일 관리를 하고 여러 작업 환경에서도 그곳만 바라 본다면 여러 로컬 저장소에서 복사본이 퍼지는것을 막을 수 있다. 방법으로는 구글드라이브와 같이 클라우드 드라이브를 사용할수도 있으나 본 포스팅에서는 Synology가 제공하는 WebDAV Server를 활용해 윈도우 환경에서 드라이브로 공유 폴더를 접근하는 방법을 살펴보기로 한다. 시작하기 전에 WebDAV가 어떤것인지 잠시 살펴본다. WebDAV(Web Distributed Authoring and Versioning, 웹 분산 저작 및 버전 관리)는 하이퍼텍스트 전송 프로토콜(HTTP)의 확장으로, 월드 와이드 웹 서버에 저장된 문서와 파일을 편집..
[Mybatis] 한번에 여러 쿼리 작성하기 (Oracle PL/SQL BEGIN - END 구문) 서버 개발시 비지니스 로직을 개발시에 DB 구문을 여러개 동시에 쓰면 좋겠다는 생각이 들때가 있다. 이런 경우 PL/SQL 문법 중 BEGIN - END 로 여러 실행 구문을 정의해 주면 한 트랜잭션에서 여러개의 구문을 수행하게 할 수 있다. 여기서 잠시 PL/SQL에 대해서 알아보기로 한다. PL/SQL이란 주로 자료 내부에서 SQL 명령문만으로 처리하기에는 복잡한 자료의 저장이나 프로시저와 트리거 등을 작성하는 데 쓰인다. PL/SQL의 구조는 에이다 프로그래밍 언어를 본떠 만들어졌다고 알려졌다. 따라서 두 언어는 그 구조가 범용 언어인 파스칼의 구문과 비슷하다. 범용 언어인 C와 C++ 그리고 파스칼 및 포트란 등의 프로그래밍 언어와는 다른 점으로 범용 언어들이 컴퓨터 시스템에서 특정한 작업을 처리..
[Oracle] Sqldeveloper로 ERD 출력하기 오라클로 개발을 진행할떄 여러가지 Tool들이 사용되지만 오라클에서 무료로 제공는 Sqldeveloper로도 여러가지 기능이 제공되어 꽤 쓸만하다. DB 개발을 하다보면 테이블 갯수가 많아지고 구조가 복잡해지면 직접 테이블 간의 관계를 파악하기가 쉽지 않다. 이럴때 Sqldeveloper의 ERD출력 기능을 활용하면 분석에 많은 도움이 될 수 있다. 우선 상단 메뉴에서 파일 -> Data Modeler -> 임포트 -> 데이터 딕셔너리 를 선택 임포트 하려는 스키마/데이터베이스를 선택한다. 임포트할 객체(테이블)들을 선택한다. 최종 선택 내용 확인 후 완료를 선택한다. 선택한 객체들의 기본적인 내용과 객체간 참조 현황을 분석하여 표현하여 준다. 화면의 출력 내용을 Customizing하고자 한다면 원하는..