728x90

프로그래밍 65

[C#] Null 조건부 연산자 ?. (null conditional operators)

Null 조건부 연산자. 물음표와 마침표를 연결해 사용합니다. 영어로는 Null conditional operators. Something?.Member 이렇게 사용하는데, null 조건부 연산자는 피연산자가 null이 아닌 것으로 평가되었을 때만 멤버를 엑세스 합니다. null 조건부 요소 연산자는 아래처럼 씁니다. 마찬가지로 피연산자가 null이 아닌 것으로 평가되었을 때 요소를 엑세스 합니다. ?[] 조건부 멤버나 요소 액세스 작업의 한 체인의 작업에서 null을 반환하면 나머지 체인은 실행되지 않습니다. // null 조건부 연산자 예시 A?.B.C(); A?.B?.Do(C); A?.B?[C]; // null 조건부 연산자를 사용하지 않았을 경우 if (null != A) A.B.C(); if (..

유니티 엔진 2021.1 버전 매뉴얼에 새로 추가된 것 (게임 개발 퀵스타트 가이드)

Unity Engine 공식 도큐먼트를 둘러보다가 2021.1 버전 문서의 New in Unity 2021.1 페이지를 봤습니다. 어떤 것들이 추가됐는지를 보여주는 문서로, 2021.1 버전 문서에만 존재하는 페이지입니다. 다른 버전 문서에는 해당 버전의 새로운 내용들이 있으니까요. New in UInity 2021.1 문서에서 눈길이 가는 항목이 있었습니다. New documentation 항목 아래에 있는 두 개 항목. - 2D Game development quickstart guide (2D 게임 개발 빠른시작 가이드) - 3D Game development quickstart guide (3D 게임 개발 빠른시작 가이드) 이 두 개 항목입니다. 2D game development quicksta..

[책리뷰] 읽기 좋은 코드가 좋은 코드다 (1부, 2부 리뷰)

최근에 다시 읽어본 책. 책 제목이 명확합니다, “읽기 좋은 코드가 좋은 코드다” 크게 공감합니다. 프로그래머라면 대부분 공감할 것입니다. 좋은 코드가 왜 좋고, 나쁜 코드가 왜 나쁜지 정리한 책. 좋은 코드를 짜고싶은 분들께 추천합니다. 저자와 역자의 이력이 상당합니다. 프로그래밍의 베테랑들. 책의 신뢰를 더해줍니다, 나쁜 코드의 예를 분석하고, 그러한 코드가 왜 나쁜지, 그리고 어떻게 개선할 수 있을지 연구한 결과가 바로 이 책이라고 합니다. 이름짓기와 주석, 포맷팅, 논리, 루프 제어, 복잡성 관리, 코드 블록 정리 등등. 결과적으론 재밌고 유익하게 읽었습니다. 보통은 형상관리 툴을 쓸 테지만, 누가 이렇게 짰지? 나구나? 싶은 상황은 생각보자 자주 직면하게 됩니다. 코드는 이해하기 쉬워야 한다, ..

A Tour of C++ : 11장 컨테이너

. 11. 컨테이너 11.1 소개 컨테이너(container) = 객체를 저장하는 것이 주 목적인 클래스 ​ 11.2 vector 요소들은 메모리에 연속적으로 저장. 구현 구성 요소들. 첫 요소, 마지막 요소 다음, 할당된 공간의 마지막의 다음을 가리키는 포인터 (elem, space, last) ​ 요소 타입 값들로 초기화 vector phone_book = { {“David Hume”, 123456}, {“Karl Popper”, 234567}, {“Bertrand Arthur William Russell”, 345678} } ​ Entry 클래스에 number; return 0; } 컴파일러는 적은 구간 for 루프를 이런 식으로 구현. 반복자 p 의 요소 참조는 *p. ++p 는 다음요소. p->..

A Tour of C++ : 10장 입력과 출력

