안녕하세요, 어서 오세요
심폐 세뇌 언어에 대해 얘기해 보죠
드디어 c에 대해 조금씩 배울 수 있어요
C#이 어떻게 생겼는지에 대한 개요를 제공하고 싶어요
C는 일반적인 목적형 프로그래밍 언어예요
구조화된 프로그래밍을 지원하죠
네 이제 고급 언어 얘길 했는데요 C#이 어떻게
고급 프로그래밍 언어인지 설명했죠 조립 언어를 쓰는
것보다 훨씬 쉽고 효율적으로 사용할 수 있다는
뜻입니다
네 특히 하지만 아주 보편적인 용도예요 무슨 뜻이냐면 모든 종류의 응용
프로그램을 C# 프로그래밍 언어로 작성할 수 있다는 거죠
일부 프로그래밍 언어는 응용 프로그램 전용 또는
도메인 전용이죠
그렇죠 그래서 예를 들어 코발트 같은 프로그래밍 언어에선 올바른
비즈니스 응용 프로그램만 사용할 수 있어요
매트랩이나 아툴 같은 프로그래밍에서는 특정 애플리케이션만
작성할 수 있어요
C 운영 체제 응용 프로그램도 쓸 수 있어요 일반 프로그램도
쓸 수 있고요 온갖 종류가 있죠
네 컴퓨터 프로그래밍 언어에서도 필수예요
기본적으로 문장이나 변수를 중심으로 구성된다는
거죠 그런 거요
네 컴퓨터 프로그래밍을 좀 더 자세히 공부한다면 다양한 유형의
프로그래밍 언어가 있다는 걸 알게 될 거예요
기능적 프로그래밍 언어라든가 논리적 프로그래밍 언어
같은 거요 그건 프로그래밍 언어가 좀 다르게 구성됐다는
뜻이죠
예를 들어 논리 프로그래밍과 같은 경우는 조건자의
집합을 가지고 질문을 하는 것이죠
C는 필수예요 할 일을 설명하는 단어죠
이 문들을 사용할 거예요
여러분 프로그램에 이 라인을 작성하세요
네 기본적으로 코드의 상태나
데이터의 상태를 바꿀 거예요
네 어떻게 일을 처리하는지에 초점을 맞추고 변수와 데이터,
메모리, 알고리즘을 생성할 거예요 그리고 구문을 이용해서
이걸 할 거예요
가장 널리 쓰이는 프로그래밍
언어 중 하나죠 사실이에요
네 그게 그걸 배우는 좋은 이유 중 하나죠 정말 많은 다양한
응용 프로그램과 많은 다양한 코드에 사용되니까요
같이 산 지도 오래됐고요
현대 언어예요
네 무슨 뜻이냐면 대부분의 기본 제어 구조를 사용한다는 거죠
조건문 같은 게 있어요 조건문, if문 그리고 현대
언어의 특징이요
대부분의 현대 언어가 사용하는 함수,
가변성 등이죠
네 하향 설계용이에요 위에서부터 시작해서 계획할
때 내려올 수 있죠
네 사용자 인터페이스 레벨에서 시작해서
하위 레벨로 내려가서 하위 레벨 코드를 구현할 수 있습니다.
기능 사용을 중심으로 구성돼 있어요
네 수학하시는 분들은 함수나 모듈 디자인이
뭔지 이해하시겠죠 이건 아주 기본이에요
하지만 기능은 코드를 정리하는 방법이죠
모듈 디자인과 관련해 많은 예제를 드릴 거예요
네 당장 이해하는 건 중요치 않지만 높은 수준에서 C가 이
개념을 중심으로 구성된다는 걸 아셔야 해요
신뢰할 수 있고 읽기도 쉬워요
신뢰할 수 있다는 건 코드를 쓸 때 지시한 대로
한다는 거죠
아무 이유 없이 그냥 쓰러지진 않을 거예요
가독성이라는 건 여러분이 그걸 보고 소스 코드와 구문을
볼 때 무슨 일이 벌어지는지 이해할 수 있다는 뜻이에요
언어를 이해한다면요
맞아요 의도가 뭔지 추측할 필요가
없어요 그게 무슨 뜻이죠? 복잡하지 않다는 건가요?
네 C 프로그램을 보고 언어를 이해한 후에 읽기가
아주 쉬워요
매매니 컴퓨터부터 모든 운영 체제 메인프레임에
사용되죠
말씀드렸듯이 널리 쓰이는 방법이라 배우기에 아주 유용하죠
워드 프로세싱 프로그램과 스프레드시트 컴파일러를 생산하기
위해 선호되는 언어죠
컴파일러는 대부분 C로 쓰여 있어요
텀컴파일러의 의미는 지난 강의에서 이해했어요
네 이건 알림인데요 소스 코드를 가져다가 지침 집합으로
번역하는 거죠
c 언어로 된 프로그램인 acompiler를
쓸 수 있어요
내장형 시스템 프로그래밍에 대한 인기가 높아졌죠
내장 시스템은 마이크로프로세서 같은 건데 자동차, 카메라,
DVD 플레이어에서 발견되죠
임베디드 프로그래밍은 효율적이어야 해요
많은 메모리나 높은 수준의 하드웨어로 실행되진 않죠
실시간 프로그래밍이 내장돼 있어요
아주 효율적이라 꽤 인기 있죠
리눅스 개발도 계속 진행 중이고요
c의 역사에 대해 말씀드리면 이유를
아실 거예요
리눅스는 아주 인기 있는 운영 시스템입니다 잘 모르시는 분들도 계실 텐데요
창문과 비슷해요
컴퓨터와 교류하는 다른 방식일 뿐이죠
많이 쓰였죠
매코퍼레이션 시스템인 매킨토시의 기초가 됐죠
C는 운영 체제를 쓰는 데 큰 역할을 하고요
이 언어를 배우려는 또 다른 중요한 이유죠
심폐 소생술은 수준이 높다고 말씀드렸죠?
네 그 말은 새 모델이나 언어를 수정하고 적용하기가 쉽다는
거죠 또 다른 장점은
그렇죠 1990년대에 많은 소프트웨어 업체가 C++ 언어로 대규모 프로그래밍 프로젝트를
진행하기 시작했죠
그게 무슨 상관인지 궁금하시겠죠
우린 c++가 아니라 c를 배우잖아요
그 이유는 c는 c++의 부분 집합이기 때문이죠
체계적인 기능이에요 모듈 디자인이죠
C++는 항상 개체 주변에 있어요
이 클래스에서는 공부방식을 다루지 않을 거예요
네 c++를 언급하는 이유는 c+를 배우면 c++에 대해 잘 알게
되기 때문이죠
c++도 정말 인기 있는 언어예요
여러분이 만든 C# 프로그램은 C++에서도 유효해요
멋질 거예요
네 네 만약 여러분이 c++를 배우고 싶다면 이미
언어의 절반을 알게 될 거예요
c+를 알게 될 테니까요 아주 중요하죠
C는 c++의 부분 집합이죠
네 네 C는 기업이 필요로 하는 핵심 기술로 항상
10위 안에 듭니다
그것도 배워야 할 이유죠
전 일할 때 매일 C를 써요
제록스 사에서 일해요
매일 써요
네 리눅스 운영 체제에서 프로그램하고 C# 응용 프로그램을 작성합니다
C++ 응용 프로그램도요
오래된 언어가 아니에요
더는 사용하지 않아요
꽤 많이 쓰였죠
네 C로 시간을 낭비하고 싶지 않다고 생각하신다면
새롭고 흥미로운 걸 배우고 싶어요 루비나
더 새로운 거요 Go 같은 거요
네 네 필요로 하는 기술이죠, 여러
분야에서요
C#을 배우면 아주 시장성 있는 이력을 갖게 되죠
다양한 자세를 취할 수 있어요
C는 전형적인 기계 지침에 효과적으로 구성을
제공하죠
설명서가 가장 낮은 단계에 있다는 설정이
나왔는데요
네 C#에서 매핑이 쉽기 때문에 어셈블리 언어에서 이전에
구현된 프로그램에서 종종 사용되죠
그리고 이런 이유 때문에 운영 체제나 내장된 프로그램을 작성하는 것도 아주
쉽죠 말씀드린 것처럼요 그렇기 때문에
네 메모리에 대한 낮은 수준의 접근을 제공하고 많은 낮은 수준의 기능을 가지고 있죠 하드웨어와
직접 상호작용할 수 있습니다 많은 드라이버들이 있습니다
드라이버는 하드웨어와 연동되는 프로그램이에요 많은 드라이버가
C로 작성됐죠
최소 Runtime 지원이 필요하죠
조립 설명서와 쉽게 매핑되기
때문이죠
역사 어바웃 어바웃은 고대 언어예요
벨 연구소의 데디니스 리치라는 사람이 1972년에 발명했죠
그는 리눅스의 효시인 유닉스 운영시스템을 연구했죠
기본적으로 다른 하드웨어에서 실행되는 운영 체제예요 PC 하드웨어에서
실행되는 Linux죠
오래됐다는 게 장점이죠
유닛티지일 수도 있지만 오래된 거예요
검증도 끝났고 믿을 만해요
프로그래머들을 위한 도구로 만들어졌죠
네 네 언어를 개발할 때 주요 목표는
유용하고 쉽게 읽을 수 있는 언어였어요
네 가독성을 언급했는데요 기본적으로 프로그램을 보고 무슨 일이 일어나는지
빨리 이해하는 거예요
복잡하지 않아요
작성 가능성이란 코드를 빠르고 효율적으로
작성하고 작업을 빠르게 하는 거죠
네 여러분이 코드를 쓴다면 숫자 2개를 추가하기 위해 20줄의
코드를 쓸 필요가 없죠 코드 한 줄을 작성합니다
쓰는 건 쉬워요
네 가독성과 쓰기 능력은 프로그래밍 언어의
중요한 목표이자 장점입니다 C#도 쉽게 이 점을 충족시키죠
역사가 더 있어요
처음에는 유닉스 운영 체제의 개발 언어로
널리 알려졌죠
네 1972년 이후에 나온 모든
새로운 운영 체제는 C나 C++로 작성되었습니다
아주 인기 있고 유용하죠
B라는 이름의 이전 세뇌 언어에서 발전해서
C라고 불리죠
별로 똑똑하진 않았나 봐요
그냥 b, b, c라고 했어요
D로 시작하는 단어도 있어요
네 b의 중요한 개념을 많이 사용합니다 데이터 입력이나 다른
강력한 기능을 추가하는 동안에요
데이터 입력이 뭔지 모르실 수도 있지만 지금은
신경 쓰지 마세요
네 b의 새 기능을 추가했다는 걸 알아두세요 주로 b는 유형이 없다는
문제가 있었어요 데이터에 유형이 없다는 거죠
C는 더 나아졌고요
대부분의 컴퓨터에서도 사용할 수 있어요
네 그러니 이건 장점이죠 C# 프로그램을 쓰고 싶다면 대부분의
운영 체제에서 쓸 수 있어요 Windows에도
쓸 수 있고 Mac에도 쓸 수 있고 Linux 운영 체제에도 쓸 수 있어요
하드웨어도 독립적이고요
코드를 작성할 때 또 다른 중요한 요소죠
하드웨어가 독립적이라면 휴대하기 더 쉽겠죠
그 말은 프로그램을 가져다가 다른 운영 체제에서
실행할 수 있다는 거죠
네 대부분의 컴퓨터에서 사용 가능하다는 건 C# 프로그램을 작성할 수 있다는
뜻이죠 휴대용이 아니면 작동하지 않아요
하드웨어 독립 제도이기 때문에 많은 다른 시스템에서도 작동할 수 있죠
그래서 1970년대 후반에는 오늘날의
전통적인 C로 발전했죠
이 클래스에서 보게 될 게 전통적인 C죠
다양한 하드웨어 플랫폼이 급격히 확장되면서
많은 변화가 일어났죠
네 이번엔 c의 다양한 버전에 대해 얘기해보죠 무슨 뜻이냐면 다양한 표준이 있다는
겁니다 Windows 10이 있고 Windows
A와 Windows 7이 있듯이요
c의 다양한 버전이 있어요
C89, C90, C99 C11이 있어요
이건 쇼어예요 1989년, 1990년 1999년, 2011년이죠
c의 표준 버전이죠
네 하드웨어 의존적 가정 없이 표준 C로만 작성된 프로그램은
표준 C 컴파일러와 함께 플랫폼에서 제대로 실행됩니다
기준을 세우는 게 중요하죠
그러니까 여기서 말하고 싶은 건 c의 다양한 변형이
있었다는 거죠
1989년부터 표준화하기 시작했어요
표준화하면 어디서든 실행할 수 있어요
Microsoft가 자기들 버전의 c를 릴리스하지 않아요
구글이 c 버전을 출시하면 그 문제는
해결되는 거죠
표준화했죠
네 비표준 버전 c를 갖고 있다면 다른 운영 체제나 장치에선 작동하지
않을 수도 있어요
표준화는 중요해요
네 이걸 언급한 이유는 어떤 표준에 중점을 둘 것인지
알려드리기 위해서입니다 그리고 표준에 대해서 약간 알려드리겠습니다
C89는 1차 기준이에요
모든 c 컴파일러가 지원하고 있어요
네 네 오늘날 C로 쓰여진 대부분의 코드는 C89에 기반합니다
기본 구조가 있죠
그래서 각 표준은 언어의 새로운 특징 등을
갖죠 그게 중요한 또 다른 이유죠
하지만 C89는 가장 오래돼서 가장 널리 사용되죠
네 C99는 약간 수정해서 일부 기능을 확장시켰죠 기능들을
볼 수 있습니다
광범위하게 채택되지도 않았고 모든 컴파일러가
지원하는 것도 아니지만 주로 C99에 초점을 맞출 거예요
네 현재 표준은 일반적으로 C11이라고 부릅니다 2011년이죠
많이 사용되진 않지만 아주 많은 멋진 기능과 멋진 다양한
것들이 있어요
C99에 초점을 맞추고 3개 모두에 대해 얘기해보죠
설명 좀 해주세요 C 랩 컴파일러는 표준에서 의무화된
모든 언어 기능을 구현할 수 없습니다 가끔 일어나는 일입니다
C#의 하지만 C#의 예제와 개념을 기초로 하죠 세 가지 기준 모두 C11의
새로운 개념에 집중하는데 주로 C99입니다 C99가 기본
개념이죠
전에 언급했지만 다시 한 번 강조할게요
소파를 언급한 이유는 C가 중요하기 때문이에요
이래서 배우는 게 중요하고 이래서 인기가 많은 거예요
사람들이 좋아하기 때문이죠 읽기가
쉽거든요
네 그리고 아까도 말씀드렸잖아요 데니스 리치의 목표는 개발자들이
사용하게 하는 것이었습니다 개발자들의 언어입니다
네 그래서 지난 10년, 20년 동안 여러분은 C++나 자바에서의
오브젝티브 C 같은 언어로 옮겨가셨죠 하지만 C#은 여전히 중요해요
죽을 고비를 넘기고 있지만 중요한 장면이에요
C#을 배우면 다른 언어도 쉽게 마이그레이션할 수 있어요
이런 이유로 c를 배우려는 거예요
기본 소개죠 기본 소개요 표준에 관해 약간 역사에
관해 약간 얘기하고 프로그래밍 언어에 관해 좀 더 상세히 알아보도록
하죠
고마워요