일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- mock
- apiTest
- golang
- 번역
- bitwiseNot
- IAC
- PostgreSQL
- docker
- cron
- Terraform
- JavaScript
- react
- GraphQL
- docker-network
- 도커컨테이너
- ...$$restProps
- go
- Svelte LifeCycle
- testing
- GIT
- nestjs
- 도커
- :=
- onDestory
- 인라인핸들러
- svelte
- reactjs
- githook
- TypeScript
- smui
- Today
- Total
목록전체 글 (73)
Den`s blog
Golang 에서 프로그램을 종료하는 것에 대해서 제일 처음 알게 되는 것이 아마도 os.Exit() 일 것이다. 그러나, 오늘은 다른 종료 메소드인 runtime.Goexit() 과 비교하면서 둘의 차이점에 대해서, 그리고 runtime.Goexit() 를 써야하는 경우에 대해서 알아보자. 1. os.Exit Conventionally, code zero indicates success, non-zero an error. The program terminates immediately; deferred functions are not run. 공식 문서를 살펴보면, Exit 의 아규먼트로 0을 주면 성공, 아닌 경우에는 에러라고 한다. 그리고 그 뒤에 말이 중요한데, 프로그램을 즉시 종료한다고 한다. d..
오늘 GitHub 푸쉬를 하려고 하는데, 아래와 같이 오류가 뜬다 MacOS 기준으로 해결방법에 대해 알아보자 remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. 위 오류 해결 방법에 대해서 알아보자. 일다 내용은 비밀번호 대신 Personal Access Token 을 쓰라는 것이다. 일단 Personal Access T..
오픈소스에 기여하기 위해서라던지, Github Organization에 들어가서 개발을 진행하다보면 해당 작업물을 내 저장소로 가져와서 작업을 한 후에 원 저장소에 내 코드가 추가되고 싶다 라는 생각이 들 때가 있을 것이다. 이 글은 그런 Need를 해결하기 위해서 작성하게 되었다. 회사에서 개발파트를 리딩하다보면 스터디를 진행하거나, 사이드 프로젝트를 진행해야 할 때가 생기는데, 이럴때 쉽게 알려주기 위해서도 있다. 이 글에서 쓰는 용어를 정리하면 아래와 같다. 원저장소 : 오픈 소스 혹은 Github Organization 에 있는 내가 기여하고 싶어하는 저장소 내저장소 : 원저장소를 Fork 한 내 저장소 1. 원저장소에서 내저장소로 Fork 하기 Fork 란? 저장소를 복제한다는 개념이다. 단어에..
개발을 하다보면 Git에 레포지토리/프로젝트를 올릴 때 실수로 .idea 파일 등 및 올라가면 안되는 파일을 올리는 경우가 나는 더러 있다. 그럴때마다 지우고싶은 욕구가 뿜뿜하는데, 이를 그냥 지울 수 있는 방법을 소개해보자 한다. 1. .gitignore 에 추가하기 파일을 잘못 올린 경우 일단 .gitignore 에 해당되는 파일을 추가 후 커밋을 해준다. 물론, 이래도 파일은 그대로 있다. .gitignore 는 add/commit/push 전에 적용되는 내용이기에 이미 올려진 내용은 포함되지 않는다. 추가 한 후에 다음 스텝이 필요하다 2. 레포지토리 (원격저장소) 파일 지우기 & push 이 스텝이 핵심이다. 아래 명령어로 해당 파일을 지워준다 $ git rm --cached {file} 위 명..
백엔드 개발을 하건, 프론트 개발을 하건 API 호출을 개발과는 뗄 수가 없다. 그러다보면 자연스레 API 를 호출해볼 수 있는 툴을 찾거나 하는데 주로 거론 되는 것이 Postman과 Insomnia 다. 그런데 툴을 따로 사용하다보면, 귀찮을 때가 있고 특히 회사에서 사용하는 경우는 이것을 위해 비용까지 지불하거나 공유가 어려운점이 있다. 그런데 IntelliJ 제품군에서 API 테스트가 사용이 가능하고, 코드로 관리까지 된다면 어떨까 ? IntelliJ 에서 API 개발에 사용할 수 있는 .http 에 대해서 알아보자 1. .http 파일 생성 새로운 파일을 생성을 하려하면 아래에 HTTP Request 라는 형태의 파일이 존재한다. 없다면 확장자를 .http 로 생성하면 된다. 2. 가장 기본적인..
GoLang 에서 테스트를 돌리기 위해서는 go test 를 쓰면 된다. 그런데, 해당 명령어는 디렉토리 안에 있는 것만 확인한다. 하위 디렉토리는 확인을 하지 않는다. 프로젝트 안에 테스트파일이 있어도 위와 같이 뜨고 있다. 그렇다면 전체로 테스트를 돌리기 위해서는 어떻게 해야 할까 ? go test ./... 위 명령어만 실행해주면 간단하게 전체 테스트가 가능해진다.
도커 네트워크 기능 컨테이너 생성시 기본적으로 브리지를 통해 외부와 통신할 수 있는 호나경을 사용할 수 있지만 사용자의 선택에 따라 여러 네트워크 드라이버를 쓸 수도 있다. 도커가 제공하는 대표적인 네트워크 드라이버 브리지 호스트 논 (none) 컨테이너 오버레이 여기서는 브리지, 호스트, 논, 컨테이너에 대해 알아보도록 하자. 브리지, 호스트, 논이 있는것을 볼 수 있다. docker network inspect 명령어를 이용하여 네트워크의 자세한 정보를알 수 있다. docker network inspect {network_name} bridge 를 한번 살펴보자 Config 항목의 Subnet과 Gateway가 172.17.0.0/16 과 172.17.0.1 로 설정된 것을 볼 수 있다. 이 전에 설..
도커 네트워크 구조 이전에 컨테이너의 네트워크 인터페이스에 eth0와 lo 네트워크 인터페이스가 있는 것을 확인하였다. 언급했던 것과 같이 도커는 컨테이너에 내부 IP를 순차적으로 할당하며, 이 IP는 컨테이너를 재시작할 때마다 변경될 수 있다. 이 내부 IP는 도커가 설치된 호스트, 즉 내부 망에서만 사용가능한 IP 이므로 외부와 연결될 필요가 있는데, 이 과정은 컨테이너를 시작할 때 마다 호스트에 veth... 라는 네트워크 인터페이스를 생성함으로써 이뤄진다. 도커는 각 컨테이너에 외부와의 네트워크를 제공하기 위해 컨테이너마다 가상 네트워크 인터페이스를 호스트에 생성하며 이 인터페이스의 이름은 veth 로 시작한다. veth 인터페이스는 사용자가 직접 생성할 필요는 없고, 컨테이너가 생성될 때 도커엔..
도커 이미지로 컨테이너를 생성하면 이미지는 읽기 전용이 되며, 컨테이너의 변경 사항만 별도로 저장해서 각 컨테이너의 정보를 보존한다. 그러나, 이러한 점에는 치명적인 단점이 있다. 컨테이너를 삭제하면 변경된 정보도 삭제된다는 것이다, mysql 의 예제로 보면 데이터가 보존되지 않는 다는 점이다. 이를 방지하기 위해 컨테이너의 데이터를 영속적(Persistent) 데이터 활용할 수 있는 방법이 몇가지가 있다. 그 중 가장 활용하기 쉬운 방법이 볼륨(Volume)을 활용하는 것이다. 볼륨을 활용하는 방법도 여러가지가 있다. 1. 도커 볼륨 공유 아래 명령어를 입력해 postgre 데이터 베이스를 생성하고, 테이블을 생성해준다. $ docker run -d -e POSTGRES_PASSWORD=passwor..
컨테이너 애플리케이션 구축하기 대부분의 서비스는 단일 프로그램으로 동작하지 않는다. 여러 에이전트나 데이터베이스 등과 연결되어 완전한 서비스로써 동작하는 것이 일반적이다. 이런 서비스를 컨테이너화 (Containerize) 할 때, 여러 개의 어플리케이션을 한 컨테이너에 설치할 수도 있으나, 컨테이너에 애플리케이션 하나만 동작시킬 경우에 컨테이너간의 독립성을 보장하고 동시에 어플리케이션의 버전 관리, 소스코드 모듈화 등이 더욱 쉬워진다. 그래서 이번에 데이터베이스와 워드프레스 웹 서버 컨테이너를 연동해 워드프레스 기반 블로그 서비스를 만들어 보도록하자. 다음명령어를 입력해 각 컨테이너를 생성한다 $ docker run -d --platform linux/amd64 --name wordpressdb -e ..