CS 지식/[codeit] 컴퓨터개론 (완)

[ codeit ] 컴퓨터개론 - 프로그래밍 언어 이해하기

web_seul 2021. 5. 7. 16:31
반응형

 프로그래밍 언어 살펴보기  : 기본적인 이해/ 컴퓨터, 프로그램, 프로그래밍 언어의 관계/ 역사

1강. 프로그래밍을 배우기 힘든 이유

 

2강. 프로그래밍 언어 이해하기 토픽 소개

 

3강. 프로그래밍 언어란?

컴퓨터 : 일을 대신해주는 기계

프로그램 : 컴퓨터가 어떤 일을 해야할지 알려주는 설명서

프로그래밍 언어 : 설명서를 쓰기 위해 사용하는 언어

 

4강. 프로그래밍 퀴즈

 

5강. 프로그래밍 언어의 발전

초창기 프로그래밍 언어 : 단순 숫자 계산

파스칼 계산기

현대 프로그래밍 언어 : 숫자 계산, 번역, 채팅 등

 

 프로그래밍 언어를 분류하는 두가지 기준  : 언어의 종류, 차이, 흐름

1강. 프로그래밍 언어가 너무 많아요!

프로그래밍 언어의 구성 요소: abc,123, (){}, "", ., ;

Python

name = "James"
age = 23

Java

String name = "James";
int age = 23;

C

char name[6] = "James";
int age = 23;

 

사회적 상황, 개발자의 필요, 용도에 따라 다양한 프로그래밍 언어 탄생

 

2강. 프로그래밍 언어 퀴즈 I

3강. 첫번째 패러다임:   객체 지향  프로그래밍

분류 기준 : 절차 지향 -> 객체 지향의 등장

객체 지향 언어 : Swift, Rubby, Python, Kotlin, C++, C#, Java, Objective-C

 

4강. 객체 지향 프로그래밍 이해하기

Top-down : 담당한 각각의 기능을 구현하여 하나의 프로그램을 만드는 것,

                모든 데이터가 한 곳에 함수를 기준으로 나눠짐(하나의 큰데이터), 대->소

단점) 코드 전체가 완성되어야 동작을 제대로 확인 가능, 하나의 기능 수정시 모든 코드의 점검 필요

Bottom-up(=객체지향 프로그래밍) : 각 객체별로 필요한 데이터, 함수로 구분하여 기능 구현(기능+데이터), 소->대

 

5강. 객체 지향 프로그래밍 정리하기

객체 지향의 장단점 정리

장점

유지 보수에 용이하다.

가독성이 높다.

재사용하기 좋다.

테스트가 쉽다.

단점

설계가 어렵다.

작은 규모의 프로그램에서는 객체 지향적으로 작성하는 것이 더 오래 걸릴 수 있다.

극도로 빠르거나, 주어진 자원을 극도로 활용해야 하는 경우에는 좋지 않다.

임베디드와 같은 특정 분야에는 부적합하다.

 

객체지향 언어를 사용하면 좋은 곳 : 많은 데이터를 다루는 프로그램, 규모가 큰 프로젝트

객체지향 언어가 적합하지 않은 곳 : 빠른 실행 속도가 필요한 분야, 저장장치나 성능이 제한적인 기기

 

6강. 프로그래밍 언어 퀴즈 II

7강. 두번째 패러다임 :  변수의 데이터 타입 

Python - 간편함, 편리함, 오류를 찾기 어려움 ex) 레고

name = "James"
age = 23

def print_sum(a, b):

vs

Java - 복잡함, 정밀함, 안정장치 ex) 시계

String name = "James";
int age = 23;

public void print_sum(int a, int b){}

 

8강. Dynamic typing vs. Static typing

Dynamic typing _ 실행될 때 자료형을 정해주는 언어

간결함, 편리함, 어려운 표현이 적어 내용과 로직의 이해가 쉬운 편, 비전공자 접근 용이, 

간결한 코드로 코딩속도 빠름, 작은 규모의 프로그램 제작에 적합,

컴퓨터적 구조가 생략되어 실행속도 저하, 속도에 민감하지않은 프로그램에 적합

ex) Python, Rubby, JS, PHP, 

#ex

name = 'Kyuri Kim'
age = 21
first_name, last_name = name.split()
pring(str(age) + "살", last_name + first_name, sep='')

 

Static typing _ 실행전 자료형을 표시하는 언어

명확하고 정교한 코드, 컴퓨터적 구조로 실행속도가 빠름, 제약과 규칙이 많아 실수 방지 및 체계적 코드 작성, 

많은 사람이 협업하는 대규모의 복잡한 프로젝트에 적합

ex) C, Java, C++, Kotlin

//ex

String name = "James";
int age = 23;

 

9강. Dynamic typing 과 Static typing정리하기

Dynamic typing Static typing
코딩 속도가 빠르다 코딩 속도가 느리다
실행 속도가 느리다 실행 속도가 빠르다
코드의 내용이 눈에 잘 들어온다 코드의 구조가 눈에 잘 들어온다
배우기 쉽다 배우기 어렵다
혼자서 빠르게하는, 작고 단순한 프로젝트에 적합 여러사람이 협업하는, 크고 복잡한 프로젝트에 적합

 

Dynamic typing 언어

간결함과 편리함을 추구하며 컴퓨터적 구조를 생략해 코드의 내용(로직)이 눈에 잘 들어와 코드의 이해가 편해서 학습이 쉬운 편이나 컴퓨터적 구조가 생략되어 속도에 민감한 프로젝트나 성능이 좋지않은 환경에서는 활약이 어려움

Static typing 언어

안정성과 정교함을 추구하며 컴퓨터적 구조가 있어 코드의 구조가 눈에 잘 들어오지만 코드가 복잡해져서 배우기 어려운 편이나 컴퓨터적 구조로 실행속도가 빠른 편으로 임베디드, 실시간투자, 인공지능 분야에서 활약

 

 프로그래밍 언어 Overview  : 언어의 추상화, 추상화가 미치는 영향, 추상화된 언어의 장단점

1강. 프로그래밍 언어의 스펙트럼

컴퓨터 vs 인간 : 상대적 구분

컴퓨터 <--- Machine code -- Assembly language -- C -- Java, C++ -- Ruby, Python ---> 인간

저수준언어(low-level)                                                                  고수준언어(high-level)

                                        static typing / dynamic typing

2강. 프로그래밍 언어의 추상화

추상화 ↓                                                                                                 추상화 ↑

추상화 : 몰라도 되는 내용은 숨기고 꼭 알아야 할 내용만 드러내는 것

           추상화정도에 따라 문법, 코드 작성 방식, 코드를 보는 관점이 달라짐

 

3강. 프로그래밍 언어 퀴즈 IV

4강. 저수준 언어와 고수준 언어 비교하기

저수준 언어: 코드작성, 관리에 비효율적 / 단순한 효율적 작업

고수준 언어: 실행이 느림, 고사양 / 프로그래머가 기능과 논리에 집중할 수 있음

 

5강. 프로그래밍 언어의 종류 총정리하기

객체를 지향하는 언어 vs 객체를 지향하지 않는 언어

변수의 데이터타입을 어떻게 사용하는지에 따라 Dynamic Typing 언어 vs Static Typing 언어

자세한 언어

: low-level 에 까까운 어셈블리 언어, C 언어, 객체 지향x, 저장공간, 성능이 떨어짐

코드 작성시 자료형 등의 컴퓨터적 구조를 고려해야함 -> 컴퓨터가 실행하기 좋음 , 빠르고 효율적인 프로그램 제작에 최적화

ex) 프로그램 제작 시간은 소요되어도 컴퓨터 실행시간의 단축이 중요한 경우

임베디드 시스템 (IoT), 채팅 어플, 동영상 스트리밍, github, 머신러닝

