만쥬의 개발일기
article thumbnail
[Docker] - 배포 서버와 개발 환경의 Platform이 다를때 : The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) ...
🛠️TOOL/🐳Docker 2024. 1. 17. 16:14

문제 상황 개발환경에서 DockerHub에 Docker 이미지를 푸시하고, 배포서버에서 pull해서 사용하려고 하자 실행시 WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 와 같은 에러가 발생했다. 이는 개발환경은 WSl2 Ubuntu (linux/amd64) 이고, 배포 서버는 linux/arm64 아키텍처이기 때문이다. 따라서 로컬에서 docker image를 빌드 시, 해당 아키텍처용 이미지를 만들어주어야 한다. 이를 위해선 docker buildx가 필요한데, buildx란 다..

article thumbnail
[Project] - Web Sublink Crawler for Dynamic Web
📑Project , 대외활동 2024. 1. 10. 17:47

목표: Dynamic Web도 크롤링 가능한 Web Sublink Crawler 제작 요구사항 불특정 다수의 웹사이트의 하위 링크를 모두 찾는다. SPA에도 통용되어야 한다. 시간이 너무 오래걸려선 안된다. 모듈화 가능하게 제작한다. 첫 번째 시도 : SEO 크롤러 사용 Screaming frogm, Moz 등 다양한 SEO 크롤러 활용 SPA가 아닌 웹사이트의 경우 모든 하위링크를 잘 찾는 모습이다. 여기서는 대략 266개의 하위 링크를 찾았고, 시간은 대략 3분 정도가 걸렸다. SPA의 경우는 하위링크를 잘 찾지 못하는 것으로 확인되었다. 장점 : 사용이 쉽다 SPA가 아니라면 모든 링크를 잘 찾는다. 단점 : 유료 플랜이 있다. 시간이 오래걸린다. SPA의 경우 하위 링크를 찾지 못한다. 두 번째 ..

article thumbnail
[SSH] - MobaXterm을 통해 원격 서버 SSH 접속 후 vscode로 작업하는 법
🛠️TOOL 2024. 1. 10. 13:53

MobaXterm을 사용해야 하는 이유 원격 서버에서 작업해야 할 경우 대부분 연결을 ssh로 하게 되었는데, 기존에는 로컬에서 작업 ➡️ git에 push ➡️ 원격 서버에서 pull 로컬에서 scp프로토콜을 이용해 파일 전송 등의 방식을 사용하였고, 크게 불편함을 느낀 적이 없었다. 그러나 서버측에서 간단한 수정만을 하거나, 리눅스 서버에 데스크탑 환경이 깔려있지 않음 + 위 두가지 방법을 사용 못하는 경우엔 꼼짝없이 vi로 코딩을 해야만 했다. 나의 경우는 원격 서버 내의 파일들이 필요하지만 전부 로컬로 옮길 수 없는 방대한 양인데다가, 기존 코드 자체가 해당 데스크탑의 폴더 구조를 기준으로 짜여져 있기 때문에 반드시 추가 작업을 해당 원격 서버 환경에서 해야만 했다. 따라서 SSH로 접속하고, 해..

article thumbnail
[JavaScript] - 자바스크립트 유닛 테스트 도구인 Jest 사용법

