728x90
반응형

함수형 프로그래밍에 대한 개념을 이해하고 정리하여 문서로 남기기위해 검색을 하는 도중 다음과 같은 좋은 변역 블로그를 발견했다. 관심있으시면 한번 읽어보고 개념을 잡아보기 바란다.

프로그래밍 패러다임은 크게 2가지로 분류되고 세부적으로 분류하면 3가지로 분류할수 있다.

절차지향, 객체지향, 함수형 프로그래밍

각 패러다임의 단점들을 보완하기위해 순차적으로 발전된 형태로 진화하고 있는것인데 그렇다고해서 오른쪽의 것이 항상 좋은것은 아니다. 각각의 장단점이 존재하기 때문에 프로젝트 규모나 성향에 따라서 잘 선택해서 사용해야 한다.

아직 함수형 프로그래밍에 대해 익숙하지 않은데다가 어떤 단점이 있는지 조사하고 확인 중이라 함수형 프로그래밍이 다른것 보다는 좋다고 말할 수는 없을것 같은데 아래의 글들을 읽고나니 어느정도 감이 잡힌다.

블로그 주인장의 다음 요약글 중에 CPU에 관한 글이 앞으로 함수형 프로그래밍 패러다임을 배워야 할 당위성 중에 가장 와 닫는다. 그리고 관심있게 공부하고 있는 RUST 언어의 특성 중 가변 속성이 아닌 불변 속성을 지향 하는 이유도 이해할 수 있었다.

https://front-end.me/javascript/functional-programming-6/ 원문 중에서

단기간 학습해서 사용하겠다는 개념으로 접근할게 아니라 긴 호흡으로 이해하고 연습하고 적용해야 할 것 같아보인다. 

 

https://front-end.me/javascript/functional-programming-1/

 

[번역] 함수형 프로그래밍 전문가 되기 (Part 1)

이 글은 Charles Scalfani의 So You Want to be a Functional Programmer (Part 1) 를 번역한 게시물입니다. Thank you Charles Scalfani! Thanks to your writing, I can grow further as a developer…

front-end.me

https://front-end.me/javascript/functional-programming-2/

 

[번역] 함수형 프로그래밍 전문가 되기 (Part 2)

이 글은 Charles Scalfani의 So You Want to be a Functional Programmer (Part 2)를 번역한 게시물입니다. Thank you Charles Scalfani! Thanks to your writing, I can grow further as a developer. 함수형 프로그래밍의 개념을 이해하기

front-end.me

https://front-end.me/javascript/functional-programming-3/

 

[번역] 함수형 프로그래밍 전문가 되기 (Part 3)

이 글은 Charles Scalfani의 So You Want to be a Functional Programmer (Part 3)를 번역한 게시물입니다.  Thank you Charles Scalfani! Thanks to your writing, I can grow further as a developer. 함수형 프로그래밍의 개념을 이해하기

front-end.me

https://front-end.me/javascript/functional-programming-4/

 

[번역] 함수형 프로그래밍 전문가 되기 (Part 4)

이 글은 Charles Scalfani의So You Want to be a Functional Programmer (Part 4)를 번역한 게시물입니다.  Thank you Charles Scalfani! Thanks to your writing, I can grow further as a developer. 함수형 프로그래밍의 개념을 이해하기

front-end.me

https://front-end.me/javascript/functional-programming-5/

 

[번역] 함수형 프로그래밍 전문가 되기 (Part 5)

이 글은 Charles Scalfani의 So You Want to be a Functional Programmer (Part 5)를 번역한 게시물입니다. Thank you Charles Scalfani! Thanks to your writing, I can grow further as a developer. 함수형 프로그래밍의 개념을 이해하기

front-end.me

https://front-end.me/javascript/functional-programming-6/

 

[번역] 함수형 프로그래밍 전문가 되기 (Part 6)

이 글은 Charles Scalfani의 So You Want to be a Functional Programmer (Part 6)를 번역한 게시물입니다. Thank you Charles Scalfani! Thanks to your writing, I can grow further as a developer. 함수형 프로그래밍 컨셉들을 이해하는

front-end.me

 

 

https://onlyfor-me-blog.tistory.com/431

 

함수형 프로그래밍이란?

Rxjava, RxAndroid를 공부하는 중인데 둘을 공부하다 보면 함수형 프로그래밍이란 말이 매우 자주 보이고, Rx를 공부하려면 함수형 프로그래밍에 대한 이해가 필요해 보여 따로 정리해둔다. https://ko.w

onlyfor-me-blog.tistory.com

 

https://okayoon.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84%EB%AA%85%EB%A0%B9%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%A0%88%EC%9E%90%EC%A0%81-%EA%B0%9D%EC%B1%84%EC%A7%80%ED%96%A5-%EC%84%A0%EC%96%B8%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%ED%95%A8%EC%88%98%ED%98%95%EC%9D%98-%EC%A0%95%EC%9D%98-%ED%8A%B9%EC%A7%95-%EB%B9%84%EA%B5%90%EB%A5%BC-%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%95%8C%EC%95%84%EA%B0%80%EC%9E%90

 

프로그래밍 패러다임(명령형 프로그램(절자적, 객채지향), 선언형 프로그램(함수형))의 정의, 특

프로그래밍의 관점을 갖게하고 결정하는 역할인 프로그램의 패러다임에 대해 알아보겠습니다. 발전하게 된 순서는 '절차적 -> 객체지향 -> 함수형'으로 단점들을 극복을 위해 나왔다고 합니다.

okayoon.tistory.com

 

728x90
728x90
반응형
동시성 : 한번에 두 가지 이상의 작업을 수행
> 멀티스레딩 : 다수의 실행 스레드를 사용하는 동시성의 한 형태 (동시성의 한 형태)
> 병렬 처리 : 많은 작업을 여러 스레드에 나눠서 동시에 수행 (멀티스레딩의 한 형태)
> 비동기 프로그래밍 : 불필요한 스레드의 사용을 피하려고 Future나 Callback을 사용 (동시성의 한 형태)
> 리액티브 프로그래밍 : 애플리케이션의 이벤트에 대응하게 하는 선언형 프로그래밍 형식

 

흠.. 일단 만들어야 할게 급해서 정리는 차후로 미루도록 하겠다.

끄으으응.

 

728x90
728x90
반응형

아시아 사향 고양이

네이버 검색

 

C# 동시성 프로그래밍 2/e : 네이버 통합검색

'C# 동시성 프로그래밍 2/e'의 네이버 통합검색 결과입니다.

search.naver.com

 

특정 업체 소개할 생각이 없으므로 네이버 검색으로 대체한다.

 

책을 읽을때  본문이전에 책에대해서 설명해 놓은 글을 꼼꼼히 읽어보는 편이다.

- 책이 담고 있는 내용 요약

- 구독자의 필요지식 수준

- 책을 쓴 이유

- 책의 목차와 구성

 

책을 읽을 방향성과 내가 지금 이 책을 읽을 단계인가를 확인하는게 완독의 지름길이기 때문이다.

이 책은 최신 동시성 기법만을 다루고 있다. 따라서 기존의 동시성 기법에 대한 지식이 필요하다면 다른 서적이나 정보로 습득하자, 병렬, 비동기, 리액티브 프로그래밍 등 다양한 종류의 동시성을 다루지만, 다른 책과 온라인 자료에서 충분히 다루고 있는 전통적인 기법은 다루지 않는다.

이 책을 읽는 독자는 제네릭컬렉션, 열거자, LINQ 정도를 이해할 정도의 닷넷 경험자가 대상이다. 멀티스레딩 또는 비동기 프로그래밍에 대한 지식은 전혀 필요하지 않다.

동시성은 모든 애플리케이션에서 유용하다. 데스크탑, 모바일, 서버 애플리케이션에 상관없이 이제 동시성은 전반적인 요구 사항이다. 이 책의 내용을 활용한다면 더 빨리 반응하는 사용자 인터페이스, 규모 변경이 더 쉬운 서버를 만들 수 있다. 이미 동시성은 어디에나 존재하는 상황에 이르렀고, 이제 동시성 기법의 이해와 활용은 전문 개발자의 필수 지식이라고 할수 있다.

- 책의 서문 중에서

 

1장 : 병렬, 비동기, 리액티브, 데이터 흐름 의 동시성 소개

2-6장 : 1장에서 소개된 동시성을 하나하나 철저히 설명

7-14장 : 각각 동시성의 특정 측면을 다룸, 일반적인 동시성 문제의 해결책에 관한 참고 자료

 

동시성에 익숙한 독자들도 1장은 읽어보길 권장.

 

동시성에 대한 더 깊은 지식이 필요하다면 다음 링크를 참고

  • 병렬 프로그래밍에 관한 최고의 참고서

http://bit.ly/parallel-prog 에서 무료배포되는 "Parallel Programming with Microsoft .NET

> 퓨처에 관한 내용은 비동기 코드를 사용하게

> 파이프라인에 관한 내용은 채널 또는 TPL 데이터 흐름을 사용하게 변경하면 좋을것 같다

 

코드예제 다운로드

https://oreil.ly/concur-c-ckbk2 

 

Concurrency in C# Cookbook, 2nd Edition

If you’re one of many developers still uncertain about concurrent and multithreaded development, this practical cookbook will change your mind. With more than 85 code-rich recipes in this updated second … - Selection from Concurrency in C# Cookbook, 2n

www.oreilly.com

https://github.com/AcornPublishing/concurrency-c-cookbook 

 

GitHub - AcornPublishing/concurrency-c-cookbook: C# 동시성 프로그래밍 2/e

C# 동시성 프로그래밍 2/e. Contribute to AcornPublishing/concurrency-c-cookbook development by creating an account on GitHub.

github.com

 

독자의견

오탈자 : https://oreil.ly/concur-c-ckbk2 

 

 

Concurrency in C# Cookbook, 2nd Edition

If you’re one of many developers still uncertain about concurrent and multithreaded development, this practical cookbook will change your mind. With more than 85 code-rich recipes in this updated second … - Selection from Concurrency in C# Cookbook, 2n

www.oreilly.com

오탈자(한글) : http://www.acornpub.co.kr/book/concurrency-c-cookbook 

 

C# 동시성 프로그래밍 2/e

비동기, 병렬 처리, 데이터 흐름, 멀티스레딩 등 최신 닷넷 프레임워크와 C# 언어가 제공하는 동시성 기술과 함께 리액티브 프로그래밍, 동시성 기술의 상호운용, 동시 컬렉션, 테스트, 취소 기능

www.acornpub.co.kr

이메일 : permissions@orelly.com

728x90
728x90
반응형
728x90
728x90
반응형

Golang 과 사용할 IDE 를 설치했으면 이제 정상적으로 실행되는지 체크해보자

간단한 "Hello 블라블라블라" 를 출력해보도록 한다.

 

D:\Go_Sample 디렉토리를 생성한다.

VSCode를 실행해서 "파일" > "폴더열기"

VSCode "터미널"

go mod init app 실행

go.mod 파일 생성

파일추가 > main.go 파일 생성

package main

import "fmt"

func main() {
	fmt.Println("Hello 블라블라블라")
}

저장 후 F5 나 Ctrl + F5 로 실행

 

하단 디버그 콘솔 에서 출력 확인

 

go 파일 생성하면 추가적인 모듈 설치가 호출되는데 3가지 모두 설치하도록 한다.

Go for Visual Studio Code

GoPLS

dlv-dap

https://blog.naver.com/techshare/222440203994

 

윈도우 환경에서 Visual Studio Code + Go (Zip) 개발 환경 구성

예전에 Go 언어를 위한 LiteIDE에서의 개발 환경을 다뤘었는데요, go install: no install location f...

blog.naver.com

 

위의 링크에서 좀더 자세하게 설명해놓았으니 참고해서 설치하도록 한다.

728x90
728x90
반응형
수많은 개발언어들이 있다.

 

그 수많은 프로그램 언어 중 어떤 언어를 배워야 좀더 가치 있을까는 프로그래머들이 항상 고민되는 부분이다.

왜냐하면 하나의 언어를 습득한다는게 수박 겉핥기식 Hello World 출력이라면 크게 부담되는 수준은 아니지만