단점: 코드를 작성하거나 고치는게 힘들고 많은 시간 소요

장점: 컴퓨터 실행속도가 빠름, 성능이 안좋은 컴퓨터에 적용하기 좋음

체계적인 언어

: static typing언어, 객체 지향o, Java, C++, 체계가 잡혀있어 여러사람 작업시 적합, 협업과정에서 오류가 적어 큰 프로젝트에 적합

ex) 구글, 에어비앤비, 우버.. Java 사용

단점: 문법이 어려움, 체계적 설계에 많은 시간 소요

장점: 설계와 협업이 중요한 큰 프로젝트에 적합, 유지보수에 용이

쉬운 언어

객체 지향o, dynamic typing언어, 비교적 배우기 쉬운 Python, Ruby

간결하고 짧은 코드 추구, 시간소요가 적음

ex) 변화가 많고 잦은 분야 개인 규모의 데이터 사이언스, 업무 자동화

단점: 컴퓨터의 실행속도가 느리다, 큰규모 프로젝트에서 실수 방지가 어렵다, 협업시 부적합

장점: 진입 장벽이 낮다, 코드 수정이 간편하고 빠른 제작 가능

 

6강. 프로그래밍 언어의 흐름

자세한 언어 -> 체계적인 언어 -> 쉬운 언어

 

7강. 특수 목적 언어

R

통계 소프트웨어 개발, 데이터 분석 및 시각화

통계나 빅데이터 분석에 필요한 데이터 전처리, 분석, 수학적 계산과 그래프 기능에 특화

SQL

데이터베이스 관리 목적

SQL을 사용해서 데이터를 모아둔 공간인 데이터베이스를 설계, 운영, 관리

HTML, CSS

웹페이지의 구조와 레이아웃, 시각적 표현 담당

 

그  외,

MATLAB - 공학 시뮬레이션용 프로그래밍 언어

Csound - 소리와 음악 합성에 사용되는 프로그래밍 언어

Scratch - 블록을 조립하여 쉽게 자기 자신의 이야기나 게임 그리고 애니메이션을 만들 수 있는 교육용 프로그래밍 언어

 

 프로그래밍 언어 제대로 사용하기  : 언어의 활용법

1강. 좋은 코드란?

2강. 읽기 쉬운 코드

= 가독성 좋은 코드

1. Comment

#, //, 

2. 이름 잘 짓기

충분히 구체적이고 간결한 이름

 

3강. 스타일가이드 활용하기

변수 : 띄어 쓰기 불가 ex) math_score, MathScore, mathScore

                                snake표기법, pascal 표기법, camel표기법

"언어 +style guide" 검색

 

4강. 스타일가이드 정리

Python 스타일가이드

공식 (PEP8) https://www.python.org/dev/peps/pep-0008/

Google (깊이있는 Docstring 작성법) https://github.com/google/styleguide/blob/gh-pages/pyguide.md

JavaScript 스타일가이드

표준 https://standardjs.com/

에어비앤비  https://github.com/airbnb/javascript

Google  https://google.github.io/styleguide/jsguide.html

Java 스타일가이드

오라클(java 소유회사)  https://www.oracle.com/technetwork/java/codeconvtoc-136057.html

Google  https://google.github.io/styleguide/javaguide.html

C 스타일가이드  https://www.doc.ic.ac.uk/lab/cplus/cstyle.html

C++ 스타일가이드  https://google.github.io/styleguide/cppguide.html

C# 스타일가이드  https://google.github.io/styleguide/csharp-style.html

 

5강. 스타일가이드 적용하기

6강. 구조화가 잘 된 코드

파일 분리 : 관련된 코드를 필요한 만큼 한 곳에 모아두는 것

Design Pattern : 프로그래밍에서 고질적으로 발생하는 문제들을 해결하기 위한 테크닉

 

7강. 프로그래밍 언어 퀴즈 V

8강. 라이브러리

