🚀 성능을 극대화하는 noexcept 활용법 noexcept는 "이 함수는 절대로 예외를 던지지 않는다"고 컴파일러에게 확신을 주는 키워드입니다. 컴파일러는 이 신호를 바탕으로 예외 처리용 보험 코드를 제거하고 최적화의 풀악셀을 밟습니다. 💡 핵심 원리: 예외 처리 로직(Stack Unwinding)이 생략되므로 실행 파일 크기가 줄어들고, 런타임 성능이 향상됩니다. 예제 1. STL 컨테이너 이동 최적화 std::vector 재할당 시, 이동 생성자가 noexcept여야만 복사 대신 이동(Move)을 수행하여 성능이 수십 배 향상됩니다. class SmartBuffer {public: // noexcept가 있어야 vector가 안심하고 데이터를..
상속 설계의 정석: "상속이 필요 없으면 final을, 한다면 override를" C++ 개발 시 가장 빈번하게 발생하는 실수는 '의도하지 않은 상속'과 '잘못된 재정의'입니다. 컴파일러가 내 실수를 대신 찾아내게 만드는 똑똑한 키워드 활용법을 예제와 함께 알아봅니다. 1. override: 컴파일러에게 감시 요청하기 단순히 부모 함수와 이름을 맞추는 것만으로는 부족합니다. override는 실수를 에러로 바꿔주는 안전장치입니다. ❌ override가 없는 위험한 코드 class Base {public: virtual void process(float speed) { ... }};class Derived : public Base {public: ..
클래스 설계의 마침표, final 왜 우리는 "더 이상 상속이 필요 없는 클래스"에 명시적으로 final을 붙여야 할까? 본질(Essence): 상속은 객체지향의 강력한 무기이지만, 의도치 않은 상속은 시스템을 복잡하게 만들고 성능을 저하시킵니다. 더 이상의 확장이 필요 없는 클래스라면 final을 붙여 설계의 의도를 명확히 하고 성능 이득을 챙겨야 합니다. 1. 설계의 명확성: "여기서 끝내겠습니다" 코드는 읽는 사람에게 의도를 전달해야 합니다. 클래스에 final이 붙어 있다면, 다른 개발자는 이 클래스의 내부 로직을 분석할 때 '어디선가 이 로직이 오버라이딩되어 다르게 동작할 수 있다'는 걱정을 할 필요가 없습니다. C++ 예시: 상속을..
[DB 기초] SQL 언어의 분류와 PL/SQL 완벽 이해하기데이터베이스를 공부하다 보면 가장 먼저 마주치는 외계어 같은 용어들, DML, DDL, DCL, TCL... 그리고 PL/SQL까지! 오늘은 이 용어들이 각각 무엇을 뜻하고 어떻게 활용되는지 아주 쉽게 정리해 보겠습니다.💡 핵심 요약: SQL은 데이터베이스와 대화하는 '언어'이며, 그 목적에 따라 여러 카테고리로 나뉩니다.1. SQL의 4가지 분류① DDL (Data Definition Language, 데이터 정의어)데이터베이스의 뼈대(구조)를 만들거나 수정, 삭제할 때 사용합니다. 건물로 비유하면 '설계도'를 그리고 '공사'를 하는 과정과 같습니다.CREATE: 테이블이나 인덱스 등 객체 생성ALTER: 기존 객체의 구조 변경DROP: 객..
- Total
- Today
- Yesterday
- 리눅스
- ReFS
- Thread
- C++
- 서귀포블루버블
- OpenSource
- RSA
- 다이빙
- 블루버블다이브팀
- 제주도
- 블루버블
- ip
- 패턴
- 블루버블다이빙팀
- 성산블루버블
- Windows
- 서귀포
- Linux
- 울릉도
- 양파다이브
- PowerShell
- C
- DLL
- 디자인패턴
- 암호화
- 현포다이브
- 윈도우
- Build
- 스쿠버다이빙
- C#
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
