About Programming Language

프로그래밍 언어란??

프로그래밍 언어는 컴퓨터 시스템을 동작하게 하는 소프트웨어를 작성하기위한 언어이다.
컴퓨터는 0과 1을 사용하는 기계이다. 사람이 이해할 수 있도록 컴퓨터와 의사소통을 가능하게 해주는 언어이다.

프로그래밍 언어의 종류

  • Low-Language(저급언어)
    • 기계중심의 언어이다.
    • 실행 속도가 빠르다.
    • 사람이 직접 이해하기 어렵다.
  • High-Language(고급언어)
    • 사람 중심의 언어이다.
    • 컴퓨터가 이해할 수 있도록 번역이 필요하다.

C/C++

C

  • C언어는 현재 사용하는 모든 컴퓨터 시스템에서 사용할 수 있는 프로그래밍 언어이다.

  • 절차 지향 프로그래밍 언어로 처리속도가 빨라 시스템 프로그래밍에 적합하다.

  • 코드가 간결하여 다른 언어보다 상대적으로 유지보수가 쉽다.

  • 저급언어의 특징을 가지고 있어 다른 프로그래밍 언어에 비해 배우기가 쉽지 않다.

  • 기본 형태

1
2
3
4
5
6
7
8
9
#include <stdio.h>

int main()
{
//Hello, world를 출력
printf("Hello, world!\n");

return 0;
}

C++

  • C++은 객체 지향 언어이다. 객체 지향언어의 특징에는 캡슐화, 정보은닉, 추상화, 상속성, 다형성이 있다.

  • C++은 기본적으로 C언어의 절차지향적 특징도 가지고 있다.

  • 캡슐화된 객체들은 재사용이 가능하다.

  • 상속성을 이용하면 상위 클래스의 속성과 연산을 재정의 하지않고 하위 클래스의 속성으로 사용 가능하다. 객체와 클래스의 재사용을 잘 활용할 수 있다.

  • C++은 처리속도가 빠르며 시간이 짧아 AI 문제 해결에 적합하다. 알고리즘을 광범위하게 사용할 수 있으며 신경망과 같은 통계 인공지능을 구성하는데 있어 효율적인 수단이다.

  • 기본 형태

1
2
3
4
5
6
7
8
#include <iostream>

int main(int argc, char *argv[])
{
std::cout << "Hello World" << std::endl;
return 0;
}

JAVA

JAVA는 객체 지향 언어중 하나로 초기에는 가전 제품에 탑재할 용도로 개발되었지만, 현재는 스마트폰과 컴퓨터에서 실행되는 다양한 애플리케이션을 개발할 수 있는 언어가 되었다.

  • 객체지향 언어로 캡슐화, 상속성, 다형성 등의 특징을 가지고 있다.

  • 함수적 코딩을 지원한다. 자바 8부터 지원되는 람다식은 같은 동작을 하더라도 코드가 간결해지는 장점이 있다.

  • 속도가 느리다. 한 번의 컴파일링으로 기계어가 생성되는것이 아니라 JVM에 의해 기계어로 번역된 후 실행되기 때문에 C/C++에 비해 속도가 느리다.

  • 할 수 있는것

    • App 개발(Android App)
    • Web Service(Java Servlet)
    • GUI Application
  • 기본 형태

1
2
3
4
5
6
7
package helloworld;

public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World");
}
}

HTML, HTML5

  • HTML은 Hyper Text Markup Language는 web page를 위한 markup 언어이다.

  • 다양한 tag를 사용하여 구조적 문서를 만들수 있다.

  • css로 html문서의 외관과 배치를 설정할 수 있고, javascript로 html의 문서의 동작을 제어한다.

  • 기본 형태

1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- html5의 <b>기본 형태</b> -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- 페이지의 제목 -->
<title>Document</title>
</head>
<body>
<!-- 내용 -->
</body>
</html>

Python

  • python은 다양한 플랫폼에서 사용할 수 있으며, 다양한 라이브러리를 사용할 수 있다.

  • 들여쓰기를 이용해 블럭 구조를 만들 수 있다.

  • 과학, 공학 분야에서 큰 수치들의 빠른 연산이 가능하다.

  • 수학적 연산외에도 web을 구성할 수도 있다.

  • 텐서플로우 라이브러리를 이용하여 머신러닝 연산처리를 할 수 있다.

  • 기본 형태

1
2
3
def hello():
print("hello world")
return 0

R

  • R언어는 통계 계산과 그래픽을 위한 프로그래밍 언어이다.

  • 많은 머신러닝 알고리즘이 R언어로 구현된다.

  • R코드를 메인 메모리에 올려서 CPU가 처리하기 때문에 최대 데이터 크기는 RAM의 크기에 따라 차이가 있다.

  • 기본 형태

1
2
3
help.start() //시작 페이지
help.search("찾고싶은 문자열")
q() //종료

SQL

  • RDBMS(관계형 데이터베이스 관리 시스템)의 데이터를 관리하기위해 사용되는 언어이다.

  • 자료검색, 자료 관리, 데이터베이스 스키마 생성이 가능하다.

  • 다양한 언어에서 SQL 문법을 이용한 데이터 관리가 가능하다.

  • 기본 형태

1
2
3
4
CREATE TABLE student();         //데이터를 저장할 student라는 테이블 생성
INSERT INTO student VALUES (); //student라는 테이블에 데이터 삽입
SELECT * FROM student; //student라는 테이블 조회
DROP TABLE student //student라는 테이블 삭제

mobile app

  • 모바일 앱을 구성할 수 있는 언어
    • JAVA (Android)
    • KOTLIN (Android)
    • OBJECT C (Ios)
    • SWIFT (Ios)
    • REACT NATIVE (Android, Ios)
      • react native는 android와 ios 운영체제를 동시에 개발이 가능한 Facebook의 오픈소스 프로젝트이다.

web app

  • web app을 구성할 수 있는 언어
    • HTML/CSS
    • PHP
    • PYTHON
    • REACT
    • JAVASCRIPT
    • RUBY