일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 448일선
- 2023 게이밍 인 구글 클라우드
- 리팩터링
- 주식단테
- 2023 게이밍
- 1일차
- GenAI
- 스즈메의 문단속
- 2023 Gaming
- JavaScript
- URP
- 112일선
- 공부
- 산토리 하이볼
- 2023 구글 클라우드
- 언리얼 5
- 주식
- shader
- 리팩터링 4장
- 리팩터링 3장
- 224일선
- 이득우의 언리얼 프로그래밍 1
- 작계훈련
- 언리얼5
- 전주비빔 라이스 버거
- 스포일러 주의
- 상계9동
- unity
- 구글 컨퍼런스
- 이득우의 언리얼 프로그래밍1
- Today
- Total
목록Book/전문가를 위한 C++20 (5)
개발 이야기 안하는 개발자
28. 소프트웨어 공학 초기 아이디어부터 최종 제품에 이르기까지 단계적으로 진행하도록 프로세스를 정의해서 무질서한 소프트웨어 개발을 체계화하는 소프트웨어 라이프사이클 (소프트웨어 수명 주기)모델도 다양하게 나와있다. 폭포수 모델 계획 , 설계 , 구현 , 단위 시험, 서브시스템 시험, 통합 시험, 평가 순서대로 진행되는 라이프 사이클이다. 간결하기 때문에 프로젝트를 계획하면 관리하기 쉽다. 하지만 현실은 개발과정을 수행하는 동안에도 요구사항이 새로 추가되는 경우가 많기 때문에 이는 이행하기 어려운 모델이다. 사시미 모델. 단계는 폭포수와 동일하지만 앞뒤가 단계적으로 부분적으로 겹치는 점이 다르다. 바로 앞 뒤 단계를 이행 하기도 하고 병행하기도 한다. 나선형 모델 현재 단계에 문제가 있떠라도 다음 단계에..
25. 표준 라이브러리 커스터마이즈 및 확장 방법 find_all() 인수로 주어진 프레디케이트를 만족하는 원소를 주어진 범위에서 모두 찾는 알고리즘을 구현한다고 하자. find()와 find_if() 모두 한 원소만 가리키는 반복자를 리턴한다. 이렇게 새롭게 알고리즘을 제작 및 확장하려면 프로토타입부터 정의해야 하는데, 이때 find_if()에 적용된 모델을 그대로 따르면 제작하기 쉽다. 비슷한 기능을 참고하면 된다. template OutputIterator find_all(InputIterator first, InputIterator last, OutputIterator dest, Predicate pred) { while (first != last) { if (pred(*first)) { *des..
7. 메모리 관리 int i { 7 }; 로컬 변수 i는 자동 변수라 부르며 스택에 저장된다. 변수가 선언된 스코프를 벗어나면 자동으로 메모리가 해제된다. new와 delete int* ptr { nullptr }; ptr = new int; new 키워드로 메모리를 할당하면 프리스토어에 메모리가 할당된다. new로 할당한 메모리는 delete 키워드로 해제한다. 만약, 포인터를 담았던 변수가 스코프를 벗어나면 할당한 메모리에 접근할 수 없게 되고 이를 "미아가 된다" 라고 표현한다. 이를 메모리 누수(메모리 릭)이라 부른다. new가 실패하는 경우는 해당 메모리 만큼 가지고 있지 않을때 그런다. 예외처리로 막으면 되는데 이때 nothrow를 사용하면 예외처리가 가능하다. int* ptr { new(no..
4. 전문가 답게 C++ 프로그램 설계하기 프로그램 설계 정의 프로그램에 기능을 추가하는 작업에 들어가기전에 가장 먼저 할일은 요구사항 분석이다. 이해 당사자와 함께 논의해서 핵심 기능 요구 사항 문서를 정리하는 것이다. 최종 시스템의 동작이 아닌 속성을 표현하는 비기능 요구사항 문서도 나올 수 있다. (보안성, 확장성 등등) 여기에서 나온 표현도 모두 적는다. 요구사항을 모두 수집했다면 프로그램 설계를 진행한다. 설계 문서는 대체로 서브시스템(시스템에서 작업이 처리되는 위치)사이의 상호작용과 클래스 계층을 보여주는 다이어그램이나 표로 구성된다. 설계를 진행함에 있어 예상치 못한 문제나 변화에 유연하게 대처하도록 구성된 소프트웨어 공학 프로세스도 많다. 그 대표적인 예로 스크럼이라는 애자일 소프트웨어 개..