전체 글 38

GMS UnitTest Tutorial(3)

2021-03-11 새로운 모듈 추가시 방법. unit-test code를 작성하다 필요에 의해 String::Random 모듈을 추가하게 되었다. 나의 local에서는 cpanm String::Random으로 간편히 추가하고 test를 진행할 수 있었으나, remote repository로 push 후 Gitlab의 CI/CD를 확인 해 보니 failure가 나왔다. 이유는 당연하게도 내 local에는 module이 설치되었으나, test하는 server에서는 해당 모듈이 설치되지 않았으므로 경로를 찾을 수 없다는 message가 출력된다. dependency를 관리하는 file을 수정해야 한다. 해결 방법. GMS/.Jenkinsfile에 해당 모듈 작성. (cpan이 아닌 perl로 설치해야 하기 ..

Design Pattern 2022.06.02

Kubernetes 실습(1) - Ubuntu

2021-03-11 Docker & Kubernetes 배경지식 및 학습 환경 setting (Ubuntu) Summary 3.11 을 기점으로 4월 중순까지 주1회 Kubernetes 실습을 진행한다. 이번 주차에는 간단히 Cgroup과 Docker에 대해 알아보고 Kubernetes 실습을 위한 환경을 구성해 본다. Cgroup(Control Group) process들의 자원 사용을 제한하고 격리시키는 Linux kernel의 기능이다. Docker & Container Docker & Container는 이 위에서 동작하는 단일 Linux Kernel을 사용하는 제어 Host가, 다수의 분리된 Linux system 을 동작시키기 위한 가상화 기법이다. Docker는 Linux 응용 program..

Kubernetes 2022.06.02

Kubernetes 실습(1)

2021-03-11 Docker & Kubernetes 배경지식 학습 및 환경 setting Summary 3.11 을 기점으로 4월 중순까지 주1회 Kubernetes 실습을 진행한다. 이번 주차에는 간단히 Cgroup과 Docker에 대해 알아보고 Kubernetes 실습을 위한 환경을 구성해 본다. Cgroup(Control Group) process들의 자원 사용을 제한하고 격리시키는 Linux kernel의 기능이다. Docker & Container Docker & Container는 이 위에서 동작하는 단일 Linux Kernel을 사용하는 제어 Host가, 다수의 분리된 Linux system 을 동작시키기 위한 가상화 기법이다. Docker는 Linux 응용 program들을 contai..

Kubernetes 2022.06.02

Git Tips

2021-03-04 Git을 사용하면서 알게되는 명령어 정리 add 취소 git reset HEAD [file] file 을 add 에서 취소. (뒤에 파일명 없으면 전체 add를 취소한다.) commit 취소 git reset HEAD^ commit 취소하고 해당 파일들 unstaged 상태로 working directory에 보존. git reset --hard HEAD^ commit 취소하고 해당 파일들 unstaged 상태로 working directory에서 삭제. commit 실수했을 때(commit message 변경) git commit --amend 바로 전 commit 수정.(vi 창 뜸) 이후 git push -f [remote] [branch] remote branch에 강제로 pu..

Git 2022.06.02

GMS UnitTest Tutorial(2)

2021-03-03 Write UnitTest code Summary 지난시간에 REST_API 명세를 살펴봄에 이어서 이번에는 직접 실질적인 Unit Test code를 작성해보는 시간을 가졌다. GMS 먼저 시작 전에 MOCK_ETCD=1 prove -lvm -Ilibgms -I../GSM/lib 으로 test code 한번 돌려보고 시작하자. All tests successful 로 잘 돌아간다는 멘트가 나왔다면, 시작할 수 있다. 오늘은 GMS 하위의 .gitlab-ci.yml 파일을 들여다 보는 것으로 시작한다. image: "centos:7" #어떤 docker 이미지를 사용할건지. (unit test 는 도커를 사용하기때문) variables: # 환경변수 GIRASOLE_ROOT: "/tm..

Design Pattern 2022.06.02

GMS UnitTest Tutorial(1)

2021-02-04 Writting OpenAPI Summary 회사의 Gitlab에서 GMS project를 fork 떠 와서 나의 개인 repository에 옮긴 다음, API 명세를 openAPI 형태에 맞춰 작성하고, 구현한 API에 대하여 test하는 UnitTest code 작성, Controller를 작성하는 작업을 해 볼 것이다. GMS 먼저 GMS project에서 요구하는 library(perl module) 들은 Mojolicious를 포함하여 수없이 많다. Mojolicious를 설치하였고, GMS가 돌아가기 위한 적합한 환경임을 가정한다. (ver8.32) 이 외에도 test를 돌리며 마주하는 수많은 dependencies setting과 module들은 사실상 GMS/build/..

Design Pattern 2022.06.02

LinuxBible 3rd week Summary

LinuxBible Summary(CH12~CH15) CH12(Managing Disks and Filesystems) LVM(Logical Volume Management) LVM은 크게 PV(Physical Volume), VG(Volume Group), LV(Logical Volume) 으로 구분되어 있다. PV(Physical Volume) - PV는 실제 물리 디스크를 LVM용도로 초기화한 물리 디스크 또는 파티션. 예를 들어 /dev/sda, /dev/sda1 등이 PV에 속함. VG(Volume Group) - VG는 하나 이상의 PV를 가지고 만든 물리적 volume의 집합. PV는 단 하나의 VG에만 포함될 수 있다. VG를 만든다는 것은 논리적 volume을 할당할 수 있는 disk 공..

Linux 2022.06.02

Project sshell(1)

Project sshell(숭쉘) made by Team sshell https://github.com/gluesys/sshell 대략적인 architecture, layout 짜고 functional API 까지 작성된 상태. 이번 posting에서는 plack 기반으로 짜여진 기존 앱(showmetheshell)을 분석하고 우리가 아는 perl의 Mojolicious형태로 바꿔보는 작업을 할 것이다. 먼저 기존 앱의 구조부터 분석을 해 보자. 기존 앱은 전체적인 앱 구조를 구성하는데 Perl의 'Plack' library를 이용하였다. Front-end의 library로는 jquery를 이용하였다. 그리고 socket으로 socket.io를 이용하였다. 기존 앱에서는 MVC의 전반적인 부분을 show..

Design Pattern 2021.02.22

LinuxBible 2nd week Summary(CH07~CH11)

LinuxBible Summary(CH07~CH11) CH07(Writing Simple Shell Scripts) Shell script? : 쉘 명령어를 모아 script파일로 작성한 것. => 같은 명령어를 다른 환경에서 반복해서 입력하지 않아도 됨. ex) 고객의 서버에 회사의 sw제품 설치하는 과정을 scirpt파일로 만들면 편하다. #! : shebang(쉬뱅)이라고 함. script파일을 실행할 program위치 명시. 변수 : 사용시 대입연산자(=) 앞, 뒤에 공백(space)가 없어야 한다. 변수에는 문자열, 숫자값 등이 저장될 수 있다. 변수에 명령의 출력이 포함될 수 있다. (ex - MyDate=$(date), MyDate=`date`, echo ${MyDate}) read : 사용..

Linux 2021.02.22

SAN/NAS study(2)

SAN과 NAS 관리자 가이드 - 커티스 프레스톤(한빛미디어) 책 내용을 기반으로 작성하였습니다. Chapter2 - 파이버 채널 구조 2장에서는 SAN의 기반기술인 Fibre Channel이 무엇인지 알아보고, Fibre Channel의 변형된 topology를 살펴봄과 동시에 Fibre Channel의 SAN특성에 대해 알아본다. 먼저 최첨단 기술인 SAN에서 왜 Fibre Channel을 사용하는지 살펴보자. Fibre Channel은 legacy LAN(전통적)과 parallel SCSI 구조의 성능과 논리적 장벽을 뛰어넘기 위해 사용된다. 전형적 비네트워크 protocol (SCSI) 지원 중요한 백업, 다른 동작을 위한 bandwidth 보장 등 Qos(Quality of Service) 제공..

Network 2021.02.09