Programming 6

[번역] Strings, bytes, runes and characters in Go

Code wars 문제를 풀던 중 Golang의 문자열이 좀 헷갈려서 금번에 공부할 목적으로 The Go Blog의 Strings, bytes, runes and characters in Go를 번역하였습니다. 원문은 위 링크를 참조하시기 바라며, 영어를 잘하는 편이 아니기도 하고, 구글 번역기를 기반으로 번역한 내용이기 때문에 내용에 의문점이 드신다면 바로 위 포스트에서 원문을 읽으시기를 바랍니다. 목차 Strings, bytes, runes and characters in Go Rob Pike 23 October 2013 Introduction 이전 블로그 게시물에서는 구현 뒤에 숨겨져 있는 동작원리를 설명하기 위해 여러 예제를 통해 slices가 Go에서 작동하는 방식을 설명했습니다. 이러한 배경을..

Programming/Golang 2021.07.02

Golang 기초 - III

함수 1. defer (지연) 해당 함수가 실행을 완료했을 때 실행을 위해 호출 스케줄을 잡는다. defer는 어떤 식으로든 자원을 해제해야 할 때 자주 사용된다. 예를 들어, 파일을 열 때 나중에 해당 파일을 반드시 닫아야 한다. defer를 이용하면 다음과 같이 하면 된다. f, _ := os.Open(filename) defer f.Close() 이 방법에는 세 가지 장점이 있다. (1) Close 호출을 Open 호출 가까이에 둬서 이해하기가 쉽고, (2) 함수에 반환문이 여러 개 있더라도(if에 하나가 들어 있고, else에 하나가 들어 있는 것처럼) Close가 두 반환문 앞에서 모두 호출될 것이며, (3) 지연된 함수는 런타임 패닉이 일어나더라도 실행될 것이다. 2. panic & recov..

Programming/Golang 2021.06.30

[리액트를 다루는 기술] 개념 정리1 - Element 부터 state까지

"지속적으로 데이터가 변화하는 대규모 애플리케이션 구축하기" 1. Element React 앱의 가장 작은 단위, 화면에 표시할 내용을 기술한다. 일반 객체이며(plain object) 쉽게 생성할 수 있다. React DOM은 React 엘리먼트와 일치하도록 DOM을 업데이트한다. const element = Hello, world; React 엘리먼트를 루트 DOM 노드에 렌더링하려면 둘 다 ReactDOM.render()로 전달하면 된다. const element = Hello, world; ReactDOM.render(element, document.getElementById('root')); React 엘리먼트는 사용자 정의 컴포넌트로도 나타낼 수 있습니다. function Welcome(pro..

Programming/react 2021.03.21

[python] asyncio로 boto3 실행시키기 (부제 : asyncio란?)

boto3를 비동기적으로 사용할 수 있는 방법이 있는가에 대해 열심히 찾아보았으나, 결론적으로는 Threadpool 기반의 MultiThread로 실행해야 함을 깨닫고 asyncio와 관련된 내용을 정리해놓고자 한다. 내용은 주로 "파이썬답게 코딩하기"를 참조하였으며, 이 외에는 공식 Document를 상당부분 참조하였다. 1. 비동기 논블록 방식의 시작 - concurrent.futures asyncio 이전에 개발된 멀티 스레딩/프로세싱을 고도화한 모듈이다. 비동기논블록 방식을 스레드와 프로세스로 구현하였다. 멀티 스레딩/프로세싱에서 데몬으로 작업을 실행시킨 것과 유사한 개념이라고 한다. 내부적으로 크게 Executor와 Future, 그리고 Module Functions이 있다. 1.1.1. Exe..

Programming/Python 2021.01.01

Go 언어 배우기 (II) - 변수부터 컬렉션까지 (With Python)

목차 이미 익숙한 Python과 새로 배우는 Go의 문법/용어를 대조하면서 내용을 정리하고자 한다. Go vs Python 용법 Golang python 패키지 가져오기 1. import [package] 2. import ( [package A] [Package B]/[Package C] ... ) 1. import [package] 2. from [package] import [module] 표준출력 fmt.Println() print() 변수선언 1. var name [type] 2. var name := [value] 3. const NAME = [value] variable = value 문자열 1. 일반 문자열 : "string", 2. raw string : `string` 1.일반 문자열 ..

Programming/Golang 2020.05.12

Go 언어 배우기 (I) - 왜, 어떻게?

목차 What is Go? Go는 2009년 구글이 개발한[2] 프로그래밍 언어이다. 가비지 컬렉션 기능이 있고, 병행성(concurrent)을 잘 지원하는 컴파일 언어다 ... Go의 문법은 대체로 C와 비슷하다: 코드 블록들은 중괄호로 둘러싸고 for, switch, if를 포함한 일반적인 제어구조를 가지고 있다. C와 다르게, 한 라인 끝의 세미콜론은 필수가 아닌 옵션이다. 변수 선언은 다르게 작성되고 대개 옵션이다. 형변환은 명시적으로 해야 한다. 병행성 프로그래밍을 다루기 위해 go와 select 키워드가 사용된다. 새로운 타입은 map, 유니코드 문자열, 배열 slice, 그리고 내부 쓰레드 통신을 위한 채널(channel)이 있다. - 위키피디아 Why Go? Go언어를 학습하게 된 계기는 ..

Programming/Golang 2020.05.06