한 눈에 끝내는 고랭 기초
    • 01
      시작하기에 앞서
    • 강의대상
      Go란?
      실습 환경 구축 - 구름IDE
      Hello goorm! 출력해보기
    • 02
      변수와 상수
    • 콘솔 출력 함수의 기본
      변수의 선언과 초기화
      상수의 선언과 초기화
      간단한 덧셈
      잘못된 신상정보
    • 03
      연산자
    • 연산자 종류
      연산자 우선순위
      콘솔 입력 함수의 기본
      간단한 덧셈과 곱셈
      몫과 나머지
    • 04
      자료형
    • 자료형의 종류와 특징
      문자열의 표현
      자료형의 변환
      강제 형 변환
    • 05
      콘솔 출력과 입력 함수
    • 콘솔 출력 함수(Print)
      콘솔 입력 함수(Scan)
      정돈된 표
      신상정보 입력과 출력
    • 06
      반복문 - for
    • 오로지 for
      구구단
      빛나는 이등변삼각형
    • 07
      조건문 - if/else
    • 조건에 따른 실행과 흐름 분기
      7과 9의 배수
      두 수의 차
    • 08
      분기문 - switch
    • swich문에 의한 선택적 실행
      안좋은 계산기
    • 09
      제어문
    • break, continue, goto문
      구구단2
      두 수를 더하면 99
    • 10
      컬렉션
    • 배열(Array)
      슬라이스(Slice)
      맵(Map)
      역행렬
      가장 긴 이름
      중간고사 평균 점수
    • 11
      함수
    • Go언어에서의 함수
      전역변수와 지역변수
      매개변수
      반환값(리턴값)
      익명 함수
      오름차순 정렬
      아이패드를 사주는 조건
      역학적 에너지
    • 12
      클로저
    • 외부 변수 접근 : 클로저
      동전 정리
    • 13
      구조체와 메소드
    • 구조체
      메소드
      성적 저장 프로그램
      역학적 에너지2
    • 14
      인터페이스(interface)
    • 메소드의 집합 인터페이스
      직육면체와 원기둥
    • 15
      defer와 panic()
    • 지연 처리 defer
      종료하는 panic(), 복구하는 recover()
      엘리베이터
      중간고사 평균 점수2
    • 16
      에러 처리
    • 에러 처리의 기본
      에러 출력 및 처리
      중간고사 평균 점수3
    • 17
      고루틴(Goroutine)
    • 비동기 프로세스의 기본
      고루틴의 활용
      고루틴 실습
    • 18
      채널(Channel)
    • 고루틴의 데이터 통로 : 채널
      비동기 채널과 버퍼
      동기 채널
      채널 닫기
      송신 전용, 수신 전용 채널
      채널 select문
      고루틴 실습2
      메시지 전송
      동기 채널 실습
      비동기 채널 실습
    • 19
      패키지(package)
    • 패키지의 개념
    • 20
      실전 프로젝트 - 마일리지 상점
    • 프로젝트를 시작하기 앞서
      실습모드에서 실습
      마일리지 상점의 주요 기능
      필수 구조체와 매인 메뉴
      잔여 수량, 잔여 포인트 구현
    • 21
      실전 프로젝트 - 주문하기, 장바구니 담기
    • 구매 구현(1)
      구매 구현(2)
      장바구니에 담기
      장바구니 확인(1)
      장바구니 확인(2)
    • 22
      실전 프로젝트 - 고루틴으로 배송하기
    • 배송 상태 확인(1)
      배송 상태 확인(2)
      배송 상태 확인(3)
      최종 코드
    변수의 선언과 초기화
    02 변수와 상수
    변수의 선언과 초기화

    드디어 Go언어의 개념을 알아보는 첫 강의입니다. 프로그래밍의 개념과 언어 자체의 기본 개념을 제외하고는 어느 언어, 어느 책이든 가장 먼저 배우는 용법은 바로 '변수'입니다. 왜냐하면 프로그램은 '값'이 있어야 그 존재 가치가 있기 때문입니다. 값을 입력, 출력하고 연산하기 위해서는 꼭 메모리 공간이 필요합니다. 그래서 맨 처음에 해야하는 것이 어떤 형의 값을 저장할 공간을 선언하는 것입니다. Go에서의 변수 선언 방식은 var 변수이름 변수형입니다. 그리고 변수를 선언한 곳에서 바로 초기값을 설정할 수 있습니다.

    그리고 Go에서 변수를 선언할 때 가장 큰 특징은 'Short Assignment Statement'라고 불리는 := 입니다. 이를 사용하면 별다른 형 선언 없이 타입 추론이 가능합니다. 굉장히 유용하게 쓰이니 잘 알아둬야 합니다.

    하지만 주의해야할 점은 이 용법은 함수(func) 내에서만 사용이 가능합니다. 따라서 함수 밖에서(전역 변수)는 꼭 var 키워드를 선언해줘야합니다. 

    아래 코드를 보면 a는 선언과 동시에 1로 초기화 됩니다. 그리고 cd는 오류없이 intstring이라는 자료형으로 자동 지정됩니다.

    go

    그리고 Go에서는 변수를 선언하고 초기값을 설정하지 않으면 'Zero value'로 설정됩니다. 앞으로도 Zero value는 자주 등장하니 숙지해둬야 합니다. bool 타입은 false, 숫자 타입은 0, string 타입은 ""(빈 문자열)으로 입니다. 

    변수의 선언부터 Go언어의 특징을 알 수 있습니다. 사실 변수의 선언 뿐만이 아니라 모든 선언에서 동일하게 적용됩니다. Go언어에서는 선언만 하고 쓰지 않았다면 에러를 발생하며 컴파일에 실패합니다. 이는 변수, 패키지, 함수 등 모든 선언에서 동일하게 적용됩니다. Go언어를 소개할 때 간결하고 가독성이 좋고 코드가 짧다고 했습니다. 따라서 이렇게 메모리를 아무 이유없이 차지하는 변수들에 대해 굉장히 단호합니다. 따라서 꼭 쓰이는 변수만 선언해야하며 값을 지울때는 선언한 모든 부분을 지워야 합니다.


    아래 변수를 선언하는 기본적인 코드를 바로 실행해보세요.

    go
    실행 결과를 확인해보세요!

    위에 첫 예시 코드를 보고 무언가 눈치 챈 수강생이 있을 겁니다. 바로 '주석'입니다. 주석은 컴파일 대상에서 제외시키는 용법으로서 프로그램 내에 삽입된 메모를 뜻합니다. 주석은 C언어와 동일합니다. //는 한 줄을 주석처리하고, /*  *//**/사이에 들어간 내용을 라인에 상관없이 전부 주석처리합니다.

    다른 언어와 마찬가지로 Go언어도 동일한 형의 변수를 한 번에 여러개 선언할 수 있습니다. 이때 변수의 개수와 초기화하는 값의 개수가 동일해야합니다. 만약 초기화하지 않는다면 모든 값을 초기화 하지 않아야합니다. 


    아래 여러 개의 변수를 한 번에 선언하고 초기화하는 코드를 바로 실행해보세요.

    go
    실행 결과를 확인해보세요!

    C와 C++ 언어와 비교해서 선언 방법에 차이가 있습니다. C 언어의 경우 int a와 같이 타입이 먼저 오는데 반해, Go언어는 이름이 먼저오고 그 다음에 타입이 옵니다. 타입을 검사하는 Java 같은 언어에서도 타입이 앞에 오기 때문에 약간은 생소할 수 있습니다. 이러한 선언 방식에 대해서는 인간의 언어에 좀 더 가깝게 하기 위해서 라는 의견이 있습니다. 예컨데 var a string은 "변수 a는 스트링이다."라는 식으로 해석 할 수 있기 때문에 좀 더 직관적이라는 주장입니다. var a string을 풀어 쓰면 "Variable a is string"이 되니 그럴 듯하다고 볼 수 있습니다.

    질문하기