보통 go install을 실행하면 ~/go/bin에 실행파일이 생성된다. 만약 ~/other_go라는 프로젝트를 생성하고 여기서 go install을 하면 ~/other_go/bin 디렉토리에 실행파일이 생성되는 것이 아니라 ~/go/bin 프로젝트에 실행파일이 생성된다. ~/other_go/bin 디렉토리에 실행파일을 생성하고 싶으면 GOBIN=(other_go/bin 파일의 절대경로) go install 하면 된다. GOBIN=(other_go/bin 파일의 절대경로) go install 그럼 위와 같이 실행파일이 생성된 것을 확인할 수 있다.
변수 선언 var 변수명 타입 go에서 변수를 선언할 때는 var 키워드를 사용하고 변수명 타입 순서대로 선언한다. 이렇게 선언을 하면 변수를 X 타입으로 선언한다라고 읽는 점에서 자연스럽다는 장접이 있다. go에서 변수 값을 지정하지 않으면 기본 값으로 0이 지정된다. (문자열도 기본값이 지정되는데 ""이 저장된다) var 변수명1, 변수명2, 변수명3 타입 같은 타입이면 ,(콤마)를 사용하여 여러 개의 변수를 한번에 선언할 수 있다. var ( 변수명1 타입1 변수명2 타입2 변수명3 타입3 ) 한번에 여러 개의 다른 타입의 변수를 선언할 때는 (소괄호)를 사용하여 선언할 수 있다. var v1 = true var v2 = uint16(6) 변수 선언과 동시에 값을 할당하면 타입을 지정하지 않아도 된..
개발을 할 디렉토리를 생성한다. 개발을 할 디렉토리를 생성했다면 그 아래에 src, pkg, bin 이름으로 3개의 디렉토리를 생성한다. src: Go 소스 파일 pkg: 패키지 파일 (확장자: .a) bin: 실행 파일 package main // package 선언 import "fmt" // 외부 패키지 import func main() { fmt.Println("Hello World!") } src 폴더 아래에 hello 디렉토리를 생성하고 hello.go이름으로 위의 파일을 생성한다. Go 코드는 패키지 선언으로 시작한다. Go 패키지는 모듈과 라이브러리와 유사하게 코드를 구조화하고 재사용하기 위한 단위이다. main 패키지는 프로그램의 시작점 역할을 한다. Go의 기본 라이브러리인 fmt 패키..
Go 언어의 특징 간결하고 유연한 문법 코드가 단순하고 가독성이 높음 상태를 표현하는 타입과 동작을 표한하는 메서드를 분리하여 정의하여 이를 바인딩하여 객체를 표현 ⇒ 느슨한 결합 방식으로 자유롭게 객체 기반의 프로그래밍이 가능 구조체(struct)는 상속을 할 수 없음 구조체가 다른 구조체를 포함하는 임베디드 타입으로 정의 가능 상속 관계로 인하여 프로그램이 복잡해 지는 것을 방지 조합으로 코드를 재사용 병행 프로그래밍 코드를 병렬로 동작하게 하여 멀티 코어의 이점을 활용 가능하게 해줌 메모리를 동기화 하는 것이 아닌 CSP(Communcating Sequential Process) 방식 기반으로, 메시지를 전달하는 방식으로 동기화 동시에 독립적으로 실행되는 흐름의 단위인 고루틴으로 실행하여 동시에 작..
mapping key-value 값을 저장하는데 사용 mapping(_KeyType => _ValueType) _VariableName과 같이 선언 key의 값으로는 사용자 정의 타입이나 complex 타입을 제외한 기본 타입만 가능 value로는 어떤 타입이든 가능 // SPDX-License-Identifier: MIT pragma solidity ^0.7.6; contract NestedMapping { // 1. address로 maaping을 가져온다. // 2. 1에서 가져온 mapping에서 uint로 bool 타입의 값을 가져온다 mapping(address => mapping(uint => bool)) public nested; function get(address _addr1, uint..
Functions 함수는 contract의 안과 밖에 선언될 수 있음 free functions contract 밖의 함수 암묵적으로 internal visibitlisy를 가짐 호출하는 contract에 코드가 포함됨 storage variable과 범위에 포함되지 않은 function에 직접 접근이 불가능 // SPDX-License-Identifier: GPL-3.0 pragma solidity >0.7.0 = 10); found = true; } } Function Parameters and Return Variable 함수의 파라미터는 타입을 가짐 임의 개수의 값을 반환 Function Parameter 변수과 같은 방식으로 선언됨 사용되지 않는 매개변수의 이름은 생략 가능 function fu..
Function Modifiers 함수의 동작을 변경하기 위해 사용 contract에서 상속 가능 virtual인 경우에만 derived contract에서 재정의 가능 // SPDX-License-Identifier: GPL-3.0 pragma solidity >0.7.0 = price) { \_; } } } contract Register is priced, destructible { mapping (address => bool) registeredAddresses; uint price; constructor(uint initialPrice) { price = initialPrice; } // payable 키워드가 없다면 Ether가 보내는 것을 모두 거절 function register() pub..
Contract 객체 지향 언어의 클래스와 유사 Creating Contracts contract가 생성되면 생성자(constructor키워드와 선언된 함수)가 한 번 실행됨 constructor은 선택 사항 -> default constructor constructor은 하나만 가능(오버로드가 지원되지 않음) constructor가 실행된 후, contract의 최종 코드가 블록체인에 저장됨 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.4.22 =0.4.16 =0.4.16 f는 private c.setData(3); local = c.getData(); local = c.compute(3, 5); // error: member `compute` i..
continue, pass, break는 파이썬에서 제어 흐름에 사용되는 stattement이다. continue continue는 반복문에서 다음 순번의 loop를 실행하도록 한다. continue 다음의 코드는 실행되지 않는다. for num in range(2, 10): if num % 2 == 0: print("Found an even number", num) continue print("Found an odd number", num) ''' Found an even number 2 Found an odd number 3 Found an even number 4 Found an odd number 5 Found an even number 6 Found an odd number 7 Found an ..
- Total
- Today
- Yesterday
- string
- hashcode
- 코딩테스트
- 확장 함수
- git
- squash merge
- mysql
- 네이버 2022 공채
- Python
- solidity
- java
- go 특징
- Kotlin In Action
- DGS Framework
- graphql
- Squash and merge
- 주생성자
- github
- python3
- pm.expect
- 2차 인터뷰
- postman collection
- Basic Type
- postman
- 코틀린
- downTo
- pm.test
- 1차 인터뷰
- postman tests
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |