본문 바로가기
코드잇 대학생 코딩캠프

[2월 19일] 코드잇 대학생 코딩캠프 2일차 기록

by manywisdom 2021. 2. 20.

컴퓨터 개론 - 토픽2 : 프로그래밍 언어 이해하기 1/2 완료

 

□ 오늘의 학습내용

프로그래밍 언어의 의미 

  : 프로그래밍 언어란 컴퓨터에게 어떤 일을 해야 할지 알려주는 설명서를 쓰기 위해 사용하는 "언어"이다. 사람들이 프로그램 (게임,it,인공지능 등)을 만들다가 다양한 이유로 기존 언어에 불편함을 느끼기 시작하면서 용도, 상황, 프로젝트 규모에 따라 더 유용하고 적합한 언어를 찾아가다 보니 오늘날 많은 프로그래밍 언어들이 존재하게 된 것! 

 

여러 프로그램 언어들을 구분지어주는 특징 첫 번째 :  객체 지향 프로그래밍

  º 객체 지향 : 프로그래밍에 접근하는 여러 방법 (procedural, objected-oriented, structured 등) 중 하나

  º 객체 지향 언어들 : C++, C#, python, java

  º 객체지향프로그래밍 : bottom-up 방식으로 코드를 구현하는 것! "관련 있는" 함수와 데이터를 한 데 묶어 object를 만들고, 좀 더 의미있는 단위로 전체 데이터를 나누는 방식. "객체(object)"의 개념을 활용해 프로그래밍 하는 것이 객체지향 프로그래밍이다. 

  º 객체 지향 프로그래밍이 왜 좋으냐면...!

      -  기존에는 top-down 방식으로 프로그램을 설계하고 일을 나누고 구현했는데, 그러다 보니 각 기능(함수)들을 전체로 합쳐야지만 제대로 프로그램이 동작하는지 알 수 있었고, 그 중 한 개라도 미완성이면 전체를 실행할 수 없었다. 하나의 기능을 따로 수정하고 싶어도, 다른 기능들과 모든 데이터를 공유하고 유기적으로 연결되어 있기 때문에, 전체 코드를 모두 확인해야 했다. 규모가 커지면 비효율적일 수 밖에 없는 방식이었던 것!

      -  대규모 프로젝트나 많은 데이터들을 다루어야 하는 프로그램의 경우엔 객체 지향 방식을 사용하면 훨씬 더 좋다!

 

③ 변수의 데이터 타입

  º dynamic typing : 변수의 자료형 (data type) 을 미리 정해주지 않고, 즉 컴퓨터적 구조(컴퓨터가 이해하기 더 쉬운 문법으로 코드를 구현하는 것) 를 생략하는 언어이다. 코드의 표현이 간결하고 편리하다. 파이썬처럼! 최근에는 컴퓨터 성능도 많이 좋아져서, 실행속도도 충분히 쓸만한 수준으로 빨라지고 있다. 

  º static typing : 코드를 실행하기 이전, 자료형을 미리 정해주는 언어이다. 명확함과 정교함을 추구하기 때문에 컴퓨터적 구조를 표현할 수 있는 대신에 코드가 길어지게 된다. 컴퓨터가 보다 이해하기 쉽도록 세세하게 코드를 작성하다 보니 컴퓨터가 빠르게 코드를 호로록 읽어서, 실행속도가 빠르다는 장점이 있다. 임베디드, 실시간투자, 인공지능 분야에서 활약중 ~_~

 

 

 

 

 

 △  강의에 대한 학습 내용을 워드파일을 통해 나름 나만의 개인 교재로 만드는 중! 내용 복습하기도 쉽고, 그때 그때 꺼내보기 좋다. 학기 때도 이런 방식으로 종종 공부하는데, 요즘 "노션" 에 관심을 가지고 있다가, 코드잇 카페 매니저 분께서 노션에 대한 설명글을 올려주셔서 주말에 노션 마스터 할 계획을 세웠다 :) 노션 페이지도 만들어봐야지!