🎮 1. 오늘 배운 내용

  • C++ 소스 파일 → 실행 파일 생성 과정
    1. 소스 파일 작성 (.cpp)
    2. 선행처리 (#include, #define 처리)
    3. 컴파일 (기계어로 변환된 오브젝트 파일 생성)
    4. 링크 (여러 오브젝트 파일과 라이브러리 결합)
    5. 실행 파일 생성 (.exe 등)
  • Hello, World! 예제
    • #include <iostream>: 입출력 기능 제공
    • int main() { ... }: 프로그램 시작 지점
    • std::cout << "Hello, World!";: 출력
    • return 0;: 정상 종료 의미
#include <iostream>
using namespace std;

int main() {
   cout <<"Hello, World" << endl;
   return 0;
 }
// 1. iostream 헤더 파일을 포함합니다.
#include <iostream>

// 2. main 함수를 정의합니다.
int main() {
    // 3. 표준 출력 스트림(cout)을 사용해서 "Hello, World!"를 화면에 출력합니다.
    std::cout << "Hello, World!" << std::endl;

    // 4. 프로그램이 성공적으로 끝났음을 알리기 위해 0을 반환합니다.
    return 0;
}
  • 헤더 파일 개념
    • 특정 기능을 사용하기 위한 설계도 역할
    • <iostream>: 입출력, <string>: 문자열, <vector>: 동적 배열, <cmath>: 수학, <random>: 난수 생성
    • 프로그램의 목적에 맞춰 필요한 헤더를 선택
  • .{} (중괄호)
    • 함수 본문: main() 함수처럼, 함수가 시작하고 끝나는 범위를 나타낸다.
       
      int main() { // 여기서부터 main 함수가 시작
          // 이 안에 있는 코드가 main 함수에 속함
          return 0;
      } // 여기서 main 함수가 끝남
      

       

    • 반복문, 조건문: for, if 같은 문법에서 반복하거나 조건이 참일 때 실행할 코드들을 묶을 때 사용한다.
       
      if (조건) {
          // 조건이 참일 때 실행할 코드 묶음
      }
      

  •  ; (세미콜론)
    std::cout << "Hello"; // "Hello"를 출력하는 한 문장이 끝남
    std::cout << "World"; // "World"를 출력하는 또 다른 한 문장이 끝남
    
    • 언제 안 쓰나?: if, for 같은 제어문이나 함수 정의의 마지막 줄, 그리고 중괄호 } 뒤에는 보통 세미콜론을 붙이지 않는다. 중괄호 자체가 코드 블록의 끝을 의미하기 때문.
  • std:: (스코프 지정 연산자)
    • std::cout: "std 그룹 안에 있는 cout을 사용하겠다"
    • std::endl: "std 그룹 안에 있는 endl을 사용하겠다"
    std::를 매번 쓰기 귀찮다면, using namespace std;라는 코드를 사용해 생략할 수도 있다. 하지만 언리얼 엔진 같은 실제 개발 환경에서는 이름 충돌을 피하기 위해 std::를 명시적으로 쓰는 경우가 많다.

 

  • cout과 endl
    • cout: Character Output Stream의 약자로, 화면에 데이터를 출력하는 역할을 한다. << 연산자와 함께 사용해서 원하는 데이터를 cout으로 흘려보내면 화면에 나타난다.
      std::cout << "출력할 내용";
      
    • endl: End Line의 약자로, 줄바꿈을 해주는 역할을 한다. \n과 비슷한 기능을 하는데, endl은 출력 버퍼를 비워주는 추가적인 기능을 수행한다.
    std::cout << "Hello" << std::endl; // Hello를 출력하고 줄을 바꿈
    std::cout << "World";
    

     

  • 위 코드를 실행하면이렇게 두 줄로 출력됨.

 

필수적으로 알아야 할 것들

  • 변수(Variable)와 자료형(Data Type): 변수는 데이터를 담는 상자, 자료형은 그 상자에 어떤 종류의 데이터(정수, 실수, 문자 등)를 넣을지 결정하는 규칙.
    • int: 정수 (10, -5)
    • double: 실수 (3.14)
    • char: 한 글자 ('A')
    • bool: 참/거짓 (true, false)
    • std::string: 문자열 ("Hello")
  • 연산자(Operator): 변수나 값으로 계산을 하거나 비교를 할 때 사용하는 기호들.
    • +, -, *, /: 사칙연산
    • ==, !=, >, <: 비교 연산자
  • 조건문(Conditional Statement): if, else if, else를 사용해 특정 조건에 따라 다른 코드를 실행하는 문법.
    • "만약 (조건)이라면 이 코드를 실행하고, 그렇지 않다면 다른 코드를 실행해라"
  • 반복문(Loop): for, while 등을 사용해 특정 코드를 반복해서 실행하는 문법.
  • std::는 표준(standard) 라이브러리 안에 있는 기능을 사용하겠다는 뜻. C++에는 수많은 기능이 있는데, 이름이 겹치지 않도록 그룹별로 묶어 관리함. std는 그중에서도 C++ 표준 라이브러리에 속한 기능들을 모아놓은 그룹(네임스페이스)의 이름이다.
  • 세미콜론한 문장의 끝을 나타낸다. C++ 컴파일러에게 "여기까지가 하나의 명령이야"라고 알려주는 역할. 마치 우리가 문장 끝에 마침표(.)를 찍는 것과 같다고 볼 수 있음.
  • 중괄호는 코드의 묶음(블록)을 나타냄. 특정 코드들이 하나의 집단으로 동작해야 할 때 사용.

 


 

🌍 2. 나만의 연결점

영화 편집 프로젝트에서도 "소스 → 완성본"까지의 과정이 C++ 빌드 과정과 닮아있다.

  • 소스 파일 작성 = 촬영본 촬영
  • 선행처리 = 불필요한 장면 정리, 필요한 자료 가져오기
  • 컴파일 = 장면별 편집본 제작
  • 링크 = 장면들을 하나로 합쳐 영화 완성
  • 실행 파일 = 최종 상영 가능한 영화 파일

 


 

🧠 3. 깨달음 & 질문 (문제 상황 포함)

  • #include가 단순히 "불러오기"가 아니라, 프로그램에서 사용할 수 있는 기능을 준비하는 과정이라는 걸 알았다.
  • return 0;가 단순 습관이 아니라, 운영체제와의 약속이라는 점
  • 에러: 비주얼 스튜디오에서 .cpp 저장 위치를 잘못 잡아 빌드 오류 발생 → 프로젝트 폴더 구조 이해 필요.
  • 질문: C++에서는 사용하지 않는 헤더를 포함해도 괜찮을까? 빌드 시간이나 실행 속도에 영향이 얼마나 있을까?

 


 

🧵 4. 연결 태그 (나만의 키워드 해시태그)

 

#C++ #빌드과정 #실행파일 #헤더파일 #HelloWorld 

 


 

📌 5. 오늘의 메모 한 줄

 

각 단계를 이해하면 전체 흐름이 보일것. 꾸준히 익숙하게 만들고 머리에 집어넣자.

 

ex) a=20; 대입연산자에서 "오른쪽에 있는 걸 왼쪽에 집어넣어라"

 


 

🌱 6. 내일을 위한 메모

  • <string>, <vector>, <cmath>를 직접 포함해서 간단한 프로그램 작성
  • 예제 실습 답 예측하며 작성 따라해보기
  • 빌드 에러 발생 시 원인 파악 연습