업무에 사용하는 Go 언어 0 – Intro

업무에 사용하는 Go 언어 썸네일

직장에 근무하면서 컴퓨터공학에 관련된 업무를 전부 책임지고 있는 저에게 Go 언어로 서버를 만들어달라는 요청이 들어와서 처음 사용하게 되었습니다. 그 과정에서 Go 언어는 충분히 매력적인 언어라고 느껴져서 Go 언어에 대해서 쭉 시리즈로 정리하여 공유하고자 합니다. 제가 Go 언어로 만들어본 재밌는 것들은… 현실적으로 블로그에서 위의 내용들을 다 만들어보기에는 힘들 것 같고 Go 언어를 이해하고 백엔드 서버를 만들어보는 … Read more

Go 언어 method – 업무에 사용하는 Go 언어 12

업무에 사용하는 Go 언어 썸네일

Go 언어 method는 struct에 속하는(혹은 속해있는) 함수입니다.Go 언어에는 class가 존재하지 않고 oop를 위해 struct를 이용하게 됩니다.oop의 특징을 struct에 도입하여 사용할 수 있도록 되어있습니다. Go 언어 method 정의 Go 언어 method는 특정 타입에 속하는 함수로 정의되어 있습니다.즉, Go 언어 method를 정의하려면 먼저 struct와 같이 사용자 정의 타입을 정의하고 해당 타입에 바인딩할 함수를 정의하면 됩니다. Go 언어 … Read more

Go 언어 struct – 업무에 사용하는 Go 언어 11

업무에 사용하는 Go 언어 썸네일

Go 언어 struct(구조체)는 다른 언어에서 기본적으로 제공하는 struct와 비슷합니다.다만, Go 언어에는 OOP(객체 지향 프로그래밍)에서 흔히 사용하는 class가 존재하지 않습니다.Go 언어 struct가 class와 유사한 역할을 하는데, 상속과 같은 기능을 제공하지는 않고, interface를 통해 여러가지 기능을 제공합니다.Struct를 활용하여 간단한 데이터부터 복잡한 데이터 모델링까지 가능하게 해주기 때문에 꼭 살펴보고 넘어가야 합니다.본 글에서는 struct의 기본 개념부터 사용 방법까지 살펴보도록 … Read more

업무에 사용하는 Go 언어 10 – 포인터

업무에 사용하는 Go 언어 썸네일

포인터는 어떠한 값의 메모리 주소를 저장합니다.Go 언어 포인터는 개념 자체는 같지만 다른 언어와는 약간 다른 특징을 가지고 있으니 이에 대해 중점적으로 살펴보도록 하겠습니다. Go 언어 포인터 포인터 자체에 대한 개념은 상세하게 설명하지 않겠습니다.Go 언어에서도 포인터는 메모리 주소(혹은 위치)를 참조하는 참조 타입의 변수입니다.C 계열 언어의 스타일과 비슷하게 &를 붙여 메모리 주소를 구하고, *를 사용하여 실제 값을 … Read more

업무에 사용하는 Go 언어 9 – 함수 func

업무에 사용하는 Go 언어 썸네일

Go 언어의 함수에 대해서 다루어보도록 하겠습니다.프로그래밍 언어에서 함수는 필수적인 요소일 것 입니다.함수형 프로그래밍이든 객체 지향 프로그래밍을 하든 어떤 패턴을 써도 함수는 필수적으로 사용됩니다.함수를 잘 활용하면 코드를 재사용 할 수 있고 프로그램의 구조를 잡을 수 있습니다. func Go 언어에서도 함수는 0개 혹은 여러 인자를 받을 수 있습니다.func 키워드를 사용하여 선언할 수 있고 함수 이름, 매개변수, 반환 … Read more

업무에 사용하는 Go 언어 8 – make

업무에 사용하는 Go 언어 썸네일

Go 언어에서 중요한 내장 함수 중 make에 대해 다루도록 하겠습니다.make 함수는 slice, map, channel 같이 Go 언어의 참조 타입 중 컬렉션 타입을 초기화할 때 사용합니다.메모리에 변수의 구조를 알려주는 행위라고 이해하시면 되겠습니다. 약간의 여담 nil 상태에 대해서 저번 글에 아주 상세히 다루어보았다.“리터럴이 딱히 없는데 어떡하지? 아무 값으로 일단 초기화 해야하나?”라는 의문을 가진 분들이 있을 것이다. 그런 … Read more

