Super Kawaii Cute Cat Kaoani
본문 바로가기
🏃‍♀️ 대외활동/Codeit Boost-Node.js

1주차 프로그래밍 언어 이해하기 [코드잇 부스트 백엔드 스터디]

by wonee1 2024. 5. 8.
728x90

 

<프로그래밍 언어 이해하기> 

1. 프로그래밍 언어 살펴보기

 

# 프로그래밍 언어란?

 

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

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

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

 

2. 프로그래밍 언어를 분류하는 두 가지 기준

 

# 프로그래밍 언어

 

프로그래밍 기본 개념 → 자료형, 변수, 함수, 파라미터

코드마다 생김새가 다르다

용도, 상황, 프로젝트 규모에 따라서 더 유용하고 적합한 언어가 있다

 

# 프로그래밍 언어 퀴즈 정리

 

모든 프로그래밍 언어의 사용법이 모두 동일한 건 아니다.

대체로 비슷한 개념들이 각 프로그래밍 언어에 녹아 있지만, 그 개념을 사용하는 방식과 코드의 문법은 달라질 수 있다

 

 

# 객체 지향 프로그래밍

 

객체 지향 프로그래밍 키워드 5가지

  1. 클래스 + 인스턴스(객체)
  2. 추상화
  3. 캡슐화
  4. 상속
  5. 다형성

💡객체 지향이란?

• 프로그래밍에 대한 여러 접근 방식 중 하나

• Top-down 방식은 전체를 합쳐야지만 전체를 실행할 수 있음

→ 함수와 데이터를 합친 개체 단위로 프로그래밍 하게 됨

 

장점

• 데이터나 기능에 변화가 생기더라도 관련된 개체만 신경쓰면 되니 프로그래밍하기 편해짐

• 프로그램에서 재사용하기도 수월함

• 일부 기능만 사용해 볼 수도 있기 때문에 테스트에 유리

• 유지 보수에 용이함

단점

• 코드를 잘 나누고 설계하는 것이 어려움

• 코드를 작성하기도 전에 설계부터 많은 노력이 듦

• 사람이 이해하고 작성하기 편한 방식으로 코드를 나누다보니 컴퓨터가 이해하는데 시간이 걸려 실행 속도가 느 려짐, 저장 공간을 많이 차지함

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

 

객체 지향 언어를 사용하면 좋은 곳

• 많은 데이터를 다루는 프로그램이나 규모가 큰 프로젝트

객체 지향 언어가 적합하지 않은 곳

• 극도로 빠른 실행 속도가 필요한 분야 혹은 저장 장치나 성능이 제한적인 기기

 

 

# 변수의 데이터 타입

 

프로그래밍 언어 분류 기준 두가지

 

1.객체지향유무

2.변수의 자료형 지정

 

자료형 → 변수의 데이터 타입 지정

 

Dynamic typing (파이썬 루비 php js 등)

• 자료형을 미리 정하지 않고 실행될 때 정해줌

• 간결하고 편리함

• 코드의 내용 로직 이해 편함

Static typing (c/c++,java 등)

• 자료형을 실행되기 전에 미리 정해줌

• 명확하고 정교함 (제약이나 규제가 많다)

• 컴퓨터 구조가 눈에 들어옴(실행 속도 빠름)

 

3. 프로그래밍 언어 overview

 

# 프로그래밍 언어의 스펙트럼

컴퓨터에 가까운 언어(low-level)

• C, java , 어셈블리어, 머신코드

인간에 가까운 언어(high-level)

• Python, Ruby

 

# 프로그래밍 언어의 추상화

고수준언어는 추상화가 많이 된 언어, 즉 저수준 언어는 추상화가 적게 된 언어

 

# 저수준, 고수준 언어 비교

•고수준 언어의 장점

→ 프로그래머가 좀 더 필요한 기능과 논리에 집중할 수 있다

•고수준 언어의 단점

→일반적으로 실행이 느림

•저수준 언어의 장점

→ 실행이 빠름

•저수준 언어의 단점

→ 이해하기 어렵고 복잡하고 코드가 길어서 만드는데 시간이 오래걸림

 

4. 프로그래밍 언어 제대로 사용하기

 

# 좋은 코드란?

작성한 코드의 퀄리티가 높아야함

 

# 읽기 쉬운 코드

가독성이 좋은 코드

• Comment :사람에게만 전하는 메세지

• 변수 이름을 잘 짓는 것 → 충분히 구체적이고 간결한 이름

 

# 스타일 가이드 활용

 

변수: 보통 띄어쓰기 불가

Snake 표기법, pascal 표기법, camel 표기법

스타일 가이드

• 띄어쓰기, 줄바꿈 등 규칙을 정해놓고 코드 작성

 

# 구조화가 잘 된 코드

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

객체지향 프로그래밍을 배우면 구조화를 잘 할 수 있다

💡디자인 패턴→ 프로그래밍에서 고질적으로 발생하는 문제들을 해결하기 위한 테크닉

 

 

# 라이브러리 vs 프레임워크

 

💡라이브러리

→ 기존의 코드를 활용, 언어를 선택하는 기준이 되기도 함

→이미 누가 만들어둔 코드를 가져와서 쓰는 것

💡프레임워크

→ 적은 양의 코드만으로도 프로그램을 만들 수 있다는 점이 라이브러리와 유사

→ 프로그래밍의 뼈대가 이미 준비되어있고 내가 작성할 공간들만 비워져 있다는 것

→ 반은 완성된 프로그램

728x90