• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 기타게임 소스자료실
    • 기타게임 소스자료실 기타 ()
    • [Go 공식문서 한국어 정리] ⑯28. Go 자주 물어보는 질문(FAQ)

      • 오뉴노노
      • 2026.05.30 - 02:01 4

    https://go.dev/doc/faq

     

    [Go 공식문서 한국어 정리] ⑯28. Go 자주 물어보는 질문(FAQ)

     

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

     

    1. 서론

    이 문서는 Go에 대해 자주 물어보는 질문들을 정리한 FAQ입니다. Go의 설계 처험, 특징, 그리고 다른 언어와의 차이점에 대한 꺼밭을 벗기는 데 도움이 될 것입니다.

     

    2. 핵심 개념

    • Go는 2007년 Robert Griesemer, Rob Pike, Ken Thompson이 설계한 언어이며 2009년 공개 오픈소스가 되었습니다.
    • 단순성, 신뢰성, 효율성을 최우선으로 하며, 대규모 소프트웨어 개발을 위해 설계되었습니다.
    • 컴파일 속도, 실행 속도, 프로그래밍 쉽음의 세 가지를 모두 제공하려고 했습니다.

     

    3. 주요 내용 상세

     

    3.1 Go의 어어, 고유, 관향

    • Go의 조상은 C(기본 문법), Pascal/Modula(선언, 패키지), CSP(동시성)입니다.
    • 고퍼(gopher)는 Renée French가 설계한 마스코트입니다.
    • 언어 이름은 Go이며, Golang은 웹사이트 주소에서 비례한 호칭입니다.
    • 주요 설계 원칙: 단순성, 직교성(orthogonality), 자동화, 타이핑 감소.

     

    3.2 사용

    • Google은 Go를 내부에서 광범위로 사용하고 있으며, Docker와 Kubernetes도 Go로 작성되었습니다.
    • C/C++와 연동이 필요한 경우 cgo나 SWIG를 사용할 수 있습니다.
    • 대부분의 IDE와 에디터가 Go를 지원합니다. gopls를 통해 LSP를 지원합니다.

     

    3.3 설계 질문

    • 제네릭: Go 1.18부터 제네릭이 지원되었습니다.
    • 예외: Go는 try-catch-finally를 제공하지 않습니다. 다중 반환값과 error 타입을 사용해 오류를 처리합니다.
    • 어서션(assertion): Go는 어서션을 제공하지 않습니다. 프로그래머들이 적절한 오류 처리를 고민하도록 하기 위해서입니다.
    • 동시성: CSP(Communicating Sequential Processes)를 기반으로 하며, 고루틴과 채널을 제공합니다.
    • 고루틴: 스레드보다 가벼운 동시 실행 단위. 수키로밯자를 다룩하여 많은 고루틴을 생성할 수 있습니다.
    • 매프: 기<본적으로 동시접근에 안전하지 않습니다. 필요한 경우 sync.Map을 사용하거나 외부 무역화를 적용해야 합니다.

     

    3.4 타입

    • 객체지향: Go는 객체지향을 지원하지만 타입 계층이나 상속은 없습니다. 임베딩으로 유사한 효과를 낼 수 있습니다.
    • 인터페이스: 암물에 의한 약한 결합(implicit interface)을 사용합니다. 메서드를 구현하면 자동으로 인터페이스를 수행합니다.
    • 메서드 오버로딩: Go는 오버로딩을 지원하지 않습니다. 메서드 이름으로만 분리합니다.
    • len은 함수: len이 메서드가 아닌 함수인 이유는 기본 타입의 인터페이스를 방해하지 않기 위해서입니다.

     

    3.5 값

    • 암물적 숫자 변환: Go는 암물적 숫자 변환을 지원하지 않습니다. int와 int64은 다른 타입입니다.
    • 상수: 임의 정밀도의 이상적인 숫자이며, 타입이 없습니다. 변수에 할당할 때에만 특정 타입의 숫자가 됩니다.
    • 매프, 슬라이스, 채널은 참조형: 할당시 사본이 복사되지 않고 참조가 복사됩니다. 배열은 값입니다.
    • new vs make: new는 제로화된 메모리를 할당(포인터 반환), make는 슬라이스/매프/채널을 초기화(값 반환).

     

    3.6 포인터 및 할당

    • 모든 함수 인자는 값으로 전달됩니다. 포인터도 값으로 전달되므로 포인터의 사본이 복사되지 않습니다.
    • 인터페이스의 포인터: 인터페이스의 포인터는 의미없는 상황에서만 사용합니다.
    • 스택 vs 힙: 컴파일러가 함수 바깥에서 참조되지 않는다고 증명할 수 있으면 스택에, 그렇지 않으면 힙에 할당합니다. 탐색 분석(escape analysis)을 통해 일부 경우 스택에 배치할 수 있습니다.
    • 당일 함수의 지역변수에 대한 포인터를 받으면 일반적으로 힙에 할당되며, 탐색 분석을 통해 스택에 남길 수 있다면 스택에 배치할 수 도 있습니다.

     

    3.7 인터페이스 및 nil

    • 인터페이스는 타입(T)과 값(V)의 쌍으로 구현됩니다. 둘 다 nil이어야 인터페이스가 nil입니다.
    • nil 포인터를 인터페이스에 저장하면 (T=*int, V=nil)이므로 인터페이스는 nil이 아닙니다. 이게 흔한 nil 오류의 원인입니다.
    • 오류를 반환할 때는 항상 error 타입을 사용하여 이러한 문제를 피하십시오.

     

    4. 실전 활용

    • Go의 다양한 설계 결정에 대한 이해가 필요할 때 FAQ를 참고합니다.
    • 다른 언어의 경험을 Go로 옮기는 경우 이 FAQ가 도움이 됩니다.
    • 새로운 기능을 제안하기 전에 Go 1 호환성 약속과 설계 처험을 고려해야 합니다.
    • 표준 라이브러리의 소스코드와 Effective Go를 통해 관향을 배우십시오.

     

    5. 정리

    • Go는 단순성, 신뢰성, 효율성을 최우선으로 하는 언어입니다.
    • 다양한 설계 결정은 컴파일 속도, 실행 속도, 프로그래밍 쉽음의 밸런스를 맞추기 위해 내렸습니다.
    • 앞어야 할 것은 제네릭의 오버헐드, 앱물에 의한 약한 결합, 동시성을 위한 CSP 모델, 가비지 컬렉션, 그리고 다중 반환값을 통한 오류 처리입니다.

     

    #Go #Golang #FAQ #공식문서

    이 게시물을..
    N
    0
    0
    • [Rust 공식문서 한국어 정리] 150. Attribute Macros오뉴노노
    • 2
      오뉴노노

    오뉴노노 님의 최근 글

    [Rust 공식문서 한국어 정리] 184. PartialOrd 16 2026 06.08 [Rust 공식문서 한국어 정리] 183. Ord 13 2026 06.08 [Rust 공식문서 한국어 정리] 182. Eq 15 2026 06.08 [Rust 공식문서 한국어 정리] 181. PartialEq 15 2026 06.08 [Rust 공식문서 한국어 정리] 180. TryFrom 13 2026 06.08

    오뉴노노 님의 최근 댓글

    ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [Rust 공식문서 한국어 정리] 150. Attribute Macros
    • 목록
      view_headline
    × CLOSE
    전체 던파 5 뮤 18 천상비 프로젝트신루 5 아이온 18 어둠의전설 28 리니지2 7 크로노스 5 칼온라인 3 기타 490
    기본 (582) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 포인트 획득 공지
      5
      2026.04.24 - 19:48 4951 5
    • 링크 업로드 관련 공지
      8
      2026.03.25 - 21:56 4714 8
    • 인증메일 공지
      3
      2026.03.15 - 16:42 4606 3
    • 파일링크 및 인증메일 발송 관련 문의 안내
      9
      2026.03.14 - 22:03 5254 9
    • 포인트 게시판 안내
      2026.02.28 - 19:14 5995
    • 게임존 사이트 변경 사항 안내
      9
      2026.02.26 - 01:07 7854 9
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:16 853
    582
    기타
    [Rust 공식문서 한국어 정리] 184. PartialOrd
    오뉴노노 2026.06.08 - 15:42 16
    581
    기타
    [Rust 공식문서 한국어 정리] 183. Ord
    오뉴노노 2026.06.08 - 15:42 13
    580
    기타
    [Rust 공식문서 한국어 정리] 182. Eq
    오뉴노노 2026.06.08 - 15:42 15
    579
    기타
    [Rust 공식문서 한국어 정리] 181. PartialEq
    오뉴노노 2026.06.08 - 15:42 15
    578
    기타
    [Rust 공식문서 한국어 정리] 180. TryFrom
    오뉴노노 2026.06.08 - 15:42 13
    577
    기타
    [Rust 공식문서 한국어 정리] 179. TryInto
    오뉴노노 2026.06.08 - 15:42 11
    576
    기타
    [Rust 공식문서 한국어 정리] 178. From
    오뉴노노 2026.06.08 - 15:39 14
    575
    기타
    [Rust 공식문서 한국어 정리] 177. Into
    오뉴노노 2026.06.08 - 15:39 9
    574
    기타
    [Rust 공식문서 한국어 정리] 176. AsRef
    오뉴노노 2026.06.08 - 15:39 5
    573
    기타
    [Rust 공식문서 한국어 정리] 175. Deref
    오뉴노노 2026.06.08 - 15:39 4
    572
    기타
    [Rust 공식문서 한국어 정리] 174. Default
    오뉴노노 2026.06.08 - 15:39
    571
    기타
    [Rust 공식문서 한국어 정리] 173. Clone
    오뉴노노 2026.06.08 - 15:38
    570
    기타
    [Rust 공식문서 한국어 정리] 172. Copy
    오뉴노노 2026.06.08 - 15:38
    569
    기타
    [Rust 공식문서 한국어 정리] 171. Drop
    오뉴노노 2026.06.08 - 15:38
    568
    기타
    [Rust 공식문서 한국어 정리] 170. Weak
    오뉴노노 2026.06.08 - 15:37
    567
    기타
    [Rust 공식문서 한국어 정리] 169. Arc
    오뉴노노 2026.06.08 - 15:37
    566
    기타
    [Rust 공식문서 한국어 정리] 168. Rc
    오뉴노노 2026.06.08 - 15:37
    565
    기타
    [Rust 공식문서 한국어 정리] 167. Box
    오뉴노노 2026.06.08 - 15:36
    564
    기타
    [Rust 공식문서 한국어 정리] 166. str
    오뉴노노 2026.06.08 - 15:36
    563
    기타
    [Rust 공식문서 한국어 정리] 165. String
    오뉴노노 2026.06.08 - 15:36
    562
    기타
    [Rust 공식문서 한국어 정리] 164. HashMap
    오뉴노노 2026.06.08 - 15:36 1
    561
    기타
    [Rust 공식문서 한국어 정리] 163. Vec
    오뉴노노 2026.06.08 - 15:35
    560
    기타
    [Rust 공식문서 한국어 정리] 162. Result
    오뉴노노 2026.06.08 - 15:35
    559
    기타
    [Rust 공식문서 한국어 정리] 161. Option
    오뉴노노 2026.06.08 - 15:35
    558
    기타
    [Rust 공식문서 한국어 정리] 160. Iterators
    오뉴노노 2026.06.08 - 15:35
    557
    기타
    [Rust 공식문서 한국어 정리] 159. Closures
    오뉴노노 2026.06.08 - 15:35
    556
    기타
    [Rust 공식문서 한국어 정리] 158. Trait Objects
    오뉴노노 2026.06.08 - 15:34
    555
    기타
    [Rust 공식문서 한국어 정리] 157. Lifetimes
    오뉴노노 2026.06.08 - 15:34 1
    554
    기타
    [Rust 공식문서 한국어 정리] 156. Cargo.lock
    오뉴노노 2026.06.08 - 15:34
    553
    기타
    [Rust 공식문서 한국어 정리] 155. Cargo.toml
    오뉴노노 2026.06.08 - 15:34 1
    552
    기타
    [Rust 공식문서 한국어 정리] 154. Workspaces
    오뉴노노 2026.06.08 - 15:34
    551
    기타
    [Rust 공식문서 한국어 정리] 153. Crates
    오뉴노노 2026.06.08 - 15:33
    550
    기타
    [Rust 공식문서 한국어 정리] 152. Modules
    오뉴노노 2026.06.08 - 15:33
    549
    기타
    [Rust 공식문서 한국어 정리] 151. Proc Macros
    오뉴노노 2026.06.08 - 15:32 1
    548
    기타
    [Rust 공식문서 한국어 정리] 150. Attribute Macros
    오뉴노노 2026.06.08 - 15:32
    547
    기타
    [Rust 공식문서 한국어 정리] 149. cfg
    오뉴노노 2026.06.08 - 15:32
    546
    기타
    [Rust 공식문서 한국어 정리] 148. assert
    오뉴노노 2026.06.08 - 15:31
    545
    기타
    [Rust 공식문서 한국어 정리] 147. panic
    오뉴노노 2026.06.08 - 15:27
    544
    기타
    [Rust 공식문서 한국어 정리] 146. Error
    오뉴노노 2026.06.08 - 15:24
    543
    기타
    [Rust 공식문서 한국어 정리] 145. Any
    오뉴노노 2026.06.08 - 15:22
    542
    기타
    [Rust 공식문서 한국어 정리] 144. Unpin
    오뉴노노 2026.06.08 - 15:19
    541
    기타
    [Rust 공식문서 한국어 정리] 143. Pin
    오뉴노노 2026.06.08 - 15:17 2
    540
    기타
    [Rust 공식문서 한국어 정리] 142. LazyLock
    오뉴노노 2026.06.08 - 15:14 1
    539
    기타
    [Rust 공식문서 한국어 정리] 141. OnceCell
    오뉴노노 2026.06.08 - 15:11
    538
    기타
    [Rust 공식문서 한국어 정리] 140. Atomic
    오뉴노노 2026.06.08 - 15:06
    537
    기타
    [Rust 공식문서 한국어 정리] 139. RwLock
    오뉴노노 2026.06.08 - 14:34 3
    536
    기타
    [Rust 공식문서 한국어 정리] 152. Modules
    오뉴노노 2026.06.08 - 14:00
    535
    기타
    [Rust 공식문서 한국어 정리] 151. Proc Macros
    오뉴노노 2026.06.08 - 14:00
    534
    기타
    [Rust 공식문서 한국어 정리] 150. Attribute Macros
    오뉴노노 2026.06.08 - 14:00 3
    533
    기타
    [Rust 공식문서 한국어 정리] 149. cfg
    오뉴노노 2026.06.08 - 14:00 3
    • 1 2 3 4 5 6 7 8 9 10 .. 12
    • / 12 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay