전체 글

개발 관련 지식을 공유합니다.
· OS
Ubuntu 16.04LTS 버전에서는 /etc/network/interfaces 에서 네트워크 설정을 했었지만, Ubuntu 18.04LTS 버전 이상에서는 네트워크 설정 시, /etc/netplan/*.yaml 파일을 설정하여 사용해야 합니다. 아래는 Ubuntu Netplan 설정 파일을 사용하여 인터페이스에 여러 개의 Secendary IP를 할당한 예제입니다. 설정 파일 예제 /etc/netplan/50-cloud-init.yaml (파일명은 다를 수 있음) # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disabl..
· Cloud
목차 1. 클라우드 서비스 개요 1-1. 클라우드(Cloud)란? 1-2. 클라우드 서비스의 특징 1-3. 클라우드 서비스 모델과 이용 모델 1-4. 클라우드 이용 모델 1-5. 클라우드 서비스의 종류 2. IaaS 3. PaaS 4. SaaS & SECaaS 4-1. SaaS 4-2. SECaaS 5. Serverless 5-1. BaaS 5-2. FaaS 6. 끝내며.. 1. 클라우드 서비스 개요 1-1. 클라우드(Cloud)란? 먼저 클라우드란 무엇일까? 클라우드는 컴퓨터를 사용한 정보 처리를 자신이 보유한 PC가 아닌, 인터넷에 존재하는 클라우드 사업자의 컴퓨터에서 처리하는 서비스를 말한다. 클라우드라는 단어는 어떤 특정 기술을 뜻하는 것이 아니라 이런 '개념'을 나타낸다. 클라우드 컴퓨팅이라는 ..
· Docker
이전 문서에서 도커에 컨테이너를 생성하고 앱을 배포해보았다. 도커 Docker 컨테이너 실행하여 앱 배포해보기 이번 문서에서는 도커 이미지를 도커 허브에 공유하는 실습을 해보려고 한다. 이 문서는 Docker 공식 Docs(https://docs.docker.com/get-started/part2/)를 참고해서 진행하면서 간단히 작성한 문서이다. * 도커 허브는 도커에서 공식으로 제공하는 레지스트리(이미지 저장소) 이다. 도커 계정이 없으면 hub.docker.com 에서 계정을 만들어야 한다. 로그인 회원가입이 완료되었으면, 도커 서버에서 로그인한다. $ docker login 사설 레지스트리가 있다면 docker login 과 같이 입력하면 된다. 이미지 태그 이미지에 태그를 걸어준다. 명령어는 아래..
· Docker
Docker 공식 문서를 보며 진행해 본 것을 간단하게 정리한다. 자세히 보려면 아래 링크를 확인.(한글은 지원하지 않음) https://docs.docker.com/get-started/ Get Started, Part 1: Orientation and setup 1: Orientation 2: Containers 3: Services 4: Swarms 5: Stacks 6: Deploy your app Welcome! We are excited that you want to learn Docker. The Docker Get Started Tutorial teaches... docs.docker.com Docker 설치는 환경마다 다를 수 있으므로, 아래 링크를 참고 https://docs.docke..
· Network
DNS 서비스 연동을 할 일이 있어, DNS 레코드 타입에 대해서 서치하면서 정리했다. 원래 A, NS, CNAME 등 자주 쓰이는 레코드들 밖에 몰랐는데, 이번 기회에 여러가지 다른 레코드들에 대해서도 알게 되었다. 일단 1차로 연동한 레코드 타입들에 대해서 정리하고, 다른 레코드들은 서비스에 추가하게 되면 더 업데이트할 예정이다. A 레코드 가장 많이 쓰이는 레코드이다. 호스트에 대한 IPv4의 값을 가진다. 도메인 이름을 DNS 요청하면, IPv4 값을 준다. ex) 123.123.123.123 AAAA 레코드 호스트에 대한 IPv6의 값을 가진다. ex) 2001:0db8:85a3:08d3:1319:8a2e:0370:7334 CNAME 레코드 도메인 이름의 별칭(Alias)을 지정할 때 사용한다...
· Go
회사 프로젝트에서는 go의 기본 net/http 모듈과 라우터패키지인 gorilla/mux 만 사용해서 웹 서비스를 구현했었다. 현재 GO 언어 웹 프레임워크 중 유명한 Gin을 한번 사용해보려고 한다. 아래 페이지는 Go 웹프레임워크들의 순위를 매겨놓은 페이지인데, Gin이 현재 1위인듯.. https://github.com/mingrammer/go-web-framework-stars mingrammer/go-web-framework-stars :star: Web frameworks for Go, most starred on Github - mingrammer/go-web-framework-stars github.com Gin 웹 프레임워크 Github 페이지 https://github.com/gin-..
· etc
오픈소스란? 오픈 소스(open source, 문화어: 공개원천)는 소프트웨어 혹은 하드웨어의 제작자의 권리를 지키면서 원시 코드를 누구나 열람할 수 있도록 한 소프트웨어 혹은 오픈 소스 라이선스에 준하는 모든 통칭을 일컫는다. 말 그대로 제작자의 권리를 지키면서, 누구나 보고 쓸 수 있는 소스코드다. 근데 이 '제작자의 권리'를 지키는 부분이 라이센스에서 세부적으로 나타난다고 할 수 있다. 오픈 소스를 가져다 쓸 때는 제작자의 권리를 지켜주기 위해서 라이센스를 확인하고 그 라이센스에 따른 세부적인 사항들을 지켜줘야 한다. 오픈 소스는 누구나 가져다 사용할 수 있지만, 해당 오픈소스의 라이센스의 종류에 따라 세부적으로는 다른 권한을 가진다. 아파치 라이센스니, GPL이니, MIT니,, 여러 종류의 라이센..
· Go
Go로 작성한 프로그램에서 로그를 별도의 파일에 쓸 때, 프로그램에서 Panic 발생 시 Panic에 출력은 해당 파일에 남지 않는다. Panic 에 대한 출력을 로그 파일에 남기고 싶을 때, 첫 번째 방법은 프로그램 실행 시 아래와 같이 실행하는 것. Program 2> ./log.txt& 두 번째 방법은 syscall 패키지를 사용해서 stderr을 로그 파일로 리디렉션 시키는 방법이 있다. func main() { logFile, _ := os.Create("log.txt") syscall.Dup2(int(logFile.Fd()), 2) } 이렇게 하면 패닉이 발생했을 때, 로그 파일에 패닉에 대한 내용이 남는다. 근데 syscall 패키지는 크로스플랫폼이 아니다. 즉, 이 방법은 리눅스에 한정된다..
· OS
회사에서 사용중인 리눅스 서버들에 SWAP 메모리 설정을 해야 해서 설정 방법을 인터넷으로 찾아서 정리함. 스왑 메모리는 디스크의 용량 일부를 가상 메모리 공간으로 할당한다. 메모리가 부족할 때 사용하게 되며, 어플리케이션에 따라 실제 메모리와 스왑 메모리를 혼용하기도 한다. 스왑 파티션 및 파일 확인 free -m total used free shared buff/cache available Mem: 989 119 295 13 574 708 Swap: 0 0 0 Swap 부분을 확인한다. 위 처럼 0으로 되어있으면 스왑 파티션이 없는 것이다. swapon -s 스왑 파일이 있는 지 확인한다. 파티션이 아닌 파일로 존재할 수 있다. 스왑 파일 생성 및 시스템 등록 fallocate -l 2GB /swap..
yeo311
Dev Store