안녕하세요, C를 위한 초보자 프로그래밍 수업이에요
제이슨 피턴입니다 여러분을 가르칠 거예요
이 수업을 수강해 주셔서 감사해요
정말 재미있을 거예요 여러분께 동기를 부여하기 위해 최선을 다할 거고요 C 프로그래밍 언어에 대해
모두 배우도록 도울게요
그럼 시작하죠
먼저 제 소개를 좀 할게요
네 네 빙햄턴 대학에서 컴퓨터 공학 석사를 받았고 뉴욕 주립대학에서
학사 학위와 컴퓨터 공학 학위를 받았어요
2001년에 석사를 땄어요
16년 넘게 소프트웨어 개발자로 일했어요
11년 넘게 온라인 강사로 일했어요
네 20개가 넘는 다양한 강의를 지시했습니다 개체 지향 프로그래밍부터 컴파일러 이론까지
다양한 종류를요
저는 컴퓨터 프로그래밍에 관해 방대한 경험을 쌓았어요
C 프로그래밍 언어를 16년 넘게 작업했어요
첫 직장에 취직하자마자 C 코드를 작성하기 시작했어요
네 네 여러 대학에서 C 클래스 초급반과 고급반도 진행했기 때문에 커리큘럼에 대한 경험이
풍부하고 C 개념을 학생들에게 설명하는 데에도 능숙하죠
제록스 사에서 소프트웨어 개발자로 일한 지 10년에서 12년쯤 됐어요
여기서 일하는 동안 C# 코드를 작성했어요 C++ 코드도 좀 썼고요
Linux 플랫폼에서 소스 코드 리포지토리를 실행하고 실시간 코드를 작성하죠
주로 객체 지향 언어와 모바일 프로그래밍에 주력하고 있어요
제가 좋아하는 일이에요
C++나 Java 같은 거요 하지만 C# 언어는 제가 전문이죠
고품질의 코드 작성에도 주력하고요
이번 강의 내내 강조할 중요하고 중요한 개념이죠
네 여러분 모두 좋은 코드 작성하는 데 집중하세요 좋은 코드만이 아니라 프로그램
유지에 도움이 되는 좋은 코드를 작성하는 데 집중하세요
오늘 다룰 주제 중 몇 가지는 다음과 같이 있는데요
그런데 이런 주제를 다룰 때 제공할 거예요
강의 자료 준비할게요
직접 운동도 할 수 있어요
평가를 할 거예요
네 코드와 프로그래밍 개념을 설명해 드리겠습니다 통합된 개발 환경에서 편집하면서요
직접 해야 해요
먼저 일반 C#에 관해 얘기하겠습니다 개요를 약간 보여드리죠
C# 프로그래밍 언어가 얼마나 효율적인지 말씀드릴게요
휴대도 가능하고요
다양한 플랫폼에 걸쳐 작성할 수 있어요
파워와 유연성이 풍부하고 프로그래머 지향적이죠
C의 역사도 간단히 알려드릴게요 맥락을 파악하기 위해서요
C의 공통 언어 특징을 설명하는 것으로 다음을 진행하죠
C는 명령어예요
가장 현대적인 언어예요
기능으로 구성돼 있어요
모듈 디자인이 있어요 구성된 프로그래밍 언어죠
코드를 작성할 때 하향식 플랜도 할 수 있어요
C#을 사용하는 장점은 C#에 집중할 수 있다는 겁니다 작고 빠른 프로그램에요
아주 믿을 만하고 배우기도 쉽고 이해하기도 쉬워요
네 동료 개발자나 동료에게 C 프로그램을 취한다면 아주 빨리 따라
할 수 있어요
현대적인 크로스 플랫폼 통합 개발 환경을 이용할 거예요
코드를 수정할 거예요
IDE를 이용해 코드 디버그도 할 거예요 아주 중요하죠
그래서 이것도 콘셉트 중 하나로 소개될 거예요
이 환경에 대해 알아보고 도구 사용법을 보여드릴게요
먼저 기본 개념부터 시작하죠
C 프로그램이 어떻게 생겼는지 설명하고 예제를 보여드릴게요
기본 C 프로그램의 구조를 보여드릴게요
네 코드에 주석을 다는 방법과 printf 함수를 이용한 기본 출력 방법을 말씀드리겠습니다
Hello World의 예도 살펴보고 C#으로 첫 프로그램을 작성하는 것도 할 거예요
이어서 화장품에 관해 얘기해 보죠
네 네 makefiles에 대해 상세히 다루진 않겠지만 이 도구를 어떻게
빌드하고 컴파일할 수 있는지 이해하도록 도와드리고 싶어요
네 그리고 가장 기본적인 프로그래밍 개념에 대해 이야기 할 텐데요 변수를 생성하고 사용하는
것이죠
변수는 메모리와 데이터, 메모리를 프로그램에 이름과 연결하는 거죠
여러분 코드에 많은 변수와 많은 다양한 문장을 만들 거예요
그리고 float double와 char 데이터 타입을 포함하는 데이터 타입에 대해 이야기할 텐데요
네 그리고 후반에는 에넘 같은 고급 데이터 타입에 관해 얘기할
겁니다 타이핑 키워드도 사용해서요
기본 운영자에 대한 정보를 제공하죠
덧셈, 뺄셈, 수학 연산자 같은 것들이죠
논리 연산자에도 포함됩니다 and or 같은 거요
일종의 결정문 같은 거죠
변수에 데이터를 할당하는 방법에 대해 알아보겠습니다 할당 연산자를 이용해서요
코드에서 결정을 내리는 거죠
아주 중요한 프로그래밍 개념이죠
이 얘기도 하죠
이런 걸 조건문이라고 해요
if, switch 같은 키워드가 있어요
예제를 제공하고 다양한 구성 요소를 살펴볼게요
이어서 코드 반복에 관해 얘기해 보죠
C의 커다란 루핑 구조는 while과 while을 위한 거죠
다 똑같아요
구문이 좀 다를 뿐이죠
데이터를 저장하고 배열을 이용해 두 가지로 분류하는 법을 배울 거예요
네 배열을 어떻게 초기화하고 다차원 배열을 어떻게 정의할지 논의할 겁니다
매트릭스 스프레드시트 유형의 개념이죠
기능요
함수는 C# 프로그래밍 언어와 관련해 가장 크고 중요한 개념 중 하나죠
모든 걸 행사 중심으로 사용하거나 정리하면 안 돼요
이걸 모듈 유형 프로그래밍이라고 하죠
네 네 함수를 선언하는 법과 사용하는 법 데이터를 전달하는 법 데이터를 리턴하는
법을 배웁니다
보다 고급 개념도 얘기할 겁니다 호출 바이 값과 레퍼런스 호출 바이 디버깅 같은 거요
디버깅은 모든 프로그래머에게 필수적인 개념이죠
오류를 찾아 고치는 개념이죠
네 네 오늘 다룰 콜 스택은 프로그램이 중단됐을 때 어디서 중단됐는지를 보여주죠
아주 중요한 개념이죠
네 많은 C 프로그래머들이 하는 흔한 실수를 알려드릴 테니 실수를 발견했을 때
고치는 법을 이해하세요
컴파일러가 컴파일러가 확인합니다 컴파일러가 구문학적으로 올바른지 확인하죠
그렇지 않으면 에러 메시지나 경고를 보내죠
컴파일러가 하는 말을 이해해야 해요
컴파일러 메시지와 그걸 이해하는 방법에 대해 얘기해보죠
우린 스트럭츠에 대해 의논할 거예요
여기서 배열과 데이터 저장이 비슷한 구조를 배우게 되죠
데이터 구조예요
네 네 오늘은 스트럭츠를 초기화하는 방법과 내장 구조 개념에 대해 이야기할 거예요
네 개체에 익숙한 분들을 위해 설명하자면 좀 더 친숙하게
다룰 수 있지만 강력하진 않아요 문자열은 큰따옴표 안에 C 글자와 숫자 문자가 들어있죠
네 네 이건 기본적인 데이터 타입 중 하나인데요 배열로 생각하시면 돼요 개념이
좀 다르죠
그걸 살펴볼 거예요
문자열 등에서 실행 가능한 일부 작업에 관해 얘기할 거예요
조언이죠
포인터는 이 과정 전체에서 가장 중요한 개념일 거예요
그래서 시간을 많이 들여야 해요
포인터는 여러분의 메모리를 어디서 관리해야 하는지 보는 개념이죠
네 다른 언어로 프로그램한다면 여러분에겐 익숙하지 않은 개념일 수도 있어요 왜냐하면 이건 보통 여러분을 위해
만들어지거든요
특히 Java나 C#을 프로그래밍하면 포인터를 걱정할 필요가 없어요
C에서는 기억 관리도 신경 써야 해요
그래서 조언이 중요해요
네 그리고 포인터를 정의하고 사용하는 법을 알려드릴 겁니다 함수와
배열도 사용하고 메모리를 생성하기 위해 표준 라이브러리 호출도 할 겁니다 탈륜 포인터도 알려드릴 거고요
말씀드렸듯이 중요한 개념입니다 시간을 많이 들여야 할 거예요
네 많은 예제를 제공해 드리겠습니다 많은 현실 유형의 시나리오를요 포인터는 여러분의
뇌에 입력됩니다 포인터를 완전히 이해하지 않고는 C 프로그래밍 언어를 사용할 수 없으니까요
시간을 많이 들여야겠네요
이것에 관해 배우게 될 전처리 장치는 컴파일러 전에 발생하는 단계예요
구체적으로 여러분이 이해해야 할 지시 사항이죠 정의하고 포함하는 것처럼요
한번 살펴보죠
입력과 출력 콘솔에 데이터를 읽고 쓰는 방법을 살펴볼 거예요
printf에 대해 얘기했죠
네 getchar와 scanf format specifier를 이용해서 좀 더 자세히
알아볼 거예요
파일에 데이터를 읽고 쓰는 방법에 대해서도 얘기할 거고요
여러분이 코드를 작성할 때 중요한 개념 중 하나입니다 데이터를 저장하는 방법이죠
C#에는 다양한 파일 작업이 있습니다 그 중 일부를 논의하도록 하죠
네 네 하지만 C는 아주 낮은
수준이죠
운영 체제와 상호 작용을 꽤 잘 할 수 있어요
네 C# 프로그래밍 언어와 함께 오는 표준 C 라이브러리가 있어요 활용할
수 있는 다양한 기능이 많죠
네 문자열 함수와 문자열 조작 함수가 있고 수학 함수와 유틸리티 함수가 있어요
네 코드 효율성에 도움을 주는 기본 함수들을 모두 살펴볼 겁니다
다양한 라이브러리나 다른 언어처럼요
C가 제공할 겁니다 파일을 쓰고 문자열 조작에서 읽을 수 있도록요
네 수학 함수에 코사인 앤 탄젠트를 쓰고 싶다면 언어로 다 제공돼요
곧 알게 될 거예요
우리가 다룰 주요 주제들입니다 초창기 주제들이죠
네 아직은 고급 주제를 다루진 않겠지만 기본은 다룰 겁니다 기본요
네 따라서 이 과정 마지막에 초보자 C# 프로그램을 작성할 수 있어야 합니다 C# 언어의 근본
측면을 이해하고 입력과 출력 제공법을 알아야 하죠
파일 i는 포인터의 개념을 드릴 다운하는 작업을 하고요
네 네 또한 이 과정을 수강하면서 양질의 코드를 작성하는 데 집중하게 됩니다 효율적인 코드요
아주 중요한 거예요
소프트웨어 라이프사이클 유지 보수 단계에 영향을 줘요
네 오류를 찾아 고치고 싶다면 품질 좋은 코드가 있다면 훨씬 쉽죠
네 예제를 살펴보면 이 개념을 배우면서 올바른 방법으로 하는 방법을 배우게
돼요
모듈화시키는 방법을 배워 함수로 그룹화하도록 하죠
네 네 서로 다른 파일에서 종속성이 낮고 커플링이 낮아서 서로 영향을
안 주도록요
코드에 종속성이 많으면 할 수 있어요
버그를 찾아서 고치는 게 훨씬 쉬워요
네 새 기능이나 코드를 프로그램에 추가하고 싶을 때 모듈식이라면 훨씬
쉽죠 정돈된 기능이라면요
그래서 고품질의 코드를 작성하는 개념에 초점을 맞출 거예요
그냥 되는 게 아니라 제대로 해야죠
코스 마지막에 오류를 찾아서 고칠 수 있어요
좋은 프로그래머가 되려면 문제 해결이 필수예요
문제 해결 기술과 코드 디버그 방법에 초점을 맞출 겁니다 효율적인 문제 해결사가
되는 방법도요
컴파일러 메시지를 이해하는 것도 포함되죠
디버거를 실행하는 방법 콜 스택을 사용하는 방법 이런 것들을 이해하죠
문제 해결법은 모든 강의에서 연습할 거예요
네 여러분은 앞서 언급한 C# 프로그래밍 언어의 근본적인 측면을 이해하실
수 있어요
이건 기본적인 C#이죠
마지막으로 즐길 거예요
동기 부여를 위해 최선을 다할 거예요
재미있고 신나는 예제를 보여드릴게요
맞아요 강의나 운동 중에 졸지 않았으면 좋겠고 활기차게 만들 거예요 동기 부여를
위해 최선을 다해서 이 과정을 도울게요 ? 네, 그럼요
그래서 기대돼요
정말 기대되네요 여러분 모두 C# 프로그래밍 언어에 대해 배울 준비가 되셨으면 좋겠어요
고마워요