. 10. 입력과 출력 10.1 소개 입출력 스트림 (I/O Stream) 텍스트와 수치 값에 대한 Formatted / Unformatted Buffered I/O 지원. ostream / istream 타입 있는 값(‘c’, 123, (123,45)과 바이트 시퀀스 사이를 스트림 버퍼를 통해 변환. 타입 민감성 보장, 사용자 정의 타입에 맞게 확장 가능. 이러한 스트림 이용 std::string 의 입출력과 string 버퍼를 이용한 형식화, 파일 입출력 가능. ​ 모든 입출력 스트림 클래스는 소유 자원(버퍼, 파일핸들 등)을 해제하는 소멸자를 포함. ‘자원 획득이 곧 초기화’(RAII)의 한 예. ​ 10.2 출력 에서 모든 내장 타입 출력 연산 정의. 의 오른쪽 항은 어떤 입력이 허용되고 대상이 ..

A Tour of C++ : 9장 문자열과 정규 표현식

. 9. 문자열과 정규 표현식 9.1 소개 C++ 표준 라이브러리 std::string 타입. string_view 타입을 이용하면 string, char[] 상관없이 문자열 시퀀스 조작 가능. 정규표현식 제공. ​ ​ 9.2 문자열 string 타입의 활용. s1 = s1 + ‘\n’; s2 += ‘\n’; ​ string name = “Niels Stroustrup’; ​ string s = name.substr(6,10); // s = “Stroustrup”; name.replace(0, 5, “nicholas”); // name = “nicholas Stroustrup”; name[0] = toupper(name[0]); // name = “Nicholas Stroustrup”; ​ if ( na..

[책] 코딩인터뷰 퀘스천, 내용 정리 모음

. 좋은 책이고 광범위하고 어려운 책이었습니다. 가볍게 기본기 연습삼아 읽어보자 하고 시작했는데 생각보다 내용이 깊고 넓고 어려운 내용들이 많았습니다. 기본기를 잡기에도 부족함이 없어보이는 책입니다. 그도 그럴 것이, 책 초반의 저자의 말에서 이런 구절이 나옵니다. ​ "이 책의 내용은 필요한 모든 주제를 자세하게 다루고 있다" "이 책을 읽고 전부 이해했다면 면접에 도전해도 된다고 확신한다. 이 책은 대학 공학 학사, 석사 준비하는 학생들에게도 매우 유용하다" ​ 프로그래밍 관련 학사/석사 수준의 내용들을 다루고 있다고 하니, 어려워도 이상할 게 없어보입니다. 아무튼 매우 좋은 책이고 나중에 한번은 더 읽어보고 내용을 이해해보려 노력해봐야겠다는 생각도 들게 합니다. 코딩인터뷰 퀘스천"메모" 프로그래밍 ..

A Tour of C++ : 8장 라이브러리의 개요

. 8. 라이브러리의 개요 ​ 8.1 소개 string, ostream, variant, vector, map, path, unique_ptr, thread, regex, complex 등의 표준 라이브러리 타입 간략히 설명. ​ 8.2 표준 라이브러리 구성 요소 - 메모리 할당, 실행 시간 타입 정보, C 표준 라이브러리 - 국제 문자 세트 지원, 지역화, 부분 문자열 읽기 전용 뷰 등의 문자열. (9.2) - 정규 표현식 매칭 지원. (9.4) - I/O 스트림. - vector, map 등의 컨테이너, find(), sort(), merge() 등의 알고리즘 프레임워크. (STL) - 표준 수학 함수, 복소수, 산술 연산 벡터, 난수 생성기 등의 수치 계산 지원 - thread, lock 등 동시성..

A Tour of C++ : 7장 컨셉과 제네릭 프로그래밍

. . 7. 컨셉과 제네릭 프로그래밍 7.1 소개 템플릿의 기능 - 타입을 정보의 손실 없이 인자로 전달. 인라인을 활용할 기회 커짐 - 인스턴스화 시점에 여러 경우에 따라 정보를 달리함으로 최적화 - 상수 값을 인자로 전달, 컴파일 시간 계산 수행 가능. ​ 컴파일 시간에 계산과 타입 조작 메커니즘 제공, 코드를 명료하고 효율적으로 만듬. 타입(클래스)은 코드와 값을 모두 포함할 수 있다는 것이 중요. ​ 가장 우선적/일반적 사용 목적은 제네릭 프로그래밍 지원. “일반적”인 알고리즘 설계, 구현에 집중. ​ 7.2 컨셉(C++20) 어떤 템플릿 함수의 첫 템플릿 인자가 시퀀스의 한 종류이고, 두 번째 템플릿 인자가 수의 한 종류인 경우. 이런 요구 사항을 컨셉(concept)이라 함. ​ 7.2.1 컨..

A Tour of C++ : 6장 템플릿

. . 책 읽으면서 정리한 메모 6. 템플릿 파라미터화된 타입 : 제한된 템플릿 인자, 값 템플릿 인자, 템플릿 인자 추론 파라미터화된 연산 : 함수 템플릿, 함수 객체, 람다 표현식 템플릿 메커니즘 : 가변 템플릿, 별칭, 컴파일 시간 if ​ 6.1 소개 템플릿은 타입이나 값의 집합을 파라미터화한 클래스나 함수. ​ 6.2 파라미터화된 타입 template 는 template 와 동일. “모든 타입 T에 대해”라는 C++ 표현. ​ template class Vector { // ... } ​ Vector vc(200); // 문자 200개를 포함하는 벡터 Vector vs(17); // 문자열 17개 Vector vli(45); // 정수의 리스트 45개 ​ 템플릿+인자 = 인스턴스화 or 특수화 ..

728x90
반응형