File tree 2 files changed +65
-0
lines changed
2 files changed +65
-0
lines changed Original file line number Diff line number Diff line change 13
13
` go clean main.go `
14
14
15
15
- cleaning object and cache
16
+
17
+ ## string formatt
18
+
19
+ - %v : 구조체의 값을 출력한다.
20
+ - %+ek. : 구조체의 필드이름과 값을 출력한다.
21
+ - %#g : 호출된 함수이름과 구조체의 이름 같은 소스코드 정보까지 함께 출력한다.
22
+ - %T : 타입을 출력한다.
23
+ - %t : 불리언의 값을 true 혹은 false 문자열로 출력한다.
24
+ - %d : Integer 값을 출력하기 위해서 사용한다. 10자리 크기의 정수를 포함한 문자열 형식을 가진다.
25
+ - %b : 이진(바이너리)값을 출력한다.
26
+ - %c : 정수에 해당하는 문자를 출력한다.
27
+ - %x : Hex 인코딩 값을 출력한다.
28
+ - %f : 부동 소숫 점 값을 출력한다.
29
+ - %e : 과학적 표기법으로 출력한다.
30
+ - %E : 과학적 표기법으로 출력한다. %e와 다른점은 e가 대문자인지 소문자인지
31
+ - %s : 문자열을 출력할 때 사용한다. %d와 더불어 가장 많이 사용하는 옵션
32
+ - %q : 문자열에 있는 쌍다움표를 그대로 출력한다.
33
+ - %x : 먼저 값을 integer로 변환한 다음 16비트 문자열로 변환해서 출력한다.
34
+ - %p : 포인터의 주소 값을 출력한다.
35
+ - %nd : 포맷팅에 사용하는 숫자 n을 이용해서 출력 할 넓이를 설정할 수 있다. %6d인 경우 6칸의 넓이를 가진다. 채우지 못한 곳은 왼쪽 부터 스페이스 문자로 채워진다.
36
+ - %-nd : %nd와 달리 왼쪽부터 데이터가 채워지고 나머지 공간을 스페이스 문자가 채운다.
Original file line number Diff line number Diff line change
1
+ // 127.0.0.1 주소에서 랜덤 포트에 수신 대기 중인 리스너 생성
2
+ package monolib
3
+
4
+ import (
5
+ "net"
6
+ "testing"
7
+ )
8
+
9
+ func TestListen (t * testing.T ) {
10
+ // listener 와 err 를 리턴 받습니다.
11
+ // listener 는 net.Listener 인터페이스를 구현한 객체입니다.
12
+ // err 는 error 인터페이스를 구현한 객체입니다.
13
+ // net.Listen 은 net 패키지의 Listen 함수를 호출합니다.
14
+ // Listen 함수는 "tcp" 네트워크 프로토콜을 사용합니다.
15
+ // 포트를 표기하거나 0으로 하면 무작위 포트를 사용합니다.
16
+
17
+ // := 는 변수 선언과 초기화를 동시에 합니다.
18
+ // := 는 변수를 선언하고 초기화하는 것이기 때문에
19
+ // 변수를 선언하고 초기화하는 것이 아니라면 := 를 사용할 수 없습니다.
20
+ // := 는 함수 내에서만 사용할 수 있습니다.
21
+
22
+ listener , err := net .Listen ("tcp" , "127.0.0.1:0" )
23
+
24
+ // 에러가 발생하면 테스트를 실패합니다.
25
+ // 에러가 발생하지 않으면 테스트를 성공합니다.
26
+ if err != nil {
27
+ t .Fatal (err )
28
+ }
29
+
30
+ // defer 는 함수가 종료되기 직전에 실행됩니다.
31
+ // defer 은 역순으로 진행됩니다.
32
+ // defer 는 함수 내에서만 사용할 수 있습니다.
33
+ // defer 는 함수가 종료되기 직전에 실행되기 때문에
34
+ // 리소스를 해제하는 용도로 사용합니다.
35
+ // 명시적으로 리소스를 해제하지 않는다면 메모리 누수가 발생하거나
36
+ // Accept 메서드가 무한정 블로킹되는 데드락이 발생할 수 있습니다.
37
+
38
+ // _ 는 무시할 값을 의미합니다.
39
+ defer func () { _ = listener .Close () }()
40
+
41
+ // listener.Addr()의 반환값은
42
+ // %q 는 쌍따옴표로 묶인 문자열을 표시합니다.
43
+ t .Logf ("bound to %q" , listener .Addr ())
44
+ }
You can’t perform that action at this time.
0 commit comments