loading
본문 바로가기

반응형
Language 15
반응형

[Python] 파이썬을 쓰는 이유 안녕하세요. 파이썬을 쓰는 이유 로 돌아온, 개발자 김모씨 입니다. 가장 '우아한' 언어라고 불리는 프로그래밍 언어죠. 파이썬 입니다. 파이썬은 네델란드 출신의 '귀도 반 로섬'이라는 분에 의해 개발되었는데요. Microsoft와의 인터뷰에 따르면, '심심한 김에' 만들었다고 하죠.....(천재는 심심하면 세상을 바꾼다!) 크리스마스 주에 연구실이 닫혀있어서, 집에서 만들었다고 합니다. ㄷㄷㄷㄷㄷ 비슷한 사례로, 리눅스를 만든 '리누스' 라는 분도 계십니다. 리눅스도 핀란드 헬싱키 공대의 대학생이었던 리누스 토르발스가 심심해서 만든 OS로 유명합니다. (천재X들....) 초기에는 다소 불안정했지만, 대기업들이 리눅스 개발을 지원하는 등 발전을 거듭해 갓급의 OS로 재탄생했죠! 귀도반로섬은 유럽 쪽에서는 .. 2020. 9. 17.
[Go] Go언어 Channel (혹시 고루틴 포스팅을 보지 않으신 분은 먼저 훑고 오시길....) artist-developer.tistory.com/14?category=951423 [Go] 고루틴(go-routine) 앞서 Go언어 입문에 포스팅하였듯, Go언어의 대표적 특징 중 하나에는 병행성이 있다. Go언어는 'go' 키워드를 사용하여, 고루틴을 만드는데, 여기서 고루틴은 비동기적(asynchronously)으로 특정 함수 artist-developer.tistory.com 우리는 이제 Go언어에서 병행성(Concurrency)을 어떻게 보장하는지 알게 되었다. 이처럼 병행성이 보장된 Multi-thread와 같은 환경에서 가장 중요한 것은 동기화(Synchronous) 이다. Thread 간에 데이터를 공유하고 실행 순서를.. 2020. 9. 14.
[Go] 고루틴(go-routine) 앞서 Go언어 입문에 포스팅하였듯, Go언어의 대표적 특징 중 하나에는 병행성이 있다. Go언어는 'go' 키워드를 사용하여, 고루틴을 만드는데, 여기서 고루틴은 비동기적(asynchronously)으로 특정 함수 루틴을 실행하므로, 여러 함수(또는 코드)가 동시에(Concurrently) 실행된다.(병행성의 만족) 병행성(Concurrency) 흔히들 병렬성(Parallelism)과 병행성(Concurrency)을 혼동하곤 한다. 병렬성은, 실제로 여러 작업을 동시에 수행하는 것을 의미한다. 병행성은, 마치 여러 일을 동시에 하듯이 수행하는 것을 의미한다. 쉬운 예로 둘을 비교해보자. 이 글을 적고 있는 필자는 현재, '커피를 마시면서' '포스팅'을 하고 있다. 하지만 여기서, 커피를 마시는 일과 포스.. 2020. 9. 13.
[Go]GO 가비지 컬렉션(Garbage Collection) 저번 포스팅에 이어, Go의 대표적인 특징 중 하나인 가비지 컬렉션에 대해 알아보자. 가비지 컬렉터(GC)란? GO 언어의 이야기를 하기에 앞서, 먼저 가비지 컬렉터가 무엇인지 알아야한다. 여기서 가비지란, '유효하지 않은 메모리 주소', '해제되지 않은 메모리 영역'를 의미한다. 프로그래밍 언어에서는 보통 Danling Object라고 불리며, Java나 Go 에서는 Garbage라는 용어를 사용하고 있다. 우리에게 가장 친숙한 C/C++에서 그 예를 찾아보자면, //c++ int main(void) { int *a = new int; return 0;//Pointer를 해제하지 않고 프로그램 종료 : 메모리 누수 발생 } int* 에 할당된 메모리를 해제 하지 않고 프로그램을 종료하였다. C/C++에.. 2020. 9. 11.
[Go] Go 언어 강 타입(strongly-typed) 앞서 Go 언어의 대표적인 특징에서 언급한 것처럼, Go 언어는 강타입(strongly-typed) 언어이다. 프로그래밍 언어를 배우거나 다루다보면, 강타입/약타입이란 용어가 빈번하게 등장하곤 한다. 본 포스팅 에서는 이 용어가 의미하는 것이 무엇인지, 그리고 Go 언어에서는 이러한 특징이 어떠한 형태로 나타나는지를 알아볼 것이다. 강타입과 약타입 앞 포스팅에서 언급하였듯, 프로그래밍 언어에서 '타입'이란 자료형을 의미한다. 또한 여기에서의 강과 약이란, 자료형의 변환을 기준으로 구분된다. 흔히 Type Casting 또는 Type Conversion이라고 불리는 형변환은 언어를 능숙하게 다루기 위해서 반드시 숙지하여야 할 개념이다. (구글에 C++을 치면 'C++ int to string'. 'C++ .. 2020. 9. 9.
[Go]Go 언어 정적타입(static type) 앞서 소개 글에서 언급하였듯, Go 언어의 대표적인 특성 중 핵심은 정적타입 이면서 강타입 이라는 것에 있다. 프로그래밍 언어에서 타입이란, 자료형을 의미한다. 정적 타입 vs. 동적 타입 프로그래밍 언어는 바인딩 시기에 따라, 정적 타입과 동적 타입으로 나뉜다. 정적 타입 언어는 자료형을 지정하여, 컴파일 시에 변수의 형이 결정되는 언어이다. ex) C, C++, JAVA, C# 등 //C++ int num1 = 3; float num2 = 4.6f; double num3 = 3.23d; char ch = 's'; string str = "abc" string str_test = 1.2f; //컴파일 에러(자료형) //컴파일 시 자료형 결정 변수를 선언할 때, 반드시 앞에 타입을 명시해야 하는 언어들은.. 2020. 9. 7.