일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- http 개념
- hadoop
- ddd
- 파이썬
- golang struct
- 우분투
- 백준 12761
- go
- 12761번 돌다리
- flask
- 트리 순회
- golang
- 도메인 주도 개발 시작하기
- 백준 12761번
- 백준
- 백준 파이썬
- 고 배열
- 정렬
- 자바
- MongoDB Realm
- 백준 사이트
- http 완벽가이드
- 하둡
- 도메인 주도 개발
- 자바 디자인 패턴
- String 함수
- 자바 디자인패턴
- domain driven develop
- 몽고디비 렘
- 12761 돌다리
- Today
- Total
목록분류 전체보기 (211)
개발바닥
모듈(Module)이란? Go 프로젝트의 종속성을 관리하는 새로운 방법이다. (1.11.1 이후 등장) 모듈을 사용하면 애플리케이션을 중단하지 않고 동일한 종속성의 다른 버전을 통합할 수 있다. Go Modules 이 안나온 시절은 어땠을까? go get: 3rd party packages 가져오기 go에서는 'go get' 명령어로 외부 패키지를 가져올 수 있다. 1. go get으로 가져온 패키지는 $GOPATH/src 아래에 source file들이 저장된다. $GOPATH 내에 없으면 종속성을 가져올 수 없다. 2. go build 명령은 $GOPATH 내에 바이너리 실행 파일과 패키지 아카이브를 생성한다. $GOPATH에 많이 의존하는 것을 볼 수 있다. 여기서 잠깐! Go는 Node.js의 N..
1. 백그라운드 실행 $ 명령어 & 명령어 뒤에 &을 붙이면 백그라운드에서 작업을 실행한다. &만 사용하여 실행했을 때, 사용자가 터미널 세션을 끊어버리면 백그라운드 중인 작업도 같이 종료된다. 2. 터미널 세션이 끊켜도 백그라운드에 계속 실행하는 방법 $ nohup 명령어 & nohup 명령어를 함께 사용하면 백그라운드에서 작업함과 동시에 터미널 세션을 끊거나 컴퓨터를 종료해도 프로세스가 사라지지 않는다. nohup으로 실행하면 실행한 위치에 nohup.out 파일이 생성되는데, 명령어 실행 시 발생하는 표준 출력을 nohup.out에 입력한다. 출력 문구를 생성하고 싶지 않다면 아래 커맨드를 사용하면 된다. $ nohup 명령어 & > /dev/null ※ /dev/null 파일은 항상 비어있으며, ..
Go Struct란? Go의 struct는 필드들의 집합체이며 필드들의 컨테이너이다. Go에서 struct는 필드 데이터만을 가지며, 메서드를 갖지 않는다. Go 언어에서는 class가 없지만 객체지향 프로그램(OOP) 스타일로 프로그램을 할 수 있다. go의 struct는 메서드에 붙일 수도 있고, embedding으로 상속도 흉내 낼 수 있다. 즉, Go에는 전통적인 OOP 언어가 가지는 클래스, 객체, 상속 개념이 없다. 구조체 정의 구조체 정의하는 방식은 3가지 방식이 있다. 1. 일반 구조체 2. 중첩된 구조체 (nested struct) 3. 임베디드 필드 구조체 (embedded struct) // 1. 구조체 정의 type User struct{ 필드명 타입 ... 필드명 타입 } // 2..
슬라이스(Slice) 란? Go 배열은 고정된 배열크기 안에 동일한 타입의 데이터를 연속적으로 저장하지만, 배열의 크기를 동적으로 증가시키거나 부분 배열을 발췌하는 등의 기능을 가지고 있지 않다. Go Slice는 동적 배열 타입(배열을 가리키는 포인터 타입)이다. 배열과 달리 고정된 크기를 미리 지정하지 않을 수 있고, 차후 그 크기를 동적으로 변경할 수도 있고, 또한 부분 배열을 발췌할 수도 있다. 용어 정리! 정적(Static) : 컴파일 시점(Compile)에 결정 동적(Dynamic) : 실행 시점(Runtime)에 결정 배열과 슬라이스 선언 비교 var v [10]int // 길이가 10인 int형 배열 var s []int // int형 슬라이스 선언 s2 := make([]int, 5, 1..
AWS ECS(Elastic Container Service)란? 클러스터에서 컨테이너를 손쉽게 실행, 중지 및 관리할 수 있게 하는 컨테이너 관리 서비스로서 확장성과 속도가 뛰어나다. ECS는 AWS에서 제공하는 매니지드 컨테이너 오케스트레이션 서비스로 컨테이너를 기반으로 서비스를 배포 및 운영하는 기능을 제공한다. 용어 정리! 컨테이너 오케스트레이션이란 컨테이너의 배포,관리,확장,네트워킹을 자동화해주는 도구이다. ECS 구성 컨테이너 디피니션 ECS 클러스터 도커 이미지를 가져오는 위치, 노출되는 포트, 환경 변수, 작업 정의가 컨테이너를 실행하는 데 사용할 하드/소프트 CPU 제한을 포함하는 컨테이너의 구성이 포함됩니다. 태스크 ECS에서 컨테이너를 실행하는 최소 단위는 태스크이다. 태스크는 하나 ..
Docker 란? Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다. 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 빠르게 배포가 위해 설계된 도구이다. 컨테이너란? 프로그램을 빌드/실행할 때 그 어떤 기기에서든 똑같은 환경을 조성할 수 있도록 도와주는 패키징 서비스이다. 컨테이너 안에는 프로그램을 실행할 때 필요한 모든 것들이 전부 정의되어 있다. 즉, 코드와 모든 종속성을 패키징화하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위이다. 기존 사용하던 VM과 컨테이너 차이점 그림에서 보면 컨테이너는 도커 엔진 위에서 앱들이 실행되고 기존 VM은 게스트 OS에서 앱이 실행된다. 기존 VM은 호스트 OS 상에서 ..
Go 언어에서 채널은 고루틴을 연결해주는 통로(파이프)이다. 기본적으로 채널은 양방향이고 고루틴은 채널을 통해 데이터를 주고 받는데 사용되는데, 송신,수신이 준비될 때까지 채널에서 대기함으로써 별도의 lock을 걸지 않고 데이터를 동기화하는데 사용된다. 여기서 잠깐! 동기와 비동기 개념에 대해서 확인! 동시성 프로그래밍을 하게되면 가장 크게 대두되는 문제점이 바로 동기화이다. 동기는 말 그대로 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속인데요. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 한다. 즉, 동기방식은 결과가 주어질 때까지 아무것도 못하고 대기해야 한다. 반대로 비동기는 요청을 보냈을 때 응답 상태와 상관없이 다음 동작을 수행 할 수 있다. 채..
고루틴이란? 고루틴은 GO언어에서 프로그램의 동시성을 쉽게 구현하고 기존의 단순 스레드 기반의 구현에 비해 효율적인 동작을 수행해 내기 위해 만든 작업단위 이다. 기본적으로 메인함수를 실행하게 되면 메인 고루틴이 실행되게 된다. 메인 고루틴이 종료하게 되면 즉시 다른 고루틴들이 종료된다. (멀티 스레드를 활용할 때는 항상 예상 가능 하도록 코드를 구현해야된다.) 즉, Go 언어로 동시에 실행되는 모든 활동을 고루틴이라고 한다. 여기서 주의할 점 CPU의 스레드와 OS 영역에서 다뤄지는 스레드는 서로 지칭하는 대상이 다르다. CPU의 스레드는 한개의 코어를 OS에게 여러개로 인식시켜 동작하도록 하는 하드웨어 영역의 개념이고, 고루틴에서 사용하는 스레드는 OS 영역에서 다뤄지는 스레드로 OS 하위의 소프트웨..