Function 

Function함수는 독립적으로 실행할 수 있는 코드로 입력을 받아서 처리하고 출력하는 일을한다. 프로시져(procedures)이나 서브루틴(subroutin)이라고 부르기도 한다. 함수는 종종 블랙박스로 표현한다. Go에서 가장 유명한 함수는 아마도 main 함수일 것이다. 독립적으로 실행되는 모든 go 프로그램은 반드시 하나의 main 함수를 포함해야...

Go - Concurrency 

Go - Concurrency개념적으로 고루틴(Gorutines)은 thread, coroutines, processes 등과 혼동될 수 있다. 용어에 따른 개념의 혼란을 피하기 위해서 "고루틴"이라는 새로운 용어를 만들었다고 한다. 실제 사용하다보면, 멀티 스레드, 멀티 프로세스 등과 비슷하면서도 해석과 사용에 미묘한 차이가 있음을 알 수 있다. 고루틴...

Array, Slice, Map 

Array, Slice, MapGo 언어는 Number, String, Boolean의 기본 타입외에, 배열(array), 슬라이스(slice), 맵(map)와 같은 추상화된 데이터 타입을 지원한다. 배열은 동일한 형식의 데이터들의 연속으로 구성된, 데이터 형식이다. Go 배열은 다음과 같이 선언한다. var x int5개의 int형 데이터를 저장할 수 ...

golang 

Go는 시스템/네트워크 프로그램을 개발 할 목적으로 만들어진 범용 프로그래밍 언어(general-purpose languge)다. 2007년 구글의 엔지니어인 Roert Griesemer, Rob Pike, Ken Thompson 에 의해서 개발이 시작됐다. Go는 가비지 컬랙션과 concurrent 프로그래밍을 지원하는 정적 타입의 언어다. 디펜던시 관리...

git 

Git은 소프트웨어 개발에서 발생하는 소스 코드의 변화를 추적하기 위한 분산 버전 관리 시스템이다. 프로그래머 간의 소스코드 작업을 조정하기 위해서 설계되었지만 바이너리 파일을 포함한 모든 파일의 변경 사항을 추적하는데 사용 할 수 있다. Git의 목표는 속도, 데이터 무결성, 분산 워크플로우의 지원이다. Git은 리누즈 토발즈(Linus Torvalds...

Foundation css framework 

Foundation css framework은 부트스트랩과 비슷한 CSS 프레임워크다. Grid(레이아웃 시스템), 버튼, 네비게이션 바, 리스트, 아이콘, 폼, 자바스크립트 확장 등, 웹 서비스와 웹 애플리케이션 개발을 위한 대부분의 요소들을 지원한다.나는 웹 프로그래머 혹은 웹 디자이너가 아니라서, 굳이 이런 프레임워크를 익힐 필요는 (지금까지는)없었...

DMZ 

DMZ일반적으로 DMZ(Demilitarized zone)은 "비무장 지대"라고 해석한다. 하지만 컴퓨터 네트워크 영역에서는 퍼블릭 네트워크와 사설 네트워크 사이의 완충지대를 의미한다. 프라이빗 네트워크영역에는 데이터베이스, 스토리지, WAS와 같은 외부로 부터 보호해야 하는 컴퓨팅 자원을 두고, DMZ에는 웹 서버, 메일서버, FTP 서버, DNS와 같...

berkeley socket api 

berkeley socket apiberkely socket(Berkely sockets 는 BSD socket API 로도 알려져 있다. 1983년 개발된 4.2 BSD Unix(BSD socket 은 C언어를 위해서 개발되었으나 그 인터페이스가 표준으로 사용되고 있는고로 다른 언어들도 C언어의 인터페이스를 비슷하게 따르고 있다. BSD socket은 ...

원자화 

원자화signal(신호)의 도착에 의해 작업이 중단되지 않음을 의미한다. 어떤 자원 s가 있고, s를 변경할 수 있는 p와 v연산이 있을 때, 한 순간에 오직 하나의 프로세스만이 s를 변경할 수 있는 것을 의미한다.원자화된 연산. 한 순간에 하나의 프로세스만 a의 값을 변경할 수 있다.a = a + 1;원자화 되지 않은 연산. sleep(1)는 시그널의 ...

TDD - Test Driven Development 

툴을 완벽하게 다루지 않더라도 쓸모가 있을 수 있다. 어떤 툴은 대략 다루는 정도로도 큰 쓸모가 있을 수 있다. 테스트 주도 개발(Test-driven development)라고 부르는 TDD가 그렇다. 소프트웨어는 유동적이고 예측하기 어렵다. 시장이 어떤 방식으로 변할지 모르기 때문에, 변화에 대응하면서 짧은 주기로 완성된 소프트웨어를 시장에 내놓을 수 ...