다른 프로그램이지만 같은 코드 ( 자주 쓰이는 코드 모음 ), 프로그램 생성 속도 향상

ex) 머신러닝에서 필요한 데이터 라이브러리를 사용할 때 유용, 파이썬 라이브러리 모음 https://pypi.org

언어를 선택하는 기준이 되기도 함

 

9강. 프레임워크 I

적은 양의 코드로 프로그램 제작 가능

 

10강. 프레임워크 II

공통된 기능이 미리 제작되어 있어 간편함, 내가 생각하지 못한 부분까지 포함, 기본틀 변경은 어려움

 

11강. 라이브러리 vs 프레임워크

라이브러리 : 이미 만들어진 도구를 가져와서 사용, 무료

프레임워크 : 최소한의 노력으로 프로그램 완성

 

12강. 프로그래밍 언어 퀴즈 VI

 

13강. 남의 코드에서 배욱

프로그래머의 가장 좋은 스승 : 잘 짜여진 좋은 코드

좋은 코드를 찾을 수 있는 곳 : 라이브러리

Seaborn라이브러리 - https://seaborn.pydata.org/tutorial.html

Pandas 라이브러리 - https://pandas.pydata.org/docs/user_guide/10min.html

 

좋은 코드를 찾을 수 있는 곳 : 개발 문서

Python - https://docs.python.org/ko/3/

Javascript - https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide

Ruby - https://www.ruby-lang.org/ko/documentation/

Java - https://docs.oracle.com/en/java/

 

좋은 코드를 찾을 수 있는 곳 : 커뮤니티

구글 검색시 "best practice" 키워드 검색 프로그래밍 언어 살펴보기 : 기본적인 이해/ 컴퓨터, 프로그램, 프로그래밍 언어의 관계/ 역사

 

1강. 프로그래밍을 배우기 힘든 이유

 

 

 

2강. 프로그래밍 언어 이해하기 토픽 소개

 

 

 

3강. 프로그래밍 언어란?

 

컴퓨터 : 일을 대신해주는 기계

 

프로그램 : 컴퓨터가 어떤 일을 해야할지 알려주는 설명서

 

프로그래밍 언어 : 설명서를 쓰기 위해 사용하는 언어

 

 

 

4강. 프로그래밍 퀴즈

 

 

 

5강. 프로그래밍 언어의 발전

 

초창기 프로그래밍 언어 : 단순 숫자 계산

 

파스칼 계산기

 

현대 프로그래밍 언어 : 숫자 계산, 번역, 채팅 등

 

 

 

 프로그래밍 언어를 분류하는 두가지 기준 : 언어의 종류, 차이, 흐름

 

1강. 프로그래밍 언어가 너무 많아요!

 

프로그래밍 언어의 구성 요소: abc,123, (){}, "", ., ;

 

Python

 

name = "James"

age = 23

Java

 

String name = "James";

int age = 23;

C

 

char name[6] = "James";

int age = 23;

 

 

사회적 상황, 개발자의 필요, 용도에 따라 다양한 프로그래밍 언어 탄생

 

 

 

2강. 프로그래밍 언어 퀴즈 I

 

3강. 첫번째 패러다임: 객체 지향 프로그래밍

 

분류 기준 : 절차 지향 -> 객체 지향의 등장

 

객체 지향 언어 : Swift, Rubby, Python, Kotlin, C++, C#, Java, Objective-C

 

 

 

4강. 객체 지향 프로그래밍 이해하기

 

Top-down : 담당한 각각의 기능을 구현하여 하나의 프로그램을 만드는 것,

 

                모든 데이터가 한 곳에 함수를 기준으로 나눠짐(하나의 큰데이터), 대->소

 

단점) 코드 전체가 완성되어야 동작을 제대로 확인 가능, 하나의 기능 수정시 모든 코드의 점검 필요

 

Bottom-up(=객체지향 프로그래밍) : 각 객체별로 필요한 데이터, 함수로 구분하여 기능 구현(기능+데이터), 소->대

 

 

 

