안녕하세요
어서 오세요
이게 마지막 강의예요
코스 요약본이에요
막바지에 이르렀죠
마무리하고 있어요
수업 시간에 배운 걸 상기시켜 주려고요
네 우리가 겪은 일들은 다 잊어요 이 강의를 마치는데 시간이
좀 걸리신다면 저희가 다뤘던 중요한 개념을 상기시켜드릴
겁니다
코드블록에 대해 다 배웠어요
코드 블록은 통합 개발 환경이에요
C 프로그램을 수정할 수 있게 해주죠
덕분에 C 프로그램이 토엑시큐트할 수 있죠
C 프로그램도 만들 수 있죠
디버깅은 중요합니다 오류를 찾아 고치는 거죠
프로그램을 작성하는 데 사용할 작은 툴이 생겼네요
아주 유용하죠
코드 블록은 서체화 인터페이스죠
매우 사용자 친화적이고 사용하기 쉬워요
C#의 기본 연산자에 대해서도 얘기했고요
다음으로는 논리 연산자와 연산 연산자 할당 연산자
관계형 연산자가 있죠
논리적 연산자는 ampersand와 Ors 같은 거죠
정보기술 연산자 + 곱셈
등을 비교할 수 있어요
그리고 중요 재배치 연산자는 데이터를
변수에 할당하죠
조건에 대한 말을 했었죠.
여기서 프로그램에서 결정을 내려야 해요
여기서... 순차적이진 않네요
도약해야 할 수도 있어요
네 질문의 답에 근거해 다른 코드를 실행할 수도 있어요
참인지 거짓인지에 따라서요
불리언 평가, 혹은 불리언 표현에 대해서도 배웠죠
if문에 대해 구체적으로 배웠죠
중첩된 if문이나 else문을 사용하는 방법이요
네 스위치 문도 얘기했죠 스위치 문은 상수나
변수를 비교할 때 아주 유용하게 쓸 수 있어요
스위치를 사용하면 if else 문의 많은 부분을 제거할
수 있어요
스위치가 더 효율적이죠
네 스위치를 사용할 때 특정 케이스에서 벗어나려면 브레이크를
사용해야 한다는 얘기도 했죠 프로그램에서 결정을 내릴 때 유용한
정보가 많아요
반복 코드에 관해 얘기했죠 if문처럼 제어 흐름과
관련된 거예요
코드를 여러 번 실행할 수 있어요
이제 염기서열 코딩은 안 돼요
이건 루핑 구조물이에요
for while, do while 같은
다양한 키워드를 사용할 수 있어요
포와 퀀타레어가 아주 비슷해요
당장 할 수 있는 건 다 할 수 있어요
사전 테스트 루프라고도 하죠
네 본체를 한 번 실행할 수도 있고 본체를 여러 번 또는
0번 실행할 수도 있어요
Do while 루프는 테스트 후 루프라서
정말 특별하게 달라요
체킹의 조건은 루프 맨 아래에 있어요
그 루프를 항상 적어도 한 번은 실행하게 되죠
프로그램을 통해 코드를 반복하는 건 아주 유용해요
배열도 얘기했죠
이것도 아주 중요한 개념이에요
배열은 데이터 타입에 기반한 groupdata를 가능하게 하죠.
네 그래서 int 형식의 변수 10개를 만드는 대신 int의 이름 하나를 만들고
10개의 요소를 저장할 수 있어요
배열에는 사각 괄호가 있는 특별한 구문이 있어요
크기를 확인하세요
어레이에 데이터를 입력할 방법이 있어요
매트릭스나 스프레드시트에 속하는 다차원
레이도 언급했죠
행과 열을 규제하는 배열이죠
이제 함수로 넘어가죠
C는 강좌 언어예요
C는 함수를 중심으로 구성돼 있죠
코드는 기능으로 복사할 수 있어요
네 네 어떤 것의 이름을 호출할 수 있고 이름은 여러분이 실행하고자 하는 코드 그룹을
포함할 수 있습니다
네 네 함수에 데이터를 전달하는
법 함수에서 함수로요
네 파일 상단에서 함수 프로토타입을 선언하는
호출 바이 값 대 참조 인자와 매개 변수 호출을 배웠습니다
아주 유용하죠
디버깅에 관해 얘기했죠
디버깅은 귀중해요 정말 효과적인 해결 기술이죠
문제 해결사가 되는 거죠
코드 문제 해결은 필수적인 기술이죠
네 우리가 디버깅과 찾기 오류 고치기에서 특정
개념에 관해 얘기했죠 콜 스택 같은 거요 여기서 식별할 수 있어요
프로그램이 중단될 때 중단될 때 어떤 기능이 실행되느냐에
따라서요
네 C# 코드에서 공통적인 실수에 관해 얘기했죠 변수
초기화나 세미콜론 누락 혹은 괄호 누락요
그리고 현존하는 컴파일러 메시지도요
이해하실지도 모르겠네요
네 컴파일러와 컴파일러가 무슨 말을
하는지 이해하지 못하면 디버깅하기가 어려워요
네 컴파일러가 말하는 특정 오류와 오류를 해석하는 방법에
대해 얘기했습니다
그래서 스트럭츠로 넘어갔죠
스트럭츠라는 건 아주 중요한 개념이라고요
네 배열과 비슷하지만 스트럭츠가 더 강력합니다 스트럭츠
덕분에 특정 요소들을 데이터 타입에 따라
분류할 수 있거든요
네 그래서 시간과 일별 스트럭츠 같은 예시를
사용해서 시간 같은 것도 저장할 수 있고 분, 초도 저장할 수 있고 연도 같은 날짜도 저장할 수 있어요
하지만 그 암호는 스트럭츠가 최고잖아요
다른 가변성이나 다른 형식을 함께 분류해 프로그램에
참조할 수 있어요
다른 데이터 타입을 정의하는 것과 같죠
약물을 초기화하기 위한 특정 구문이 있어요
둥지 구조도 얘기했죠
구조물을 포함하는 구조물요
사용자와 구조에 대해 얘기했죠
캐릭터 스트링도 논의했죠
캐릭터 스트링은 캐릭터 배열이죠
이런 다양한 문자열에 다양한 작업을
제공할 수 있어요
다양한 문자열 편성이 문자열을 통해 기능하죠
H요
서로 다른 문자열의 기초를 다뤘는데요
코스 포인터에서 가장 중요한 건 이거죠
이 과목에서 가장 어려운 선택이죠
하지만 아주 유용한 개념이죠
포인터를 이해하는 게 중요해요
포인터는 주소가 포함된 걸 수집할 수 있어요
포인터는 런타임에 동적으로 할당되게 해주죠
팁을 주면 기억을 관리하고 조작할
수 있어요
다른 많은 언어에서처럼 C에 있는 쓰레기
수집가도 없어요
별표 구문을 이용해 포인터를 정의하고 사용하는
법을 배웠죠
네 그리고 기능에 포인터를 전달하는 법도 배웠습니다
이제 참조로 전달하는 게 가능해졌네요
포인터와 배열에 관해 얘기했죠
네 캐릭터 포인터가 본질적으로 캐릭터 문자열과
캐릭터 배열 및 그 유사성에 대해 말씀드렸죠
네 데이터 단축을 다뤘는데요 메모리를 할당하고
데이터를 자유롭게 하고 포인터 산수도 다뤘는데
정말 훌륭한 표기법입니다 한 글자를 다른 지점과 메모리로 빠르게
옮겨갈 수 있고 편리하게 표기할 수 있거든요
작성한 코드 양을 줄일 수 있어요
네 하지만 다시 말씀드리지만 이번 강의에서 가장 중요한 개념은 이 개념을
공부해야 한다는 겁니다 아주 헷갈리는 개념이거든요
도에서 포인터가 잘 안 들리죠
네 네 잘못된 메모리 주소를 가리키거나 배열이나
메모리 공간에서 벗어나거나 둘 중 하나예요 배열이나
메모리 공간에서 벗어나는 거죠
가장 중요한 C 프로그램은∙∙∙ 모든 C 프로그램은 포인터를
포함하고 있어요
네 전처리 장치도 배웠죠 톤이 아니라 전처리 장치요 상수 정의와 include directive를
사용해 다른 헤더 파일을 포함하는 것에 대한 정보요 C 표준 라이브러리에서
제공되는 코드를 재사용할 수 있도록요
여러분이 작성한 함수를 재사용하고 싶다면 owninclude 파일을 생성하세요.
입력과 출력이죠
네 이것은 프로그램에서 명령줄 인수를 읽는 것과 관련이 있습니다
혹은 scanf를 이용하여 키보드 혹은 printf에서 읽어 콘솔에 결과물을
보여줍니다
Printf는 디버깅에 유용하죠
Scanf는 사용자의 읽기량을 높여줘요
대부분의 프로그램은 사용자에게 데이터를 캐스트하죠
스캔이 좋은 방법이죠
그리고 명령줄 인수를 명령줄에서
프로그램으로 보내죠
이건 파일 입력과 출력과 밀접한 관련이 있어요
파일을 읽고 쓰는 법을 배웠어요
파일은 영구 데이터를 변조할 수 있게 해주죠
가장 중요한 프로그램이죠 보세요 많은 데이터를 저장해야
하고 컴퓨터를 재부팅할 때 저장해야 하죠
파일을 작성하고 파일을 읽는 거죠
네 그리고 표준 lib header가 제공하는 중요한
함수에 대해 많이 배웠습니다 문자열을 작성하기 위한 fgetc:fgets 그리고 fprintf와
fscanf 같은 파일 형식 함수도요 아주 아주 좋아요
표준화 라이브러리도 배웠죠 주로 문자열 조작
문자열 기능이요
네 그리고 연산 유틸리티에 사용되는 수학 함수나
환경 변수를 얻거나 프로그램을 내보내는 함수에 대해서도 봤습니다
그리고 대부분의 프로그램에서 사용되는 표준 헤더 파일도
봤습니다 제한 같은 거요 다른 멋진 녀석들도 있어요
그 결과 C에 관해 아셔야
할 게 있어요
타우라이트 초보자 C 프로그램도 할 수 있을 거예요
네 초급자 C 프로그램도 못 쓰고 공부도 다 안
했으면 난 강사로서 실격이야
지금쯤이면 기본 프로그램 작성이 몸에 밴 상태이길 바라요
하지만 프로그래밍은 연습이 필요해요
네 연습을 해야 하고 많은 코드를 작성해야 합니다 그리고
시간이 지남에 따라 점점 더 나아집니다
이제 고품질 C로 보다 효율적으로 쓸 수 있죠
과정 내내 고품질 코드에 집중하려고 노력했어요
그 말은 여러분의 코드를 더 쉽게 유지하고 버그를 찾아
고치기 쉽다는 거죠
프로그램 toa 고객을 출시하면 그 프로그램은 5년, 10년
정도 지속될 수도 있어요
새로운 기능을 추가할 수 있어요
버그를 고쳐야 해요
따라서 여러분의 코드가 고품질인지 확인하세요
암호가 모듈이어야 한다는 뜻이죠
체계적인 기능이어야 해요
기능에 통일성이 있어야죠
한 가지에 집중해야 해요
10가지 다른 걸 하면 안 되죠
코드가 수천 줄이나 되는 함수를 쓰면 안 돼요
네 입력을 읽는 기능이 있다면 입력을 읽게 하세요 입력을 읽게 하세요 프린트
출력을 하지 않아도 되고 다른 것들도 할 수 있습니다
모듈형 프로그래밍 이스커버리는 아주 중요하죠
다행히 c가 기능을 중심으로 조직돼 이걸 지원하죠
프로그래밍은 커플링이 약해야 해요
그 말은 종속성이 별로 없다는 거죠
네 전역 변수를 사용하지 않아도 되고 전역 변수를 사용하는 함수가
없어도 되죠
네 커플링은 종속성이 더 크죠 촘촘한 커플링이
있으면 프로그램 디버그가 더 어렵죠 어디서든 오류가
발생할 수 있으니까요
연결을 제한하면 오류를 차단할 수 있어요
네 네 커플링 역시 함수의 형태가 될 수 있는데 전역 데이터와
너무 많이 협력하는 거죠
또한 다른 헤더 파일에 종속성이 더 있을 수 있다는
의미이기도 하죠
네 그리고 구현을 통해 양질의 C# 코드를 작성하는 것 외에도 코드를
읽을 수 있도록 만들어야 하죠
그게 무슨 뜻이냐면 좋은 명명 관습을 가질 수 있다는 거죠
네 그리고 변수를 생성할 때는 x1이나 p1이라는
이름으로 변수를 생성하지 마시고 의미 있는 이름을 사용하세요
변수가 실제로 뭘 저장하죠?
만약 EmployeeID와 관련된 데이터를 저장하려면 EmployeeID로
변수 이름을 생성하세요.
네 두 개의 숫자를 더하는 함수를 만들고
있다면 함수를 이름 붙이세요 상식적인 것을 추가합니다 그러면 프로그램은
가독성이 높아지고 코드는 이해하기 쉬워집니다
네 의미 있는 명명 규칙을 사용하는 것 외에도 코드 블록에
대한 들여쓰기도 제공해야죠
그래야 따르기 쉽거든요
네 많은 라인에 새로운 라인과 들여쓰기 없이 모든 코드를
가지고 있다면 이해하기 어려울 것입니다.
새 줄에는 들여쓰기와 띄어쓰기를 사용하세요
이 과정의 끝에 더 나은 문제 해결사로 디버그 andbe
할 수도 있어요
디버거와 코드 블록을 어떻게 쓰는지 아시죠?
네 컴파일러 메시지를 이해하죠 모든 프로그래머에게
필수적이고 필수적인 기술은 문제 해결과 디버깅 오류를
찾고 고치는 거죠
printfstatements를 이용해 오류도 찾을 수 있어요
C 프로그램 언어의 근본적인 측면을
이해하셔야 해요
이 강의와 전 과정의 모든 강의에서 다뤘던
내용이죠
내가 하고 싶은 말은 축하한다는 거예요
자부심을 가져요
C# 프로그래밍 언어는 배우기 쉬운 프로그래밍
언어가 아닙니다 주로 포인터와 메모리 관리 유연성 때문이죠
등을 두드려야 해요
정말 잘했어요
과정을 마치고 어려운 프로그래밍 언어에
대해 많은 걸 배웠죠
장기적으로 여러분이 베터 프로그래머가 되도록 도와줄 거예요
네 다른 언어를 쉽게 배울 수 있게 해줍니다 많은 언어들이
c에 기반하고 있으니까요
자부심을 가지세요
코드를 작성하는 능력에 대한 여러분의 자신감이
향상되었길 바라요
네 프로그래머가 되기 위해 로켓 과학이 될 필요는
없습니다 이 수업과 수강이 여러분께 도움이 됐으면 해요
이제 항상요 한 가지 더 말씀드리자면 주저하지
말고 질문하세요 평가용 피드백이든 건설적인 비판이든요
질문에 대답하러 왔어요
네 전체 과정을 듣고 강의를 다 들었다고
해서 다른 프로그램을 만들거나 다른 개념으로
어려움을 겪을 때 제게 도움을 청할 수 없는
건 아니죠
피드백과 의문을 보내주시면 늘 개선할
방법을 찾죠
네 그리고 혹시 콘셉트가 제대로 설명되지 않았다고
생각하시면 저한테 알려 주세요 강의를 더 쓰거나 개선할
수 있어요
전 항상 이 코스를 연구해요
강의 내용을 업데이트해서 개선할 거예요
그러니 피드백이 중요하죠
마지막으로 수업에 등록해 주셔서 감사해요
저한텐 의미가 커요 정말 열심히 했거든요
이 코스에 등록해줘서 고마워요
많이 배웠길 바라요
하지만 자화자찬해 주세요 정말 고마워요
행운을 빌어요