2021/11 22

Puppeteer 활용 브라우저 테스트 자동화

https://developers.google.com/web/tools/puppeteer 소개 Headless 브라우저에 대한 이해가 필요 합니다. 해당 내용은 https://shanepark.tistory.com/290 에서 확인 하실 수 있습니다. Puppeteer Puppeteer는 Chrome 팀이 개발한 Node 라이브러리 입니다. Headless 혹은 온전한 크롬도 컨트롤 할 수 있는 고차원 API를 제공 하며, Panthom이나 NightmareJS 등 이전의 자동화 테스트 라이브러리들과 비슷하게 작동합니다. 특징 Broswer에서 여러분이 수동으로 하는 대부분의 일들을 Puppeteer를 통해 할 수 있습니다. 몇가지 사용 예제 페이지의 스크린샷 혹은 PDF 파일 생성 싱글 페이지 어플리케..

Development/DevOps 2021.11.30

Headless Chrome 브라우저 테스트

https://developers.google.com/web/updates/2017/04/headless-chrome Intro Headless Chrome은 Chrome 59 버전에서 추가되었습니다. Headless Chrome이 추가되기 이전에는 보통 PhantomJS 를 이용해서 Headless 웹 테스팅을 했다고 하는데요, Chrome이 Headless Chrome 기능을 업데이트 하자, PhantomJS는 개발 중단을 선언 했습니다. 아무래도 크롬이 직접 제공하다 보니 서드파티 소프트웨어를 사용할 필요가 줄어들 수 밖에 없습니다. @Before Chrome alias 설정 Chrome 명령어를 쉽게 사용하기 위해 alias를 선언 해 줍니다. 저는 MacOS나 Linux에서 모두 zsh를 사용하..

Development/DevOps 2021.11.30

Ubuntu Server 20.04 설치하기

Intro 집에서 서버로 사용중이던 우분투 노트북이 있습니다. 처음에 설치할 때 CLI의 압박으로 Ubuntu Desktop으로 설치를 해 두었었는데, 어차피 ssh로만 접속해서 사용하는데 굳이 Ubuntu Desktop으로 이용할 필요가 없다는 생각이 들었습니다. 사실 Ubuntu Desktop과 Ubuntu Server는 커널이 동일하다고 하는데요, 그래도 우분투 서버로 설치해보고 어떤 차이가 있는지 직접 살펴보고 싶어 우분투 서버를 설치하기로 했습니다. 시작에 앞서 ~/.ssh/authorized_keys 파일과, 서버에 띄워두었던 모든 도커 컨테이너를 이미지로 만들어 tar파일로 저장 해서 백업 해 두었습니다. 혹시 도커 컨테이너 백업이 필요한 분은 https://shanepark.tistory...

IT Computer/Linux 2021.11.29

Ubuntu) Gnome 바탕화면 아이콘 활성화

Intro Gnome Shell 은 desktop icon을 가져 왔지만, 3.28 버전부터 개발자들은 바탕화면의 아이콘 기능들을 비활성화 시키기로 결정 하였습니다. Documents 혹은 Downloads라는 훌륭한 대안이 있기는 하지만 바탕화면이 주는 임시 파일 저장소로서의 매력은 또 다른 이야기라서, 저처럼 필요로 하는 사람들도 분명 있을 거라 생각합니다. 지금 부터 간단하게 Ubuntu의 Gnome에서 바탕화면 아이콘이 비 활성화 된 경우 다시 활성화 시키는 방법을 알아보겠습니다. 첫번째 방법 Desktop Icons extention Gnome Extentions 사이트를 통해 해당 플러그인을 ON 해 주면 됩니다. Chrome이나 Firefox에서 GNOME EXTENTIONS 플러그인을 또 ..

IT Computer/Linux 2021.11.29

Typora 정식 버전 오픈 소식

보다 현실적인 제목 : Typora 유료화 새소식 아침에 출근해서, Typora를 켜니 아래와 같은 이미지가 등장했습니다. Linux와 MacOS를 모두 지원하는 마크다운 에디터는 흔하지 않기 때문에 아주 잘 사용하고 있었는데, 항상 사용할 때 마다 BETA 라는 문구를 보여 줌 으로서 언젠가는 돈을 받겠다 라고 말을 해온 Typora 였지만.. 제가 예상했던 것 보다 보다 빠르게 정식 버전이 출시되었습니다. https://typora.io/ 비용 가격은 $14.99로, 다행히 구독형은 아니고 한번에 구입 하는 형태 입니다. Major 업데이트에서 추가로 Charge 할지에 대해서는 확답을 못 하지만, 구독 모델로는 절대 바꾸지 않겠다고 합니다. 가격도 그렇게 부담스러운 가격은 아니기 때문에 저는 바로 ..

IT Computer/News 2021.11.29

docker로 elastic search 띄우기

Intro docker-compose로 ELK 스택을 구축하는 간단한 링크 https://shanepark.tistory.com/241?category=1203908 하지만 이번 포스팅에서는 지극히 개인적인 gaia.best 서버를 띄우기 위해 간단하게 오라클과 엘라스틱 서버만 띄우고 로그 스태시로 해당 엘라스틱 서치로 부터 파이프라인을 한차례 받아오는 과정 까지를 기록 해 두려고 합니다. 바로 이전 포스팅 https://shanepark.tistory.com/285 에서 도커 컨테이너를 백업 하려고 하던 찰라에 엘라스틱 서치 컨테이너에 큰 문제가있다는 것을 발견해서, 그냥 엘라스틱 서치 컨테이너를 날려 버리고 데이터를 새로 밀어넣으려고 합니다. 지극히 개인적인 기록을 위한 포스팅이지만 어느 누군가에게는..

도커 컨테이너 백업

도커 컨테이너 백업하기 Intro 최근 집에서 서버로 사용중이던 컴퓨터가 알수없는 이유로 자꾸 다운이 되는 바람에 우분투 서버를 한번 새로 깔아보려고 합니다. 저번에 아무 대책 없이 다 날리고 우분투를 깔았다가 서버를 다시 셋팅하느라 참 고생을 했었는데.. 그 때 그 고생을 줄이기 위해 로컬에는 아무것도 올리지 않고 도커만 사용하고 있습니다. 사실 회사에서는 능력이 출중하신 선배님께서 docker-compose 를 이용해 모두 세팅을 마쳐 두시고, 볼륨도 다 지정 해 두었기에 서버를 옮기거나 한다고 해도 docker-compose.yml 을 비롯한 셋팅 파일과 볼륨 폴더만 쏙 빼가면 되는데.. 제가 세팅했을 때에는 그런 환경을 몰랐을 때라 도커도 힘겹게 셋팅했던 기억이 납니다. 지금이라도 compose로..

Development/DevOps 2021.11.25

원격저장소 추가 - git remote add

개요 add remote는 로컬 git 저장소에 원격 저장소를 추가 하는 명령입니다. 보통, git init 이후에 Github 이나 Gitlab의 원격 저장소를 추가하기 위해 사용하는 명령어 인데요, 이미 특정 원격 저장소와 연결이 되어 있을때, 해당 저장소와의 연결을 끊고 다른 저장소와 새로 연결을 하거나 혹은 한번에 여러 개의 저장소에 push 하는 등 여러가지 용도로 사용할 수 있는 명령어 입니다. Repository 생성 원격 저장소를 추가하기 위해서 그에 앞서 원격 저장소를 먼저 생성 하겠습니다. 아래 사진의 예제는 각각 Gitlab과 Github입니다. 어렵지 않게 새로운 저장소를 만드실 수 있습니다. Create repository를 눌러서 생성 Gitlab에서는 저장소를 생성 했을 때, ..

Development/Git 2021.11.25

Linux) Homebrew와 Hugo 설치 및 실행

Homebrew를 사용하기 때문에 Linux 배포판은 어느 것이든 상관 없습니다. 저는 우분투 Ubuntu 20.04 를 사용합니다. Hugo와 Brew Hugo? The world’s fastest framework for building websites https://jamstack.org/generators/ Hugo는 Go 언어로 작성된 정적 웹사이트 생성기 입니다. 2013년 지금은 Google의 Go Language 리더인 Steve Francia에 의해 처음으로 개발되어, 노르웨이의 Bjørn Erik Pedersen를 비롯한 다양한 컨트리뷰터들 덕분에 성능과 기능들이 크게 향상되었으며, Apache License 2.0을 따르는 오픈 소스입니다. 속도가 굉장히 빠르고 유연하기 때문에 인기가..

IT Computer/Linux 2021.11.24

맥북 Monterey 공개 베타 취소방법

서론 취소 이유 MacOS) Monterey Public Beta 설치하기 포스팅을 통해 Monterey가 공개 되기 이전부터 Monterey를 사용 해 왔습니다. 공개 베타에 참여한 덕분에 미리 Monterey 에서 공개될 기능들을 사용 해 볼 수 있었으며, 여러가지 새로 추가될 내용들을 미리 체험 해 본 덕분에 나중에 와이프를 비롯한 주변 맥북 유저들이 공식 Monterey를 설치 했을 때, 먼저 경험했던 내용을 공유 해서 약간의 도움을 줄 수도 있었습니다. 하지만, 제가 사용하고 있는 맥북이 업무에서 사용을 하지는 않는다고 하더라도, 제가 집에서 사용하는 유일한 개인 개발장비인데다가 따로 파티션을 나누어 두지 않은 상태에서 계속해서 베타버전을 사용 하기에는 리스크가 너무 크다고 판단해, 이제 Mon..