5강. 객체 지향 프로그래밍 정리하기

 

객체 지향의 장단점 정리

 

장점

 

유지 보수에 용이하다.

 

가독성이 높다.

 

재사용하기 좋다.

 

테스트가 쉽다.

 

단점

 

설계가 어렵다.

 

작은 규모의 프로그램에서는 객체 지향적으로 작성하는 것이 더 오래 걸릴 수 있다.

 

극도로 빠르거나, 주어진 자원을 극도로 활용해야 하는 경우에는 좋지 않다.

 

임베디드와 같은 특정 분야에는 부적합하다.

 

 

 

객체지향 언어를 사용하면 좋은 곳 : 많은 데이터를 다루는 프로그램, 규모가 큰 프로젝트

 

객체지향 언어가 적합하지 않은 곳 : 빠른 실행 속도가 필요한 분야, 저장장치나 성능이 제한적인 기기

 

 

 

6강. 프로그래밍 언어 퀴즈 II

 

7강. 두번째 패러다임 : 변수의 데이터 타입 

 

Python - 간편함, 편리함, 오류를 찾기 어려움 ex) 레고

 

name = "James"

age = 23

 

def print_sum(a, b):

vs

 

Java - 복잡함, 정밀함, 안정장치 ex) 시계

 

String name = "James";

int age = 23;

 

public void print_sum(int a, int b){}

 

 

8강. Dynamic typing vs. Static typing

 

Dynamic typing _ 실행될 때 자료형을 정해주는 언어

 

간결함, 편리함, 어려운 표현이 적어 내용과 로직의 이해가 쉬운 편, 비전공자 접근 용이, 

 

간결한 코드로 코딩속도 빠름, 작은 규모의 프로그램 제작에 적합,

 

컴퓨터적 구조가 생략되어 실행속도 저하, 속도에 민감하지않은 프로그램에 적합

 

ex) Python, Rubby, JS, PHP, 

 

#ex

 

name = 'Kyuri Kim'

age = 21

first_name, last_name = name.split()

pring(str(age) + "살", last_name + first_name, sep='')

 

 

Static typing _ 실행전 자료형을 표시하는 언어

 

명확하고 정교한 코드, 컴퓨터적 구조로 실행속도가 빠름, 제약과 규칙이 많아 실수 방지 및 체계적 코드 작성, 

 

많은 사람이 협업하는 대규모의 복잡한 프로젝트에 적합

 

ex) C, Java, C++, Kotlin

 

//ex

 

String name = "James";

int age = 23;

 

 

9강. Dynamic typing 과 Static typing정리하기

 

Dynamic typing Static typing

코딩 속도가 빠르다 코딩 속도가 느리다

실행 속도가 느리다 실행 속도가 빠르다

코드의 내용이 눈에 잘 들어온다 코드의 구조가 눈에 잘 들어온다

배우기 쉽다 배우기 어렵다

혼자서 빠르게하는, 작고 단순한 프로젝트에 적합 여러사람이 협업하는, 크고 복잡한 프로젝트에 적합

 

 

Dynamic typing 언어

 

간결함과 편리함을 추구하며 컴퓨터적 구조를 생략해 코드의 내용(로직)이 눈에 잘 들어와 코드의 이해가 편해서 학습이 쉬운 편이나 컴퓨터적 구조가 생략되어 속도에 민감한 프로젝트나 성능이 좋지않은 환경에서는 활약이 어려움

 

Static typing 언어

 

안정성과 정교함을 추구하며 컴퓨터적 구조가 있어 코드의 구조가 눈에 잘 들어오지만 코드가 복잡해져서 배우기 어려운 편이나 컴퓨터적 구조로 실행속도가 빠른 편으로 임베디드, 실시간투자, 인공지능 분야에서 활약

 

 

 

 프로그래밍 언어 Overview : 언어의 추상화, 추상화가 미치는 영향, 추상화된 언어의 장단점

 

