본문 바로가기

IT 관련 정보 전달/IT 기본 지식 이해

IT 기본적인 이론에 대하여

제약 회사가 아닌 IT 회사를 다니게 되면서

공부에 대한 필요성을 절실히 느끼게 되었다.

개발자가 되기 위해서는 실무 능력도 물론 중요하지만

기본적인 이론에 대해서도 알아야 한다.

이해를 하기 위함으로 기록을 남겨본다.

 

코딩 정의

 

'Code'와 'ing'의 합성어이고 코딩 자체는 프로그램에서 작업을 수행하기 위해

사용되는 언어로 컴퓨터에게 명령하는 것을 의미한다.

◈ 코딩의 사전적 의미

▷ 어떤 일의 자료나 대상에 대하여 기호를 부여하는 일

▷ 작업의 흐름에 따라 프로그램 언어의 명령문을 써서 프로그램을 작성하는 일

▷ 프로그램의 코드를 작성하는 일

 

프로그램 정의

프로그램의 의미는 실행가능한 하나의 단위를 말한다.

예를 들어서, 메모장이나 워드와 같은 프로그램 자체를 말한다.

윈도 운영체제의 경우, 확장자명이 'exe'로 되어 있는 파일 자체들을 프로그램이라고 한다.

프로그램 자체는 멈춰있는 상태를 말하고 정적인 상태라고도 말한다.

◈ 프로그래밍의 사전적 의미

▷ 수식이나 작업을 컴퓨터에 알맞도록 정리하고 순서를 정하고 컴퓨터 특유의 명령코드로 고쳐 쓰는 작업이다.

 

프로세스 정의

프로세스의 의미는 컴퓨터 자체가 어떠한 일을 하고 있는 상태를 의미한다.

예를 들어서, 어떠한 파일을 다운로드하고 있을 때 다른 작업을 진행이 가능한 경우를 멀티 프로세스라고도 한다.

◈ 하나의 프로세스 안에서 여러개의 작업이 가능한 것 → 스레드

▷ 예를 들어서, 웹 브라우저에서 하나의 작업만 가능한 것이 아니라 여러 창을 띄어서 여러 액션이 가능한 경우가 있다.

 

 

프론트엔드

프론트엔드는 사용자가 볼 수 있는 화면을 말하고 쉽게 이야기하면 사용자 인터페이스를 말한다.

웹 브라우저 자체에서 눈에 보이는 영역을 개발하는 일을 말한다.

직접적으로 이용자들의 눈에 보이는 영역이고 사용하기 쉽고 사용자의 경험에 맞춰 서비스를 개발해야 많은 사용자들이

사용하기 때문에 최적의 인터페이스를 갖추는 것이 중요하다.

◈ 프론트엔드 개발자가 되기 위해서 반드시 알아야 하는 것

▷ HTML: 웹 브라우저의 전체적인 틀 자체를 구성하는 역할을 맡는다.

▷ CSS: HTML로 작업한 웹페이지에 시각적인 부분을 담당한다. 예를 들어서, 색상이나 레이아웃, 폰트를 이야기한다.

HTML 자체로 뼈대를 만들었다면 옷을 입히는 과정이라고 생각하면 된다.

▷ JavaScript: 정적인 웹페이지를 동적으로 만들어주는 것을 말한다. 웹페이지에 클릭이나 스크롤 등의 이벤트가 일어났을 때 그 기능을 할 수 있게 만들어주는 것이다.

 

백엔드

눈에 보이지 않는 뒷단을 개발하는 일을 말한다.

사용자가 원하는 일을 에러가 나지 않고 원활하게 실행되도록 만드는 것이 중요하다.

백엔드 개발을 하기 위해서는 웹 서비스의 전체적인 구조를 이해하고 있어야 한다.

백엔드의 경우, 프런트엔드의 언어와 다르게 한 가지 언어에 집중해서 학습해서 진행하면 된다.

◈ 백엔드 개발자가 되기 위해서 반드시 알아야 하는 것

▷ PHP: 개발을 위해 고안된 서버 측 스크립트 언어이자 수많은 웹시스템의 기반이 되는 언어이다.

오직 웹 개발을 위해 쓸 수 있다는 점 자체가 장점이기도 하고 단점이기도 하다.

▷ 파이썬(Python): 스크립트 언어로 인기 있는 언어이다. 가독성이 높고 다른 언어나 라이브러리에 쉽게 접근해 연동이 가능해서 높은 확장성을 가지고 있다.

But, 느리다는 단점이 있고 빠른 속도를 요구하는 프로그램에는 적합하지 않은 언어라고 볼 수 있다.

▷ Ruby: 동적 객체 지향 스크립트 언어이다. 배우기가 쉽고 확장성 자체도 높지만 파이썬과 마찬가지로 느리고 국내 사용률이 저조하다는 특징이 있다.

▷ Java: 백엔드에서 가장 많이 사용하는 언어 1위이다. 객체 지향 프로그램 언어라는 가장 큰 장점이 있고 보안에 강하다.

But, 속도 문제를 가지고 있어 앱 개발에는 적합하지 않다는 단점이 있다.

▷ Node.js: JavaScript를 사용하여 서버 측 애플리케이션을 개발하는 데 사용되는 런타임 환경이다. 비동기적인 작업 처리와 높은 확장성을 갖추고 있어서 실시간 애플리케이션과 API 개발에 적합하다.

 

C 언어

시스템 프로그래밍이 가능하다.

이식성을 갖춘 프로그램을 만들 수 있다.

작고 효율적이다. [ C 언어로 짜인 코드 자체는 속도가 빠르고 바이너리 크기가 작다. ]

순차적으로 읽어가는 절차지향 언어다.

 

 Java

설계적인 측면이 강조된 객체지향 언어다.

Java API라고 하여 자바 시스템 제어를 위한 명령어가 있다.

자바 프로그램 자체는 완전한 기계어가 아닌 바이트 코드 파일로 구성되어 있다.

바이트 코드 파일은 운영체제에서 바로 실행할 수는 없고, 자바 가상 기계라는 번역기가 필요하다.

자바가 JVM을 사용하는 이유는 바이트 코드 파일이 다양한 운영체제에서 독립적으로 사용이 가능하기 때문이다.

◈ 자바의 특징

▷ 여러 운영체제에서 실행 가능

▷ 객체지향 프로그래밍 언어

▷ 메모리 자동정리

▷ 무료 라이브러리 풍부하다.

 

정리는 현재까지도 진행하고 있으나 예상보다 많은 양으로 머릿속으로 정리하는 것이 생각보다 쉽지가 않다.

차근차근하다 보면 조금씩 성장할 것이라고 믿을 것이다.

 

 

'IT 관련 정보 전달 > IT 기본 지식 이해' 카테고리의 다른 글

Terminal에 대하여  (2) 2023.12.22
개발자의 시작  (4) 2023.10.17