C++ Chapter 0 : 시작해봅시다.
카테고리: Cpp
태그: Cpp Programming
인프런에 있는 홍정모 교수님의 홍정모의 따라 하며 배우는 C++ 강의를 듣고 정리한 필기입니다. 😀
🌜 [홍정모의 따라 하며 배우는 C++]강의 들으러 가기!
0.0 C++ 꼭 공부해야 할까?
공부 방법
- 예제를 많이 베끼며 연습해라
- 좋은 예술가는 베낀다
- 위대한 예술가는 훔친다
- 올바른 타이핑 방법을 연습한다.
- 간단한 개념을 이해한다.
- 예제를 따라해본다.
- 문제가 생기면 해결한다.
- 예제를 내 맘대로 바꿔본다.
0.1 프로그래밍 언어란
종류
- C, C++, Java
- 코드 →
컴파일러
(기계어로변환) →실행파일
→ CPU,메모리로 실행결과 내기
- 코드 →
- Python, JavaScript
- 코드 →
인터프리터
→ CPU,메모리로 실행결과 내기 - 인터프리터를 사용함으로써 실행 파일 안만들고 바로 바로 한줄마다 CPU로 돌림
- 대신 컴파일러 쓰는 언어에 비해 느리다.
- 코드 →
이식성 Portability
- 이식성이 없는 언어라면
- 플랫폼마다 컴파일러가 추가적으로 더 필요하다
- ex) 윈도우용컴파일러, 리눅스용컴파일러, 윈도우용실행파일, 리눅스용실행파일
- 플랫폼마다 컴파일러가 추가적으로 더 필요하다
- 이식성이 있는 언어라면
- ex) Java
- 컴파일러는 1개만 있으면 어느 플랫폼에서든 쓸 수 있음.
- 컴파일러가
바이트코드
를 생성 - 플랫폼마다
가상 기계
가 있어야한다.- 윈도우 가상기계, 리눅스 가상기계
- 각 가상 기계가 이 바이트 코드를 돌려 실행 결과를 만들어낸다.
0.2 C/C++ 언어 소개
C, C++의 철학
- C++은 C에서
객체지향
개념이 추가된 것 - 프로그램의
자율성
이 높다. - 실제 세계에서 쓸모가 있어야 한다.
- 프로그래머가 스스로 스타일을 선택할 수 있어야 한다.
- 유용한 기능을 추가하는 것이 오용보다 중요하다.
- 프로그래머의 의도를 알 수 없다면 스스로 명시하게 한다.
- C++아래에 다른 언어는 없다, (어셈블리어는 예외)
0.3 프로그래밍 과정 소개
- 풀어야 할 문제를 정의한다.
- 해법을 설계한다.
- 해법을 구현하는 프로그램을 작성한다.
- 프로그램을 컴파일 한다.
- 파일 1개 단위로 컴파일해서 각각 obj 오브젝트 파일을 따로 만든다.
- obj 오브젝트 파일들을 링킹한다.
- obj파일들을 링킹하여 하나의 실행파일로 만든다.
- include한다른 외부 라이브러리들것도 합침
- 디버깅한다.
- 테스트 해보고 문제가 있으면 고친다.
0.4 통합개발환경 IDE
의 기본적인 사용법
😀 Windows Visual Studio 기준
옵션 - 국가별 설정
에서 언어를 바꿀 수 있다.- 영어판 사용 추천!
- 오류메세지 검색하기 좋다
- 영어판 사용 추천!
- 코드파일 in
프로젝트
in솔루션
빌드
: 실행파일을 만드는 과정솔루션 정리
: 빌드한 것 삭제- obj, exe 파일들 삭제
- 모드 종류
디버그 모드
: 디버그를 도와주는 것들끼리 같이 저장되어 있어 용량이 매우 크고 느림릴리즈 모드
: 딱 최소한으로 사용자들이 쓰도록 하는 용도의 실행파일! 빠르고 용량 작다.- 배포 용은 릴리즈 모드
- x86 → 32bit / x64 → 64bit
- cd) 비쥬얼 스튜디오 말고 다른 IDE 중에
코드 블럭스
라는 것도 있다!
비쥬얼 스튜디오 솔루션, 프로젝트 관리
- 1개의 솔루션
- 프로젝트1
- main.cpp
- kgkg.h
- kgkg.cpp
- 프로젝트2
- hello.h
- hello.cpp
- gogo.cpp
- 각 프로젝트마다 언어가 달라도 된다.
프로젝트 별 exe 실행 파일들
은 솔루션 밑에 Debug 폴더에 모여있다.- 우클로
시작 프로젝트
를 바꿀수 있다.- 굵은 글씨로 되있는게 현재 이 솔루션의 시작프로젝트
- 빌드하면 시작 프로젝트가 실행되기 때문에 다른 프로젝트로 바꾸려면 시작 프로젝트 바꿔줘야 함
- 솔루션을 빌드하면 그 안에 있는 프로젝트들도 싹 다 빌드된다.
0.5 코딩하다 막혔을 때는?
- 당황X 분노X
- 잘 안풀리는 상황이 날 발전시키는 상황이라고 생각하자.
- IDE의
오류 메세지
를 잘 읽어본다 - 검색 엔진의 도움을 받는다.
구글링
! 커뮤니티
의 도움을 받는다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기