업무에 사용하는 Go 언어 7 – nil

업무에 사용하는 Go 언어 썸네일

Go 언어 nil에 대해 다루어보도록 하겠습니다.nil에 대한 개념은 매우 혼동될 수 있으므로 주의 깊게 살펴보시길 바랍니다. 약간의 여담 필자는 시리즈 초반에 nil에 대해 다루어보려고 했다.zero value와 nil을 가질 수 있는 자료구조를 어느 정도 다루지 않고 설명하기 힘들어서 이렇게 따로 설명하게 되었다. Go 언어 nil nil은 null이나 undefined과 비슷하지만 약간 특이합니다.특정 타입의 변수가 “값이 초기화되지 않은 … Read more

업무에 사용하는 Go 언어 6 – array slice map

업무에 사용하는 Go 언어 썸네일

Go 언어에서 array, slice, map과 같이 반복 가능한 데이터를 다루어보도록 합시다.반복 가능한 데이터라 하면 메모리에 줄을 지어서 존재하는 데이터로 쉽게 이해할 수 있습니다.이러한 데이터를 다루는 부분에서 Go 언어의 특성을 살펴볼 수 있습니다. 자료구조의 중요성 자료구조는 코드의 효율성에 가장 관련이 있다고 생각한다.효율성에는 최적화, 가독성 등 많은 의미가 담겨있다.필자가 생각하기에는 자료구조에 대한 정확한 지식이 없으면 메모리가 많이 … Read more

업무에 사용하는 Go 언어 5 – 흐름제어 if, switch, for

업무에 사용하는 Go 언어 썸네일

Go 언어에서 흐름을 제어하는 법을 익혀봅시다.보통 흐름제어라고 하면 프로그램(혹은 코드)의 진행 흐름을 제어한다고 이해합니다.if문이나 switch문으로 코드의 진행을 나누거나, for문을 통해 코드의 진행을 반복할 수 있습니다. 흐름제어의 중요성 실제 업무에 있어서 흐름제어는 가장 중요하다고 해도 과언이 아닐 것이다.흐름제어를 하는 방식은 효율성과 가독성에 분명히 영향을 미친다.협업의 상황에서 주석이 없어도 동료가 나의 코드를 이해할 수 있어야 한다고 생각한다. … Read more

업무에 사용하는 Go 언어 4 – 연산자

업무에 사용하는 Go 언어 썸네일

Go 언어에서 연산자를 다루어보도록 하겠습니다. 프로그래밍 언어를 사용하는 이유에는 인간을 대신하여 작업을 수행하도록 하기 위함이 있겠습니다.작업이라는 행위를 기계가 하려면 연산을 해야 하기에 연산자는 모든 프로그래밍 언어에서 필수적인 요소입니다. Go 언어 연산자는 다른 프로그래밍 언어와 매우 유사하기에 간단하게 정리합니다. 프로젝트 진행 이전 단계에서 만들었던 프로젝트에서 operators.go 파일을 만들고 실습을 해보세요. 산술 연산자 Arithmetic Operators 산술 연산자(Arithmetic … Read more

업무에 사용하는 Go 언어 3 – 입출력

업무에 사용하는 Go 언어 썸네일

Go 언어에서 입력과 출력을 다루는 방법을 알아보고 fmt 패키지를 사용해보도록 합시다. 필자의 경우 Go 언어로 업무를 진행하면서 데이터를 저장할 때 데이터베이스에 저장했기 때문에 파일 입출력을 거의 사용하지 않았던 것 같습니다.본 시리즈에서 파일 입출력은 아예 포함하지 않을까 생각했지만 간단하게 다루어보도록 하겠습니다. 입출력은 기본적으로 프로그램과 사용자가 대화를 한다고 생각하면 됩니다.어떤 방식으로 출력할 것인지, 어떤 방식으로 입력할 것인지 … Read more