이력서에 끄적일 정도의 기술력을 가지기 위해서는 꽤 많은 노력과 시간이 필요하기 때문이다.

 

오랫동안 HTML CSS Javascript Java C# Python 을 다루었는데 요즘의 트랜디한 언어를 배워야겠다고 생각되기도 하고 현재 개발하는 부분에 필요할것 같은 언어 대상을 물색해보고 있었다.

 

******************************************************

언어라는게 각각의 컨셉에 따른 특징과 장점 단점들을 가지고 있기는 하지만 언어라는 자체의 큰 틀을 완전히 벗어날 수 없다. 그 큰 틀을 이해하면 언어 습득은 크게 문제가 되지 않는다. 남은건 얼마만큼 시간을 투자해 익숙해지느냐와 제공되어 있는 API의 이해도, Github에 수많은 사람들이 등록해놓은 기술/코딩 스킬들을 얼마만큼 빠르게 흡수할 수 있느냐에 달려있다고 봐도 무방하다.

******************************************************

 

그 부분중 Golang에 대해 시작해보겠다. 이미 Rust는 학습을 하고 있었는데 Rust보다 좀더 생산효율적이면서 퍼포먼스도 어느정도 보장되는 언어를 물색해보다 보니 Golang이 자연스레 눈에 들어오게 되었다. 그리고 지금 만들고 있는 거래소 정보 수집 분석 프로그램을 위해서 이기도하다.

 

Golang 의 장점은 이미 인터넷에 검색하면 손쉽게 확인이 가능하다.

간략히 링크 몇가지 올려보면 그 링크에서 정보들을 습득하길 바란다.

만들어진 바퀴를 다시 만들기는 시간이 없고. 나보다 훨씬 정성들여서 잘 작성된 자료들이므로 내가 다시 정성들여서 만들필요가 있을까 싶다.

 

## Golang 다운로드

https://go.dev/

 

The Go Programming Language

DevOps & Site Reliability With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE.

go.dev

https://go.dev/doc/

 

Documentation - The Go Programming Language

Documentation The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and netwo

go.dev

https://github.com/golang/go/wiki/NonEnglish

 

GitHub - golang/go: The Go programming language

The Go programming language. Contribute to golang/go development by creating an account on GitHub.

github.com

https://go-tour-ko.appspot.com/list

 

Go를 향한 여행

 

go-tour-ko.appspot.com

https://mingrammer.com/gobyexample/

 

Go by Example

 

mingrammer.com

예전에는 한글 문서가 정상적으로 조회가 되었는데 글을 작성하는 시점에는 링크가 작동을 하지 않는것 같다.

무슨 문제인지 모르겠지만 잘 해결되었으면 좋겠다.

 

위의 링크만 꼼꼼히 체크해도 학습하기 충분한 정보를 가지고 있으니 꼼꼼히 링크를 체크해 보길 바란다.

 

유투브

https://youtu.be/KBdz5c-0t1w

==================================================================

설치방법을 좀 단순화 시켜보면

1. 개발환경을 고려한다.

- Windows

- Windows (WSL2)

- Linux

- Docker

- Mac

2. 개발환경 프로그램 설치

[Windows]

Golang

https://go.dev/dl/

 

Downloads - The Go Programming Language

Downloads After downloading a binary release suitable for your system, please follow the installation instructions. If you are building from source, follow the source installation instructions. See the release history for more information about Go releases

go.dev

 

Visual Studio Code

https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

 

[Windows 이외]

현재는 Windows에서 직접 실행하는 구조로 작업을 하기때문에 Windows 설치 이외의 내용은 추후 작성해보도록 한다.

3. 개발환경 설정 및 체크

Path 설정 확인

C:\go 이외의 디렉터리를 선택한 경우 해당 디렉터리를 GOROOT 환경 변수에 설정해야 한다.

Go root 의 bin 디렉터리(ex: C:\Go\bin)를 PATH 환경 변수에 추가한다.

Go 관련 package들이 저장되는 공간이므로 특별한일 없으면 수정하지 않아도 된다.

Windows 환경 변수 설정 

시스템 > 고급 > 환경변수

설치 상태 확인하기

 

728x90

+ Recent posts