한 눈에 끝내는 고랭 기초
    • 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)
      최종 코드
    고루틴 실습2
    배우기
    18 채널(Channel)
    고루틴 실습2

    고루틴 챕터에서 비동기 함수 실행을 연습해보기 위해 고루틴 연습 실습을 해봤습니다. 그런데 아무런 장치가 없이 그냥 고루틴을 실행하면 실행 흐름이 제각각이라 일종의 장치가 필요하다고 했습니다. 그래서 사용한 장치는 WaitGroup과 time.Sleep()과 같은 함수였습니다. 이는 단지 수동적인 코드 흐름 지연과 같은 방법입니다. 이는 고루틴과 데이터 흐름이 많아지면 절대 직관적으로 해결할 수 없습니다.

    따라서 채널 챕터에서 채널을 학습하고 고루틴간 데이터 송/수신과 데이터 흐름을 제어하는 것을 알았습니다. 이전 챕터에서 '고루틴 연습'에 채널 기능을 넣어 주먹구구식 고루틴 대기 흐름을 수정해봅니다.

    main() 함수에서 선언된 두 변수를 포인터 변수로 받아와 add() 함수에서 덧셈 연산하고 main() 함수에서 결괏값을 출력하는 실습을 해봅니다.


    아주 간단한 코드지만 채널에 대한 정확한 이해를 하지 않으면 굉장히 헷갈릴 수 있습니다.

    실습 내용
    • main() 함수에서 num1, num2 int형 변수를 선언하고 int형 채널을 생성합니다.
    • 사용자에게 num1과 num2를 입력받습니다.
    • add() 함수는 main()에서 생성한 채널과 num1, num2를 전달 인자로 호출합니다.
    • add() 함수에서는 전달받은 두 변수를 더하고 채널에 송신합니다.
    • main() 함수에서 채널 수신 및 결괏값을 출력합니다.
    • add()는 선언 함수입니다. main() 함수 밖에 선언해서 main() 함수에서 호출하는 것입니다.
    • hint : 고루틴이 몇 개 필요할 지 잘 생각해보세요.


    입력


    첫 번째 줄에 덧셈할 두 숫자를 띄어쓰기 해서 입력합니다.


    출력


    덧셈의 결괏값을 출력합니다.

    입/출력 예시
    :
    공백
    :
    줄바꿈
    :
    예시 1
    입력
    105
    출력
    15
    ⋇ 입출력 형식을 잘 지켜주세요
    질문하기