C에서 C++로
입출력 #include int main(void) { // 출력 std::cout
- 프로그래밍 언어/C++
- · 2022. 12. 24.
입출력 #include int main(void) { // 출력 std::cout
Name Space namespace는 특정 영역을 분리하는 식별자 역할을 한다. 데이터의 범위를 단순히 전역·지역으로 나누지 않고 namespace를 이용해 구체적으로 지정해 줄 수 있다. namespace test1 { void HelloWorld(void); } namespace test2 { void HelloWorld(void); } test1과 test2라는 독립된 공간을 만들어 HelloWorld라는 같은 이름의 함수가 충돌하지 않도록 분리해 주었다. test1과 test2는 각각의 공간을 식별해주는 namespace가 된다. test1::HelloWorld namespace::함수/변수의 형태로 특정 namespace 내의 데이터를 정의하거나 불러온다. 예시: namespace로 분리하기 ..
nomad-coders님의 영상을 보다가 dataclasses라는 유용한 라이브러리를 알게 되어 정리하게 되었다. 정리한 내용은 공식 문서 (3.11)를 참고하여 작성하였다. 추가로 객체 데이터를 다룰 때 유용하게 사용하고 있는 property도 함께 소개하였다. dataclasses 개념 class Person: def __init__(self, pid, name, age): self.pid = pid self.name = name self.age = age class내에서 __init__을 사용해 필요한 데이터를 저장해두는 아주 전형적인 코드이다. 하지만 받아야 하는 데이터가 많을 경우, 동일한 코드를 반복적으로 작성해야 하는 번거로움이 생긴다. 이럴 때 dataclasses를 사용해 간결하게 작성할..
TOML TOML은 Key:Value 형태로 데이터를 매핑하는 파일 형식이다. JSON이나 YAML과 같이 설정 파일에 주로 사용되는 형식이다. # TOML [user] id = 398 name = "DeneV" [auth] admin = true # JSON { "user": { "id": 398, "name": "DeneV" }, "auth": { "admin": true } } 같은 데이터를 각각 TOML과 JSON으로 표현한 모습이다. 데이터의 구조가 복잡해질수록 TOML이 더 읽기 편하다는 장점이 있다. 추가로 TOML은 JSON과 달리 #으로 주석을 작성할 수 있다는 특징도 있다. TOML에 대해 간단하게 살펴보면 아래와 같이 여러 자료형의 데이터를 저장할 수 있다. string1 = "Hi"..
Go는 testing을 통해 테스트 코드 작성을 지원한다. 테스트를 수행할 테스트 파일은 _test.go 형식의 파일 이름을 가져야 한다. (예: cv_test.go) import "testing" Test func Test함수이름(t *testing.T) { res := 함수(...) if res != 결과 { t.Errorf("...") } } 테스트를 수행할 함수는 Test로 시작하고, *testing.T를 파라미터로 받는다. 예: func RepeatAdd(n int) int { i := 0 for j := 1; j
Asynchronous Non-blocking 작업 - Synchronous vs Asynchronous - Blocking vs Non-Blocking - Asynchronous Non-blocking Request Sync / Async 두 항목을 나누는 기준은 요청한 작업이 진행되는 순서이다. Synchronous - 동기: 요청된 작업이.. denev6.tistory.com 위 글에서 설명했듯이 비동기 처리는 속도와 효율성 면에서 큰 이점을 가진다. 그리고 Go는 이러한 비동기 루틴 실행을 아주아주아주 쉽게 할 수 있다. Go 루틴 Go의 루틴은 2KB 스택 공간만을 사용하기 때문에 가볍고, 하나의 코어 당 하나의 OS 스레드만 할당하기 때문에 스레드의 컨텍스트 스위칭 비용이 발생하지 않는다. g..