본문 바로가기

전체 글

[묘공단] Tucker의 Go 언어 프로그래밍 26장 : 단어검색프로그램 목적 여러 텍스트파일에서 단어를 검색한다. 사용법 find 찾을단어 대상텍스트파일 주요패키지 os, path/filepath, strings, bufio 파일 목록을 가져오는 함수 아래소스는 실행할때 인수를 받아서, 해당 인수에 해당하는 파일목록을 출력하는 프로그램이다. //ch26/ex26.1//ex26.1.go package main import ( "fmt" "os" "path/filepath" ) func main() { if len(os.Args) < 3 { // ❶ 실행 인수 개수 확인 fmt.Println("2개 이상의 실행 인수가 필요합니다. ex) ex26.1 word filepath") return } word := os.Args[1] // ❷ 실행 인수 가져오기 files := os... 더보기
3장 Node.js와 익스프레스로 웹애플리케이션 서버 구현하기 3.1 OK를 반환하는 서버 만들기 3.2 라우터만들기 3.3 createServer() refactoring 하기 3.4 동적으로 응답하기 3.5 라우터 리팩터링하기 3.6 익스프레스 프레임워크 사용하기 3.7 익스프레스로 간단한 API서버 만들기 3.8 게시판 API 테스트하기 3.1 OK를 반환하는 서버 만들기 const http = require("http"); 로 http 모듈을 불러온다. const server = http.createServer(); 로 서버를 만들고, server.listen()으로 서버를 시작한다. 포트는 3000번이고, 3000번으로 http 요청시 OK를 보내주는 간단한 소스이다. const http = require("http"); const server = http.. 더보기
2장 Node.js로 백엔드 입문하기 node.js설치 (http://nodejs.org)  2.1 Node.js 소개Node.js는 V8엔진을 사용하는 서버측 자바스크립트 런타임 환경이다.기존에는 논블로킹/비동기 API를 서버환경에서 구현하는데 어려웠는데, Node.JS는 이벤트기반의 비동기 환경으로  쉽게 개발할수있도록 하여, 2009년에 발표되었다.2010년에는 npm이라는 패키지 매니저를 공개하였다.  웹프레임워크 기술에서 익스프레스가 3위를 차지할정도로 Node.js는 많이 사용된다.(익스프레스는 Node.js상에서 동작하는 웹 개발 프레임워크이다.) https://insights.stackoverflow.com/survey/2021#most-popular-technologies-webframe  2.2 Node.js는 서버에서 어.. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 24장~25장 24장 고루틴과 동시성 프로그래밍 25장 채널과 컨텍스트 24장 고루틴과 동시성 프로그래밍 Process : 컴퓨터에서 연속적으로 실행되는 컴퓨터 프로그램, 메모리에 올라와 실행되고 있는 프로ㅓ그램의 인스턴스 Thread : 프로세스내에서 실행되는 여러 흐름단위 컨텍스트 스위칭 : 실행중인 Thread가 다른 Thread로 교체되는것 Go언어는 멀티쓰레드를 지원한다, 24장에서는 어떻게 멀티쓰레드를 사용하는지에 대해서 배워볼수있다. 고루팅 사용법은 go 함수호출 로 사용할수있다. 아래 소스에서는 2개의 고루틴을 생성하여 동시에 실행되는 프로그램이다. //ch24/ex24.1/ex24.1.go package main import ( "fmt" "time" ) func PrintHangul() { hangu.. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 22장~23장 22장 자료구조 23장 에러핸들링 22장 자료구조 리스트의 기본적인 사용법 list.New()로 새로운 인스턴스를 만들어 PushBack, PushFront, InsertBefore, InsertAfter함수를 사용하여, 리스트의 여러위치에 요소를 삽입할수있다. Front(),Next()함수를 사용하여 각 요소별 순회가 가능하다. e는 List의 pointer변수이다. //ch22/ex22.1/ex22.1.go package main import ( "container/list" "fmt" ) func main() { v := list.New() // ❶ 새로운 리스트 생성 e4 := v.PushBack(4) // ❷ 리스트 뒤에 요소 추가 e1 := v.PushFront(1) // ❸ 리스트 앞에 요소.. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 20장~21장 20장 인터페이스 21장 함수고급편 20장 인터페이스 인터페이스의 구조는 아래소스와 같이 type 인터페이스명 interface { } 로 선언한다. type 키워드로 선언하기때문에 변수선언이 가능하다. 아래의 소스에서 Stringer라는 메서드를 만들었다. Student를 생성하여 , 해당 student를 stringer에 대입하여, stringer의 String()메서드를 호출하는 예제이다. //ch20/ex20.1/ex20.1.go package main import "fmt" type Stringer interface { // ❶ Stringer 인터페이스 선언 String() string } type Student struct { Name string Age int } func (s Studen.. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 18장~19장 18장 슬라이스 19장 메서드 18장 슬라이스 배열 : var a [4] int 슬라이스 : make([]byte,5) 아래 코드는 배열과 슬라이스의 차이, 슬라이스의 선언방법이다. var array [10]int // 배열선언 var slice []int // slice선언(길이가 0인 슬라이스) var slice1 = []int{1,2,3} // slice선언(길이가 3인 슬라이스) var slice2 = []int{1, 5:2 , 10:3} // {1,0,0,0,0,2,0,0,0,0,3} var array = [...]int{1,2,3} // array var slice = []int{1,2,3} // slice var slice = make([]int, 3) slice[1] = 5 var slic.. 더보기
[묘공단] Tucker의 Go 언어 프로그래밍 15장~17장 15장 문자열 Go에서 문자열의 타입명은 string이다. 문자열은 큰따옴표나 백쿼트로 묶어서 사용하는데, 백쿼트로 묶어서 사용하면 문자열안의 특수문자가 일반문자처럼 처리된다. (문자열 그대로 출력된다.) //ch15/ex15.1/ex15.1.go package main import "fmt" func main() { // ❶ 큰따옴표로 묶으면 특수 문자가 동작합니다. str1 := "Hello\t'World'\n" // ❷ 백쿼트로 묶으면 특수 문자가 동작하지 않습니다. str2 := `Go is "awesome"!\nGo is simple and\t'powerful'` fmt.Println(str1) fmt.Println(str2) } 큰따옴표로 문자열을 묶을경우 여러줄을 표현하려면 \n을 사용해야 .. 더보기