IT Computer/Mac 2021.11.21

Postgres) rownum 사용과 Subquery를 통한 update

rownum Postgres 에서도 Oracle의 rownum을 사용 할 수 있을까요? 가능합니다. row_number()를 이용하면 됩니다. 그럼 아래 처럼 그냥 호출 하면 rownum을 사용 할 수 있을 것 같지만.. select row_number(), i.* from item i; 윈도우 함수 호출에는 OVER 절이 필요함 이라는 에러가 나옵니다. 딱히 조건을 걸 생각이 없었지만 그래도 over절은 넣어줘야 하나 봅니다. 그럼 이렇게 작성 한다면 rownum을 사용 할 수 있습니다. as로 alias 를 주는것도 좋겠네요. select row_number() over(), i.* from item i; Subquery를 통한 update 이제 rownum을 받아 왔으니, 서브쿼리에서 rownum을..

Database/PostgreSQL 2021.11.19

일간 에러 2021-11-19

I cannot be cast to java.lang.Integer 문제 JPA Restrictions의 in 절 파라미터에 int 배열을 전달 했더니, 쿼리를 만들어 내지 못하며 I cannot be cast to java.lang.Integer 에러가 발생했다. int[] actions = { Constants.READ, Constants.ADMIN, Constants.SUBMIT, Constants.REVIEW,Constants.WORKFLOW } Restrictions.in("actionId", actions))); 해결 과정 혹시 쿼리에는 String만 들어가야 하나 해서 Parameter를 String 배열로 변환 해 전달 해 보았다. Arrays.stream(collectionMembers)..

SSH 비밀번호 없이 공개키 로그인이 안될때

증상 ssh 접속시 비밀번호를 입력하고 로그인 하지 않기 위해 authorized_keys에 공개키를 추가 했지만, 여전히 비밀번호를 물어 보는 문제가 있었습니다. ssh 공개키도 제대로 입력 했는데 왜 비밀번호를 물어보는지 문제를 해결 할 필요가 있습니다. 원인 원인을 파악하기 위해 secure 파일을 확인 해 봅니다. sudo cat /var/log/secure 로그를 확인 하니 아래와 같습니다. [dev@serverpc .ssh]$ sudo cat /var/log/secure Nov 18 11:09:53 serverpc sshd[4851]: Accepted password for dev from 127.0.0.1 port 9999 ssh2 Nov 18 11:09:53 serverpc sshd[485..

IT Computer/Linux 2021.11.18

CentOS) Docker 및 Compose 설치

Linux 배포 및 버전 확인 자연스럽게 sudo apt update 를 입력 했는데, apt가 안먹히더라고요. 당연히 배포판이 우분투라고 생각했는데 아니었습니다. 일단 어떤 배포판을 사용하는지 먼저 확인 합니다. grep . /etc/*-release CentOS 7.9 버전 입니다. Docker 설치 https://docs.docker.com/engine/install/centos/ Docker Engine을 설치 하기 전에 먼저 Docker Repository 를 셋업 해야 합니다. 그리고 그걸 위해 yum-utils를 먼저 설치하겠습니다. sudo yum install -y yum-utils 금방 설치가 됩니다. 이번에는 yum-config-manager 를 설치 해 줍니다. sudo yum-co..

IT Computer/Linux 2021.11.18

Brackets) Unable to access the extension registry. Please try again later. 에러 해결

문제 Brackets 에서 플러그인을 설치하려고 하는데, Available에 접속이 되지 않았습니다. 구글에 검색해보니 Adobe가 망했다는 등 말도 안되는 말이 많았는데요, 어쨌든 플러그인을 설치 해야 하는 상황이었기 때문에 문제를 해결 해야 했습니다. 원인 최근 설치 파일에서 extention manager 부분의 기능이 제대로 동작하지 않고 있다고 하는데요, Adobe의 새로운 도메인이 SSL 구현으로 인해서 정상적으로 이전이 되지 않아서 생기는 문제 입니다. 해결 config.json 파일을 편집해서 간단하게 에러를 해결 할 수 있습니다. 단계별로 사진과 함께 올릴테니 천천히 따라하시면 누구든 어렵지 않게 해결 하실 수 있습니다. 1. config.json 파일 찾기 일단 Applications ..