yoongrammer

목차 [Go] context 알아보기 context패키지는 API 및 프로세스 간에 데드라인(deadline) 취소 시그널, 값 등을 전달하기 위해서 사용합니다. context를 사용하면 작업을 취소하거나 중간에 중지할 수 있습니다. 취소가 필요한 이유 작업 취소 시, 불필요한 작업을 수행하지 않고 빠르게 취소할 수 있다면 애플리케이션 성능에 큰 도움이 될 것입니다. 데이터베이스를 호출하여 쿼리된 데이터를 클라이언트에 반환하는 서버가 있다고 생각해보겠습니다. 문제가 없다면 아래와 같이 동작할 것입니다. Server가 요청을 받아 DB에 query를 전달하기 전에 클라이언트가 요청을 취소를 한다면 아래와 같이 동작할 것입니다. 클라이언트가 중간에 취소했음에도 불구하고 Server는 DB에 query를 전달..

이전 글2020/12/06 - [언어/Go 언어] - [Go] Modules 알아보기목차Modules 사용하기모듈 사용방법을 알아보도록 하겠습니다. 사전 작업$GOPATH/src의 바깥쪽에서 빈 디렉터리를 하나 생성합니다.$mkdir hellohello.go 파일을 생성합니다.package mainimport ( "fmt")func main() { fmt.Println("hello, world")}module 생성하기go mod init [module] 명령을 사용하여 새로운 모듈을 생성합니다.$ go mod init example.com/hellogo: creating new go.mod: module example.com/hellogo mod init명령을 수행하면 현재 패키지의 종속성 정보를 담고 ..

목차[Go] Modules 알아보기Go 모듈은 go 패키지들의 종속성을 관리하는 패키지 관리 시스템입니다. Go의 모듈 개념은 Go 애플리케이션 내의 종속성 문제를 처리하기 위해 도입되었습니다.모듈은 패키지를 트리 형식으로 저장하고 있으며, 루트 트리에는 go.mod 파일이 있습니다. 저장소, 모듈 및 패키지 간의 관계는 아래와 같습니다.저장소에는 하나 이상의 Go 모듈이 포함됩니다.각 모듈에는 하나 이상의 Go 패키지가 포함되어 있습니다.각 패키지는 단일 디렉토리에 있는 하나 이상의 Go 소스 파일로 구성됩니다.repository|-- module1| `-- package1| `-- src1.go| `-- src2.go| `-- go.mod| `-- package2| ..

운영체제마다 에디터에서 새로운 줄 바꿈을 할 때 들어가는 문자열이 달라지게 됩니다. Windows 같은 경우는 carriage-return(\r)과 line feed(\n)가 같이 들어가는 반면에 MacOS에서는 line feed(\n)만 들어가게 됩니다. windows text\r\n mac text\n 이러한 차이점 때문에 git repository를 다양한 운영체제에서 쓰는 경우에 내가 수정하지 않았음에도 불구하고 줄 바꿈 문자가 달라져서 git history나 blame을 볼 때 문제가 있을 수 있습니다. 이것을 수정할 수 있는 속성이 autocrlf 설정입니다. 자신의 운영체제에 맞게 autocrlf를 설정해 줍니다. Windows $ git config --global core.autocrlf..

목차 git Meld, p4merge 사용하기 git diff 명령어로 파일을 비교하는 것은 불편합니다. 좀 더 편리하게 gui를 사용하여 시각적으로 diff를 할 수 있는 tool을 소개하겠습니다. Meld Meld는 시각적 비교 및 병합 tool입니다. 설치방법 meld는 Windows, Linux에서 지원하고 아쉽게도 아직까진 macOS는 지원하지 않습니다. Windows 아래 링크에서 windows 용 meld를 다운로드하여 설치합니다. https://meldmerge.org/ Linux 아래 명령어를 사용하여 meld를 설치합니다. $ yum install meld 아래 명령어를 수행하여 설치 확인을 합니다. $ meld --version meld 1.3.1 버전 정보가 출력되면 설치가 완료된 ..