설치 터미널에서 다음 명령어로 jest를 설치한다. npm install --save-dev jest 설정 package.json 에서 스크립트의 test를 jest로 수정해준다. 다음 예시처럼 폴더계층을 만들어준다. ├── package-lock.json ├── package.json ├── src │ ├── index.js │ └── tests │ └── test.js 테스트 작성 test.js에 테스트 코드를 짠다. describe('Jest 사용 예시', () => { test('숫자 0은 false이다', () => { expect(Boolean(0)).toBe(false); }); // 프리미티브 타입 검사의 경우 toEqual()을 사용해도 큰 문제는 없습니다. test('숫자 0은 fals..

article thumbnail
[CI/CD] - 도커와 젠킨스를 사용한 CI/CD -4 (도커의 설치부터 자동배포까지)
♾️DevOps/♾️CI & CD 2024. 1. 9. 09:08

Github to Jenkins Webhook 설정하기 깃허브에서 Webhook 설정 깃허브의 프로젝트 ➡️ settings➡️Webhooks ➡️Payload URL에 Payload URL을 '{Jenkins 서버IP:PORT}/github-webhook/'로 적은 후 저장한다. Webhook 테스트 저장 후 Recent Deliveries 탭에서 Webhook을 보내고 정상적으로 되는지 확인한다. 젠킨스 Jenkins Job 설정 Github에서 Webhook을 보내고 Jenkins가 수신하는 것까지 완료된 것이고 Webhook을 받았을 때 자동으로 Jenkins Job이 실행되도록 하려면 Jenkins Job 설정에서 Github hook trigger for GITScm polling 체크박스를 ..

article thumbnail
[이펙티브 자바] - 1장 ~ 2장
📖BOOK/📙Effective Java 2024. 1. 2. 22:46

1장 : 들어가기 이 책은 총 90개의 아이템과, 아이템들을 주제별로 묶은 11개의 장으로 구성된다. 또한 많은 디자인 패턴과, 피해야할 안티패턴들을 소개한다. 이 책의 용어들은 대부분 자바8용 언어 명세를 따른다. 자바가 지원하는 타입은 다음 네가지이다. 인터페이스 클래스 배열 (array) 기본타입 (primitive) 위 네가지 타입 중 처음 세가지는 참조 타입(reference type)이다. 즉, 클래스의 인스턴스와 배열은 객체이지만, 기본 타입은 그렇지 않다. 클래스의 멤버로는 필드, 메서드, 멤버 클래스, 멤버 인터페이스 등이 있따. 메서드 시그니처는 메서드 이름과 파라미터의 타입들로 이뤄진다. 또한 이 책에서는 인터페이스 상속 ➡️ 클래스가 인터페이스를 구현한다 or 인터페이스가 다른 인터..

article thumbnail
[Go] - 리눅스 환경에 Golang 설치 후 사용해보기

Go를 쓸 일이 언제 오나 싶었는데, 마침 Golang으로 제작된 오픈소스를 쓸 일이 생겨 이 참에 사용해보았다. tar 파일 받기 https://go.dev/dl/ All releases - The Go Programming Language go.dev 먼저 Go 공식 홈페이지에서 리눅스용 Go를 다운받습니다. tar.gz는 tar 파일을 압축한 상태입니다. 따라서 압축 파일을 받은 뒤 다음 명령어로 압축을 풀어줍니다. tar -xvzf 아카이브파일.tar.gz Go 위치 설정 압축이 풀린 go 폴더가 생성되었다면, 원하는 위치로 위치를 옮겨 줍니다. 저는 다음 명령어를 통해 /usr/local 위치로 옮겨 주었습니다. sudo mv go /usr/local Go PATH 등록하기 저는 Zsh 셸을 사..

article thumbnail
[PostgreSQL] - 원격 서버에서 PostgreSQL 접속하는 법
🛠️TOOL/🐘PostgreSQL 2024. 1. 2. 10:08

PostgreSQL을 설치하면 기본적으로 외부 서버에서 접속할 수 없기 때문에, config 파일들을 수정해주어야 한다. 개발환경은 WSL2 + ubuntu18.04 이다. 우선 다음 명령어로 Ubuntu에서 열려있는 포트를 확인한다. netstat -nltp postgres의 기본 포트는 5432이다. 위 결과처럼 127.0.0.1:5432로 되어 있다면 5432포트는 내부에서만 접속할 수 있다는 뜻이다. postgresql.conf파일 수정 Postgres 설정을 변경하려면 postgresql.conf에서 변경해 줘야 한다. 먼저 다음 명령어로 postgresql.conf 파일을 vim 편집기로 변경해준다. sudo vim /etc/postgresql/10/main/postgresql.conf (po..