Ch 17) 메서드
·
dev./golang
이번 포스팅은 Go 언어의 메서드에 알아보려고 한다.17.1 메서드 선언메서드를 선언하려면 리시버를 func 키워드와 함께 사용한다.func (r Rabbit) info() int { return r.width * r.heigth}r Rabbit: 리시버info(): 함수 이름리시버를 통해 메서드의 타입을 알 수 있고, 구조체(r)는 매개변수처럼 사용이 가능하다. 리시버로 모든 로컬 타입이 가능한데 여기서 로컬 타입은 해당 패키지 안에서 type 키워드로 선언된 타입을 의미한다.package mainimport "fmt"type account struct { balance int}// 일반 함수func withdrawFunc(a *account, amount int) { a.balan..
Ch16) Slice
·
dev./golang
16.1 슬라이스슬라이스를 선언하고 요소에 접근, 순회, 추가하는 방법을 알아보자. 16.1.1 슬라이스 선언var array [10]int위 코드는 고정길이 10을 가지고 있는 배열을 나타낸 코드이다. 선언된 길이보다 더 많은 값을 저장하기 위해서는 어떻게 해야 할까? 별도 저장공간을 할당한 뒤 기존의 값을 새로운 공간에 복사하는 방식을 사용해야 한다. 이러한 배열의 불편함을 해소해 줄 수 있는 게 슬라이스이다. 슬라이스는 동적 배열을 다루는 데 다양한 방법을 제공해 주고 있다. var slice []int위와 같이 슬라이스를 만들자. 슬라이스를 초기화 하지 않으면 길이가 0인 슬라이스가 만들어 진다. 크기가 0인 슬라이스에 값을 추가하게 되면 Panic 에러가 발생하고 프로그램은 종료된다. Panic..
Ch27) 프로파일링으로 성능 개선 하기
·
dev./golang
프로파일링이란? 프로그램의 성능 지표를 프로그램이 실행 중에 실시간으로 측정하고 기록하는 것을 말한다. 측정하는 성능 지표는 실행 시간, 메모리 사용량, 함수 호출 시간과 빈도등이 있다. 프로그램 성능이 저하되는 곳을 찾고 원인을 분석하는 데 주목적이 있다.27.1 특정 구간 프로파일링Go 언어에서 프로파일링 데이터를 수집하는 방법이 몇 가지 있는데, 그중에서 특정 구간을 프로파일링 하는 방법을 살펴보자. 이 방법은 성능 개선이 필요한 특정 함수나 구간을 조사할 때 좋은 방법이다.성능 측정을 시작하는 곳에 pprof.StartCPUProfile() 함수를 호출성능 측정을 끝내는 곳에 pprof.StopCPUProfile() 함수를 호출결과 저장package mainimport ( "fmt" "log..