컴퓨터프로그래밍및실습 (2022년)/오리엔테이션
(Redirected from 컴퓨터프로그래밍및실습 (2022년)/0901)
Jump to navigation
Jump to search
오리엔테이션
- 대상 : 정보통신공학과 1학년
- 교재 : 이것이 자바다 (신용권 저) 한빛미디어, 2015년
- 참고 자료
- The C Programming Language (Brian W. Kernighan, Dennis Ritchie) 1978(1st ed.) 1988(2nd)
- The C++ Programming Language (Bjarne Stroustrup) 1985(1st ed.) 2013(4th)
- The Java Programming Language (Ken Arnold, James Gosling) 1996(1st ed.) 2005(4th)
구름 사이트 가입
- 구름 사이트 가입 : https://hufs.goorm.io
- 수강 신청 : https://hufs.goorm.io/teach/lecture/32013/정보통신공학과-컴퓨터프로그래밍및실습-2022년-2학기-박상원
- 가입한 후 이름, 학번, 학과를 반드시 기입할 것. 이름에 학번, 학과 등을 붙이지 말 것.
- 이름의 적절한 예 : 홍길동, 부적절한 예 : 홍길동_2022012345
컴퓨터 프로그래밍은 중요한가?
- 정보통신공학과 학생이라면 모두 프로그래밍을 잘 할 수 있어야 합니다.
- 프로그램은 다른 모든 작업을 할 때의 기본 도구입니다.
- 이 도구를 능숙하게 다룰 줄 알아야 유능한 엔지니어가 됩니다.
- 본 수업에서는 Java를 통하여 프로그래밍을 배웁니다.
- 프로그래밍은 머리 뿐만 아니라 몸으로 익히는 것입니다.
- Java는 객체지향언어입니다.
어떻게 공부할 것인가?
- 도구로서의 프로그래밍 언어
- 조각가 로댕의 예술 작품은 무엇인가?
- 조각가 로댕의 도구는 무엇인가?
프로그래밍 언어
- 어떤 프로그래밍 언어가 널리 사용되는가?
Java
Java 언어의 특징
- High-level, class-based, object-oriented programming language
- Write once, run anywhere (WORA)
- Java Virtaul Machine (JVM)
- bytecode (compile 된 기계어 코드)
- C, C++와 비슷한 문법
- Dynamic capabilitites
- Reflection
- Runtime code modification
개발
- Sun Microsystems에 근무하고 있던 James Gosling에 의해 개발됨
- Sun이 Oracle에 인수됨
역사
- 1991년 James Gosling이 interactive television에 사용할 언어로 개발되기 시작함
- Oak (Gosling의 마당에 있던 나무) -> Green -> Java (인도네시아의 자바 커피에서 이름을 따옴)
- 1996년 Java 1.0 발표
- Write once, run anywhere (compile된 후 어느 기계에서나 실행될 수 있도록)
- Java SE (standard edition), Java EE (enterprise edition), Java ME (micro edition)
- 2006년. Sun은 JVM을 GPL 2.0 라이센스로 공개 (free & open-source software)
- 2009년. Oracle이 Sun을 인수하면서 Java 기술도 인수함
- 2016년. JDK 9부터 browser plugin 중단 (그러므로 Stanford Karel이 동작 안함)
설계 원칙
- It must be simple, object-oriented, and familiar.
- It must be robust and secure.
- It must be architecture-neutral and portable.
- It must execute with high performance.
- It must be interpreted, threaded, and dynamic.
Java 설치
- 이 부분의 본문은 Java 설치입니다.
Java 다운로드
Visual Studio Code 설치
- 이 부분의 본문은 Visual Studio Code 설치입니다.
Visual Studio Code 다운로드 및 설명서
한국어 지원
- Vscode extension 설치 - 확장(Ctrl-<shift>-x) / korean 입력
- Korean Language Pack for Visual Studio Code
Java
- Vscode extension 설치 - 확장(Ctrl-<shift>-x) / java 입력
- Extension Pack for Java
- Debugger for Java
- Language Support for Java(TM) by RedHat
- Project Manager for Java
프로젝트 관리
Java를 이용하여 앱을 개발할 때 Project를 지원한다.
- Vscode extension 설치 - 확장(Ctrl-<shift>-x) / maven 입력
- IntelliCode
- Maven for Java
- Maven dependency explorer
UML(Unified Modeling Language)
- Vscode extension 설치 - 확장(Ctrl-<shift>-x) / plantuml 입력
- PlantUML
- PlantUML Previewer
- PlantUML Grammar
Python
- Vscode extension 설치 - 확장(Ctrl-<shift>-X) / python 입력
- Python
C/C++
- Vscode extension 설치 - 확장(Ctrl-<shift>-X) / c++ 입력
- C/C++
- C/C++ Extension Pack
- Better C++ Syntax
- C/C++ Themes
- MinGW-w64 설치
$ pacman -Syu // 설치 후 실행 $ pacman -Syu // Run "MSYS2 MSYS" from Start menu. $ pacman -S --needed base-devel mingw-w64-x86_64-toolchain
- Path에 C:\msys64\mingw64\bin 등록함
Windows Subsystems for Linux (WSL)
- Vscode extension 설치 - 확장(Ctrl-<shift>-X) / wsl 입력
- Remote - WSL
기본 예제 프로그램 및 설명
- 이 부분의 본문은 기본 예제 프로그램 및 설명입니다.
첫 번째 Java 프로그램
public class FirstClass {
public static void main(String[] args) {
System.out.println("hello");
}
}
첫 번째 C 프로그램
#include <stdio.h>
int main()
{
fprintf(stdio, "hello\n");
}
- vscode 실행
mkdir projects cd projects mkdir helloworld cd helloworld code .
- Build
- 터미널 / 작업 실행 선택
- 실행 : 터미널에서 직접 helloworld.exe를 실행한다.
첫 번째 C++ 프로그램
#include <iostream>
using namespace std;
int main()
{
cout << "hello" << endl;
}
Unix에서 프로세스가 생성될 때 마다 열리는 파일들
- Unix에서 프로세스가 만들어지면 생성되는 세 개의 파일. 모든 프로세스는 세 개의 파일이 열려(open)있다.
- Standard input : stdin(C), cin(C++), System.in(Java)
- Standard output : stdout(C), cout(C++), System.out(Java)
- Standard error : stderr(C), cerr(C++), System.err(Java)
- Standard output 예제
#include <stdio.h> #include <fcntl.h> int main() { int fd; char buf[10]; strcpy(buf, "hello\n"); fd = open("stdoutput.c", O_RDONLY); printf("%d\n", fd); write(1, buf, sizeof(buf)); }
- 실행 결과
3 hello
- 사용자가 작성한 프로그램(user program)에서 첫 번째 open 하여 얻은 file descriptor가 0이 아니라 3이다. 왜냐하면 0, 1, 2는 이미 stdin, stdout, stderr로 사용중이기 때문이다.
write
함수는 파일에 데이터를 기록하는 함수이다. 이 함수는 첫 번째 인자로 대상 파일의 file descriptor 번호가 필요한데,write(1, ...)
에서 1은 stdout을 뜻한다. 그러므로 출력이 화면으로 나온다.