1강. 프로그래밍 언어의 스펙트럼

 

컴퓨터 vs 인간 : 상대적 구분

 

컴퓨터 <--- Machine code -- Assembly language -- C -- Java, C++ -- Ruby, Python ---> 인간

 

저수준언어(low-level) 고수준언어(high-level)

 

                                        static typing / dynamic typing

 

2강. 프로그래밍 언어의 추상화

 

추상화 ↓ 추상화 ↑

 

추상화 : 몰라도 되는 내용은 숨기고 꼭 알아야 할 내용만 드러내는 것

 

           추상화정도에 따라 문법, 코드 작성 방식, 코드를 보는 관점이 달라짐

 

 

 

3강. 프로그래밍 언어 퀴즈 IV

 

4강. 저수준 언어와 고수준 언어 비교하기

 

저수준 언어: 코드작성, 관리에 비효율적 / 단순한 효율적 작업

 

고수준 언어: 실행이 느림, 고사양 / 프로그래머가 기능과 논리에 집중할 수 있음

 

 

 

5강. 프로그래밍 언어의 종류 총정리하기

 

객체를 지향하는 언어 vs 객체를 지향하지 않는 언어

 

변수의 데이터타입을 어떻게 사용하는지에 따라 Dynamic Typing 언어 vs Static Typing 언어

 

자세한 언어

 

: low-level 에 까까운 어셈블리 언어, C 언어, 객체 지향x, 저장공간, 성능이 떨어짐

 

코드 작성시 자료형 등의 컴퓨터적 구조를 고려해야함 -> 컴퓨터가 실행하기 좋음 , 빠르고 효율적인 프로그램 제작에 최적화

 

ex) 프로그램 제작 시간은 소요되어도 컴퓨터 실행시간의 단축이 중요한 경우

 

임베디드 시스템 (IoT), 채팅 어플, 동영상 스트리밍, github, 머신러닝

 

단점: 코드를 작성하거나 고치는게 힘들고 많은 시간 소요

 

장점: 컴퓨터 실행속도가 빠름, 성능이 안좋은 컴퓨터에 적용하기 좋음

 

체계적인 언어

 

: static typing언어, 객체 지향o, Java, C++, 체계가 잡혀있어 여러사람 작업시 적합, 협업과정에서 오류가 적어 큰 프로젝트에 적합

 

ex) 구글, 에어비앤비, 우버.. Java 사용

 

단점: 문법이 어려움, 체계적 설계에 많은 시간 소요

 

장점: 설계와 협업이 중요한 큰 프로젝트에 적합, 유지보수에 용이

 

쉬운 언어

 

객체 지향o, dynamic typing언어, 비교적 배우기 쉬운 Python, Ruby

 

간결하고 짧은 코드 추구, 시간소요가 적음

 

ex) 변화가 많고 잦은 분야 개인 규모의 데이터 사이언스, 업무 자동화

 

단점: 컴퓨터의 실행속도가 느리다, 큰규모 프로젝트에서 실수 방지가 어렵다, 협업시 부적합

 

장점: 진입 장벽이 낮다, 코드 수정이 간편하고 빠른 제작 가능

 

 

 

6강. 프로그래밍 언어의 흐름

 

자세한 언어 -> 체계적인 언어 -> 쉬운 언어

 

 

 

7강. 특수 목적 언어

 

R

 

통계 소프트웨어 개발, 데이터 분석 및 시각화

 

통계나 빅데이터 분석에 필요한 데이터 전처리, 분석, 수학적 계산과 그래프 기능에 특화

 

SQL

 

데이터베이스 관리 목적

 

SQL을 사용해서 데이터를 모아둔 공간인 데이터베이스를 설계, 운영, 관리

 

HTML, CSS

 

웹페이지의 구조와 레이아웃, 시각적 표현 담당

 

 

 

그 외,

 

MATLAB - 공학 시뮬레이션용 프로그래밍 언어

 

Csound - 소리와 음악 합성에 사용되는 프로그래밍 언어

 

Scratch - 블록을 조립하여 쉽게 자기 자신의 이야기나 게임 그리고 애니메이션을 만들 수 있는 교육용 프로그래밍 언어

 

 

 

 프로그래밍 언어 제대로 사용하기 : 언어의 활용법

 

1강. 좋은 코드란?

 

2강. 읽기 쉬운 코드

 

= 가독성 좋은 코드

 

1. Comment

 

#, //, 

 

2. 이름 잘 짓기

 

충분히 구체적이고 간결한 이름

 

 

 

3강. 스타일가이드 활용하기

 

변수 : 띄어 쓰기 불가 ex) math_score, MathScore, mathScore

 

                                snake표기법, pascal 표기법, camel표기법

 

"언어 +style guide" 검색

 

 

 

4강. 스타일가이드 정리

 

Python 스타일가이드

 

공식 (PEP8) https://www.python.org/dev/peps/pep-0008/

 

Google (깊이있는 Docstring 작성법) https://github.com/google/styleguide/blob/gh-pages/pyguide.md

 

JavaScript 스타일가이드

 

표준 https://standardjs.com/

 

에어비앤비 https://github.com/airbnb/javascript

 

Google https://google.github.io/styleguide/jsguide.html

 

Java 스타일가이드

 

오라클(java 소유회사) https://www.oracle.com/technetwork/java/codeconvtoc-136057.html

 

Google https://google.github.io/styleguide/javaguide.html

 

C 스타일가이드 https://www.doc.ic.ac.uk/lab/cplus/cstyle.html

 

C++ 스타일가이드 https://google.github.io/styleguide/cppguide.html

 

C# 스타일가이드 https://google.github.io/styleguide/csharp-style.html

 

 

 

5강. 스타일가이드 적용하기

 

6강. 구조화가 잘 된 코드

 

파일 분리 : 관련된 코드를 필요한 만큼 한 곳에 모아두는 것

 

Design Pattern : 프로그래밍에서 고질적으로 발생하는 문제들을 해결하기 위한 테크닉

 

 

 

7강. 프로그래밍 언어 퀴즈 V

 

8강. 라이브러리

 

다른 프로그램이지만 같은 코드 ( 자주 쓰이는 코드 모음 ), 프로그램 생성 속도 향상

 

ex) 머신러닝에서 필요한 데이터 라이브러리를 사용할 때 유용, 파이썬 라이브러리 모음 https://pypi.org

 

언어를 선택하는 기준이 되기도 함

 

 

 

9강. 프레임워크 I

 

적은 양의 코드로 프로그램 제작 가능

 

 

 

10강. 프레임워크 II

 

공통된 기능이 미리 제작되어 있어 간편함, 내가 생각하지 못한 부분까지 포함, 기본틀 변경은 어려움

 

 

 

11강. 라이브러리 vs 프레임워크

 

라이브러리 : 이미 만들어진 도구를 가져와서 사용, 무료

 

프레임워크 : 최소한의 노력으로 프로그램 완성

 

 

 

12강. 프로그래밍 언어 퀴즈 VI

 

 

 

13강. 남의 코드에서 배욱

 

프로그래머의 가장 좋은 스승 : 잘 짜여진 좋은 코드

 

좋은 코드를 찾을 수 있는 곳 : 라이브러리

 

Seaborn라이브러리 - https://seaborn.pydata.org/tutorial.html

 

Pandas 라이브러리 - https://pandas.pydata.org/docs/user_guide/10min.html

 

 

 

좋은 코드를 찾을 수 있는 곳 : 개발 문서

 

Python - https://docs.python.org/ko/3/

 

Javascript - https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide

 

Ruby - https://www.ruby-lang.org/ko/documentation/

 

Java - https://docs.oracle.com/en/java/

 

 

 

좋은 코드를 찾을 수 있는 곳 : 커뮤니티

 

구글 검색시 "best practice" 키워드 검색

 

 

반응형