728x90

간단한 코드의 구조

 지난 포스팅에서 살펴봤던 코드의 구조를 파악해보자.

#include <stdio.h>

int main(void)
{
	printf("Hello World!");
	return 0;
}

 

이렇게 특정 언어로 작성된 텍스트 파일을 소스 코드라고 한다.

다음과 같은 코드를 크게 세 부분으로 구분해보자.

 

 

 1. 지시자

#include <stdio.h>

 

기억나실지 모르지만, 이전 포스팅에서 # 으로 시작하는 것은 전처리 지시문이라고 하였다.

 # 이라는 특수 기호로 시작하는 문장은 지시자 라고 한다.

 

 프로그램이 컴파일 되기 전에 처리되어야 할 작업들을 지정해준다고 보면 된다.

 해당 코드 #include <stdio.h>C언어의 표준 입출력 라이브러리를 가리키는 헤더 파일로 해당 라이브러리의 정보들을 포함하겠다 라는 의미이다. 웬만한 프로그래밍에는 항상 쓰이는 라이브러리이다.

 

 헤더 파일이란 주로 외부 소스 파일에 미리 정의된 정보들을 가져다 쓰기위해 만들어진 파일이다. 확장자명은 (.h) 이다.

 

 

 2. 함수

int main(void)
{

}

 

 함수는 수학시간에 익히 들어본 개념일 것이다.

 입력이 함수를 거쳐 특정한 출력이 나오도록 하는 것이 우리가 익히 알고있는 함수의 개념이다.

 

 C언어에서는 함수를 이렇게 정의한다.

 자료형에 대해 알아본 후에 더 자세히 다루겠다.

 간단히 int 부분은 출력의 형태, main 부분은 함수명, 괄호에 씌여진 void 는 입력의 형태라고 보면 된다.

 

 함수명은 중복되지 않게 여러 함수를 만들 수 있지만, main 이라는 이름을 가진 함수는 특별하다.

 소스 파일에 무조건 하나만 존재할 수 있으며 소스 코드의 근간이 되는 함수라고 보면 된다.

 따라서 우리가 작성할 코드는 모두 main 함수의 괄호 내에 작성된다.

 우리는 이 때 main 함수를 정의하고 있다고 한다.

 

 

 3. 구문

printf("Hello World!");
return 0;

 

 마지막으로 구문이다.

 우리가 주로 작성할 소스 코드들에 해당하는 부분이다.

 참고로 중괄호 내에서 문장 앞 공백을 확인할 수 있는데 이는 Tab키통상적으로 띄어쓰기 4칸 정도이다.

 두 줄에서 볼 수 있듯이 구문 부분에서 문장의 끝에는 세미콜론(;)이 붙어야 컴파일러가 문장이 끝났다고 인식한다.

 

 우리는 printf ~ 부분이 Hello World 라고 출력되게끔 하는 문장임을 눈치챌 수 있다.

 printf 부분 또한 괄호 안에있는 "Hello World!" 가 입력값으로 들어간 함수이다!!

 printf() 라는 함수가 바로 지시문에 있던 <stdio.h> 라는 C언어 표준 입출력 라이브러리에 포함된 함수이다.

 만약 처음의 지시문 없이 이 문장을 작성했다면, 오류가 발생할 것이다.

 

우린 이렇게 정의된 함수를 사용하는 것을 호출이라고 한다.

 코드가 실행될 때 가장 먼저 main 함수 호출되는 원리이다.

 

 return 0; 의 return 은 말 그대로 반환을 뜻하는 키워드이다.

 그대로 해석하면 '0 이라는 녀석을 반환해라' 라는 뜻이다.

 각 문장이 끝났을 때 세미콜론(;)을 붙이는 것처럼 모든 함수는 마지막 부분에 return문을 통해 함수의 결괏값을 호출한 곳으로 반환한다.

 


 

간단한 도식화

hello.c 가 실행되는 원리

 

 이렇듯 C 프로그래밍은 다음과 같은 과정이 다중적으로 이루어진다고 보면 된다.

 ② 함수를 정의 -> ③ 함수를 호출 -> ⑤ 절차적 실행 -> ⑥ 함수의 결과 반환

 

 우린 이렇게 함수를 정의하고 호출하며 재사용성을 늘려 효율적인 명령 수행을 시키도록 코딩 작업을 해야하는 것이다.

 이러한 함수를 메소드(method), 루틴(routine), 서브루틴(subroutine) 이라고도 하며 이러한 작업 개념을 통틀어 프로시저(Procedure) 라고 한다.

 C언어는 프로시저(Procedure) 를 활용하는 것이 본질이기에 C언어를 명령형 프로그래밍 패러다임(Procedural Programming Paradigm) 언어라고 하는 것이다.

 

[Lang] 프로그래밍 언어란?

프로그래밍 언어(Programming Langauge) 란?: 컴퓨터(기계)에게 명령하거나 의사소통을 할 수 있게 해주는 언어이자 도구  프로그래밍 언어는 다음과 같이 구분되며 보통 컴파일러(Compiler)나 인터프리

devcrl.tistory.com

C언어 소개 참고

 


 

 깊다면 깊게 간단하다면 간단하게 설명한 것 같아요.

 이해하기 힘든 부분도 많겠지만 매커니즘을 이해하는 것이 중요하다고 봅니다.

 후에 다룰 내용도 유기적으로 이어질 것입니다~!

728x90

'언어 > C' 카테고리의 다른 글

[C-2] C 프로그램의 구조  (0) 2025.02.20
[C-1] 개발 환경 구축  (2) 2025.01.20
728x90

Hello World!

 제목처럼 간단히 Hello World! 라는 문자열을 출력하는 프로그램을 짜보자.

 우선 코드를 제공할테니 분석을 해보자.

 

 다음 코드의 파일명은 hello.c 라고 하자.

 C언어로 만든 텍스트 파일이자 코드이므로 확장자명이 .c 이다.

#include <stdio.h>

int main(void)
{
	printf("Hello World!");
	return 0;
}

 

 이렇게 입력한 후 프로그램을 실행시키면 Hello World! 라는 문자열이 출력된다.

 코드를 분석하기 전에, 프로그램은 어떻게 실행시키는 걸까?

 


 

실행 과정

 실행 과정을 알아보기 전에 본인이 사용하는 개발 환경이 무엇인지 점검해보자.

 

[L2-8] C 언어 (개발 환경 구축) - 1

C 언어?: 1972년 벨 연구소의 Dennis Ritchie가 개발한 프로그래밍 언어로 현대 프로그래밍 언어의 기초 주요 특징절차적 프로그래밍 언어 : 프로시저(함수) 단위로 프로그램을 구성가벼움 : 시스템

devcrl.tistory.com

 

 본인이 사용 중인 개발환경이 Visual Studio 와 같은 통합 개발 환경이라면 실행하는데 어려움이 없을 것이다.

 하지만 Clang 이나 GCC 와 같은 기본 컴파일러 같은 경우에는 C파일을 작성 후 바로 실행시키지 못할 것이다.

 

 참조한 글에서 볼 수 있듯 컴파일을 해야한다는 것인데 사실 C파일의 실행 과정은 네 단계로 나뉜다.

 

  1. 전처리 (Preprocessing)
    • 전처리 지시자 ( # ) 로 시작하는 전처리 지시문을 처리
    • .i 확장자를 가진 전처리된 파일이 생성됨
    • 헤더 파일 포함, 매크로 확장, 조건부 컴파일 처리
  2. 컴파일 (Compilation)
    • 전처리된 파일 ( .i ) 을 받아 C 텍스트 코드를 어셈블리 코드로 변환
    • 구문 분석, 최적화 등이 이루어짐
    • .s 확장자를 가진 어셈블리 파일이 생성됨
  3. 어셈블 (Assembly)
    • 어셈블리 파일 (.s) 을 기계어(오브젝트 코드) 로 변환
    • .o 또는 .obj 확장자를 가진 오브젝트 파일 생성
  4. 링크 (Linking)
    • 여러 오브젝트 파일 (.o) 과 라이브러리 파일을 결합하여 최종 실행 파일 생성
    • 외부 참조 해결, 메모리 레이아웃 결정
    • .exe 또는 실행파일이 생성됨

 

 매우 복잡해 보인다. 무슨 소린지 모르겠는 설명도 있지만 이해하지 못해도 지금은 큰 상관이 없다.

 적어도 이런 과정을 통해 특정 언어로 작성한 텍스트 파일이 실행 파일이 된다는 것만 기억하자.

 

 기본 컴파일러를 사용할 때에는 이전 포스팅에서 확인할 수 있듯 실행파일을 만드는 명령어가 있고,

IDE를 사용한다면 실행 시 이러한 모든 과정이 자동으로 이루어지고 강력한 디버깅 기능 또한 제공된다.

 


 

디버깅 (Debugging)

: 프로그램의 오류(버그)를 찾아 수정하는 과정.

 프로그램이 의도한 대로 동작하지 않을 때 문제 원인을 파악하고 해결하는데 필수적.

 

  • 목적 : 논리적 오류, 런타임 오류, 메모리 문제 등 해결
  • 도구 : 디버거 (GDB, Visual Studio Debugger 등), printf 디버깅, Valgrind(메모리 검사)
  • 과정
    1. 문제 재현
    2. 중단점 (break point) 설정 후 단계별 실행 (Step Into/Over/Out)
    3. 변수 및 메모리 상태 확인
    4. 오류 수정 및 테스트

 강력한 기능을 제공하는 IDE 는 코드 작성 중 실시간으로 디버깅을 해주기도 한다. (런타임 제외)

 따라서 간단한 컴파일러나 편집기를 사용한다면 별도로 디버거를 사용해야 하니 IDE를 사용하는 것을 추천한다.

 


 

 C 프로그래밍의 간단한 예시와 구조에 대해 알아보았습니다.

 다음으로는 예시 코드를 자세히 분석해보겠습니다.

728x90

'언어 > C' 카테고리의 다른 글

[C-3] C 코드의 구조  (0) 2025.02.22
[C-1] 개발 환경 구축  (2) 2025.01.20
728x90

Python ?

: 1991년 Guido van Rossum 에 의해 개발된 고수준의 범용 프로그래밍 언어

 

주요 특징

  • 간결하고 쉬운 문법: 프로그래밍 초보자도 배우기 쉽도록 설계
  • 인터프리터 언어: 코드 작성 후 별도의 컴파일 과정 없이 실행 가능
  • 동적 타이핑: 변수의 타입을 명시하지 않아도 됩니다
  • 풍부한 라이브러리: 데이터 분석, 웹 개발, 인공지능 등 다양한 라이브러리 제공
  • 크로스 플랫폼: Windows, MacOS, Linux 등 다양한 운영 체제에서 실행 가능
  • 멀티 패러다임: 객체지향, 절차적, 함수형 프로그래밍 지원

 

주요 사용처

  • 웹 개발: Django, Flask와 같은 프레임워크 사용
  • 데이터 분석 및 머신러닝: Pandas, NumPy, Scikit-learn, TensorFlow
  • 데스크톱 애플리케이션: PyQt, Tkinter를 이용한 GUI 개발
  • 스크립팅 및 자동화: 파일 처리, 작업 스케줄링 등
  • 게임 개발: Pygame 라이브러리 활용
 

[L1-4] 프로그래밍 언어란?

프로그래밍 언어(Programming Langauge) 란?: 컴퓨터(기계)에게 명령하거나 의사소통을 할 수 있게 해주는 언어이자 도구  프로그래밍 언어는 다음과 같이 구분되며 보통 컴파일러(Compiler)나 인터프리

devcrl.tistory.com

프로그래밍 언어 포스팅 참고

 


 

개발 환경 구축

 

[L2-8] C 언어 (개발 환경 구축) - 1

C 언어?: 1972년 벨 연구소의 Dennis Ritchie가 개발한 프로그래밍 언어로 현대 프로그래밍 언어의 기초 주요 특징절차적 프로그래밍 언어 : 프로시저(함수) 단위로 프로그램을 구성가벼움 : 시스템

devcrl.tistory.com

개발 환경에 대한 설명을 참고

 

 

 개발 환경 구축 이전에 Python 을 설치해주셔야 합니다.

 Python은 인터프리터 언어이며 모든 IDE가 Python 확장을 사용할 때 기존에 설치되어있는 Python의 경로를 참조하기 때문에 Python 설치는 필수적입니다.

 

Download Python

The official home of the Python Programming Language

www.python.org

공식 Python 다운로드 페이지

 


 

개발 환경 구축 방법 - 1  [ Python Shell ]

Python 설치 후 기본적으로 제공되는 대화형 환경입니다.

터미널에서 python 혹은 python3 입력 시 실행됩니다.

이 방법은 간단한 코드 테스트나 학습에 적합하지만 , 복잡한 코드 작성과 프로젝트 관리에는 비효율적입니다.

 


 

개발 환경 구축 방법 - 2  [ PyCharm ]

이전에 소개해드린 IntelliJ IDEA 개발사인 JetBrains사의 Python 전용 IDE

 

PyCharm: the Python IDE for data science and web development

The Python IDE for data science and web development with intelligent code completion, on-the-fly error checking, quick-fixes, and much more.

www.jetbrains.com

JetBrains사 공식 PyCharm 다운로드 페이지

 

Python 전용 IDE인 만큼 자동 코드 분석 , 디버깅 , 테스트 도구 통합 등 강력한 기능을 제공합니다.

무료인 Communithy Edition과 유료인 Professional Edition 두 가지 버전을 선택하실 수 있습니다.

 


 

개발 환경 구축 방법 - 3  [ Visual Studio Code ]

Microsoft사의 IDE인 Visual Studio Code 를 설치하여 사용

 

Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치

Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.

visualstudio.microsoft.com

Microsoft 공식 홈페이지

 

역시나 가장 추천드리는 방법입니다.

Python 하면 Visual Studio Code 가 바로 튀어나올 정도로 잘 맞는 IDE 입니다.

가벼운 에디터로 다양한 언어를 지원하며 , 확장성이 뛰어난 것이 가장 큰 장점입니다.

Microsoft사에서 제공하는 Python 확장팩 설치가 필요합니다.

설치 후 Python 경로를 IDE에 연결해야 합니다.

 


 

개발 환경 구축 방법 - 4  [ Jupyter Notebook ]

설치와 사용법이 어렵습니다.

먼저 Anaconda 를 설치해야 합니다.

Anaconda 는 머신러닝이나 데이터 분석 등에 사용되는 여러가지 패키지가 기본적으로 포함되어있는 Python 배포판 입니다.

AI를 지향하시는 분들은 아마 머지않아 Anaconda 를 사용하시게 될 겁니다.

가상 환경 관리까지 할 수 있어 유용한 도구입니다.

 

 

Download Anaconda Distribution | Anaconda

Download Anaconda's open-source Distribution today. Discover the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

Anaconda 배포판 다운로드 홈페이지 (이메일 입력란 아래 Skip registration 으로 가입하지 않고 다운로드 가능)

 

Anaconda 를 다운로드 하시면 Jupyter Notebook 이 함께 다운로드 될겁니다.

혹여나 다른 옵션을 체크하셨다면 Anaconda 를 실행하셔서 Jupyter Notebook을 별도 설치하시면 됩니다.

 

권장드리진 않지만 Anaconda 를 다운로드 하지 않고 Jupyter Notebook 을 다운로드 할 수 있습니다.

터미널에서 다음과 같이 Python으로 작성된 패키지 라이브러리 관리 시스템, pip를 통해 다운로드할 수 있습니다.

pip install jupyter

 

설치가 완료되었다면 jupyter notebook 이라고 입력 시 웹 브라우저에서 Jupyter Notebook 이 실행됩니다.

 


 

개발 환경 구축 방법 - 5  [ 온라인 리소스 ]

별도 설치 없이 브라우저에서 Python 코딩을 지원하는 플랫폼이 있습니다.

 

대표적인 세 플랫폼

  1. Google Colab : Jupyter Notebook과 유사하며 , 클라우드 기반 실행
  2. Replit : 온라인 Python IDE로 간단한 코드 작성 및 실행 가능
  3. HackerRank , LeetCode : 알고리즘 연습에 적합한 인터페이스 제공

 


 

Python은 정말 널리 사용되는 언어입니다.

다양한 개발 환경 구축 방법만 봐도 알겠죠?

특히 AI 나 데이터 과학 쪽을 지망하는 개발자 분들은 Python이랑 친하게 지내시면 좋을 듯 하네요^^
이렇게 각 언어별 개발 환경 구축 방법을 소개해드렸습니다.

계속 함께 배워나갔으면 좋겠습니다. 화이팅~!

728x90
728x90

JavaScript ?

: 1995년 Brendan Eich 에 의해 개발된 웹 개발을 위한 범용 프로그래밍 언어.

 

주요 특징

  • 인터프리터 언어 : 코드가 작성된 즉시 실행되며, 컴파일 과정이 필요 없음
  • 동적 타이핑(Typing) : 변수의 자료형을 명시하지 않아도 동적으로 할당
  • 이벤트 중심 : 브라우저에서 이벤트를 기반으로 동작하는 구조 지원
  • 멀티 패러다임 : 객체 지향 , 함수형 , 프로토타입 기반 프로그래밍 가능
  • 범용성 : 클라이언트와 서버 모두에서 사용 가능한 언어

 

주요 사용처

  • 프론트엔드 개발 : 웹 애플리케이션의 사용자 인터페이스와 동작 구현 (React, Vue.js, Angular)
  • 백엔드 개발 : Node.js를 이용한 서버 개발
  • 데스크톱 애플리케이션 : Electron을 사용하여 크로스 플랫폼 애플리케이션 개발.
  • 모바일 애플리케이션 : React Native를 통한 크로스 플랫폼 모바일 개발.
 

[L1-4] 프로그래밍 언어란?

프로그래밍 언어(Programming Langauge) 란?: 컴퓨터(기계)에게 명령하거나 의사소통을 할 수 있게 해주는 언어이자 도구  프로그래밍 언어는 다음과 같이 구분되며 보통 컴파일러(Compiler)나 인터프리

devcrl.tistory.com

이전 포스팅을 참고하세요.

 


 

개발 환경 구축

 

[L2-8] C 언어 (개발 환경 구축) - 1

C 언어?: 1972년 벨 연구소의 Dennis Ritchie가 개발한 프로그래밍 언어로 현대 프로그래밍 언어의 기초 주요 특징절차적 프로그래밍 언어 : 프로시저(함수) 단위로 프로그램을 구성가벼움 : 시스템

devcrl.tistory.com

개발 환경의 구성 요소를 참고하세요.

 


 

개발 환경 구축 방법  [ Visual Studio Code ]

Microsoft사 IDE인 Visual Studio Code 를 설치 후 사용

 

Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치

Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.

visualstudio.microsoft.com

 

네, 또 Visual Studio Code 입니다.

역시 다양한 라이브러리와 확장을 손쉽게 사용할 수 있는 강력한 IDE라 사용 분야가 넓습니다.

 

설치 후 JavaScript 코드를 작성을 하게 될텐데요.

언어 특성 상 작성 후 에디터에서 바로 컴파일을 할 수 없습니다.

언어의 주요 특징에 보면 인터프리터 언어라는 특징이 있기 때문입니다.

 

브라우저의 개발자 도구 툴에서의 콘솔으로 확인하실 수 있습니다.

 


 

JavaScript 언어는 Html 과 CSS 도 그렇고 개념이 조금 복잡하더라구요.

추가 서핑을 통해 개발 환경을 천천히 잘 구축해두시기 바랍니다.

추후에 개념 설명과 함께 튜토리얼에 대해 포스팅해보겠습니다!

728x90
728x90

Java ?

: 1995년 썬 마이크로시스템즈에서 개발 창시자는 James Arthur Gosling 이며, 2010년에 오라클 사가 썬 마이크로싯템즈를 인수하여 Java의 저작권을 소유

 

주요 특징

  • 객체지향 프로그래밍 언어 : 클래스와 객체 개념을 중심으로 설계되어 재사용성과 유지보수성이 높음
  • 플랫폼 독립성 : 자바 가상 머신(JVM)을 통해 운영체제에 관계없이 실행가능 ("Write Once, Run AnyWhere" 슬로건)
  • 풍부한 라이브러리 : 다양한 표준 라이브러리와 오픈소스 프레임워크 지원
  • 보안 : 바이트코드 검증과 강력한 메모리 관리로 높은 보안성을 제공
  • 멀티스레딩 지원 : 동시성 프로그래밍을 쉽게 구현할 수 있는 강력한 스레드 라이브러리 제공

 

주요 사용처

  • 웹 애플리케이션 : Spring, Struts, Hibernate 같은 프레임워크를 사용한 서버 개발
  • 모바일 애플리케이션 : 안드로이드 앱 개발의 주요 언어
  • 엔터프라이즈 애플리케이션 : 대규모 기업 시스템 개발
  • 데스크톱 애플리케이션 : 크로스플랫폼 GUI 애플리케이션 개발
  • 임베디드 시스템 : IoT 장치나 소형 전자기기 프로그래밍
 

[L1-4] 프로그래밍 언어란?

프로그래밍 언어(Programming Langauge) 란?: 컴퓨터(기계)에게 명령하거나 의사소통을 할 수 있게 해주는 언어이자 도구  프로그래밍 언어는 다음과 같이 구분되며 보통 컴파일러(Compiler)나 인터프리

devcrl.tistory.com

객체지향 언어 패러다임에 대한 설명을 참고하세요.

 


 

개발 환경 구축

 

 

[L2-8] C 언어 (개발 환경 구축) - 1

C 언어?: 1972년 벨 연구소의 Dennis Ritchie가 개발한 프로그래밍 언어로 현대 프로그래밍 언어의 기초 주요 특징절차적 프로그래밍 언어 : 프로시저(함수) 단위로 프로그램을 구성가벼움 : 시스템

devcrl.tistory.com

개발 환경에 대한 설명을 참고하세요.

 

 

개발 환경 구축 이전에 JDK(Java Development Kit) 를 설치해주셔야 합니다.

JDK는 JRE(Java Runtime Environment)를 포함하고 있습니다. 즉 Java 코드를 실행할 수 있는 환경을 담고있죠.

JRE는 컴파일러와 같은 실행환경을 위한 요소와 플랫폼 독립성을 보장하기 위한 JVM(Java Virtual Machine)을 포함합니다.

 

Download the Latest Java LTS Free

Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

www.oracle.com

Oracle 공식 홈페이지

 


 

개발 환경 구축 방법 - 1  [ Visual Studio Code ]

Microsoft사의 IDE인 Visual Studio Code 를 설치하여 사용하는 방법

 

Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치

Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.

visualstudio.microsoft.com

Microsoft 공식 홈페이지

 

가장 무난한 방법입니다.

주변 개발자분들이 가장 많이 사용하는 IDE로 가장 쉽게 사용하실 수 있을 겁니다.

다양한 언어와 확장을 지원하여 Java 또한 Java Extension Pack 를 설치하여 이용하면 되겠습니다.

 

  1. VS Code 와 Java Extension Pack 설치
  2. JDK 경로 설정 및 새 프로젝트 생성
  3. 터미널에서 javac 및 java 명령어로 컴파일 및 실행 가능

 


 

개발 환경 구축 방법 - 2  [ IntelliJ IDEA ]

JetBrains사 Java및 Kotlin 용 IDE인 IntelliJ IDEA 를 설치하여 사용하는 방법

 

IntelliJ IDEA – Java 및 Kotlin을 위한 최고의 IDE

 

www.jetbrains.com

JetBrains 공식 홈페이지

 

가장 추천드리는 방법입니다.

저도 사용해봤는데요 , Java 의 Structure 설정도 용이하고 특히 웹 프로그래밍에 용이합니다.

비슷한 결의 다른 언어인 Kotlin 또한 강력히 지원하는 IDE니까 한 번 체험해보세요.

 

  1. IntelliJ IDEA Community Edition(무료)을 다운로드 후 설치.
  2. JDK 경로를 설정하고 , 새로운 프로젝트를 생성하여 Java 파일을 작성

 


 

이번엔 Java 개발 환경 구축인데요, 확실히 IntelliJ IDEA가 Java 개발에 특화된 IDE인 만큼 추천드리는 방법입니다.

마찬가지로 JDK 설치와 경로 설정 부분에 신경써주시면 되겠습니다.

설치 중 오류가 생기거나 더 궁금한 내용은 댓글 써주시거나 서칭해서 차근차근 설치해보시기 바랍니다.

728x90
728x90

C 언어?

: 1972년 벨 연구소의 Dennis Ritchie가 개발한 프로그래밍 언어로 현대 프로그래밍 언어의 기초

 

주요 특징

  • 절차적 프로그래밍 언어 : 프로시저(함수) 단위로 프로그램을 구성
  • 가벼움 : 시스템 리소스를 적게 소비하는 언어. 속도가 빠르고 하드웨어(기계)와 밀접한 작업이 원활
  • 이식성 : 다양한 플랫폼에서 실행 가능하도록 설계
  • 심플한 구조 : 적은 양의 코드 대비 다양한 메소드나 기능를 포함하도록 설계된 타 언어들에 비해 길 수는 있어도 단순한 문법 구조와 강력한 기능을 제공

주요 사용처

  • 운영 체제 (OS)
  • 임베디드 시스템
  • 시스템 소프트웨어 및 드라이버 개발
  • 게임 엔진 및 성능 중심의 앱
 

[L1-4] 프로그래밍 언어란?

프로그래밍 언어(Programming Langauge) 란?: 컴퓨터(기계)에게 명령하거나 의사소통을 할 수 있게 해주는 언어이자 도구  프로그래밍 언어는 다음과 같이 구분되며 보통 컴파일러(Compiler)나 인터프리

devcrl.tistory.com

C언어에 대한 부가적인 설명 참고

 


 

개발 환경 구축

 항상 개발을 시작하려면 개발 환경을 잘 구축해야 합니다.

 농사를 지으려면 농장을 잘 마련해 두어야하는 것 처럼 말이죠.

 개발 환경은 C 코드를 작성하고 실행 가능한 프로그램으로 변환하는데 필요한 도구와 소프트웨어들을 포함합니다.

 

 

[C2-6] 컴퓨터 시스템의 구성 (1)

컴퓨터의 기본 구성하드웨어(Hardware) : 컴퓨터에서 정보에 대한 처리가 실제로 일어나게 하는 물리적 실체소프트웨어(Software) : 정보들에 대한 처리를 지정해주는 명령들의 집합 혹은 무형물을

devcrl.tistory.com

소프트웨어에 대한 설명 참고

 


 

개발 환경의 구성 요소

  1. 코드 에디터(Editor) : C 언어 코드를 작성할 수 있는 도구
    • Visual Studio (Code) , Notepad++, Sublime Text ...
  2. 컴파일러(Compiler) : C 언어 코드를 기계어로 변환해주는 프로그램. 컴파일 과정을 통해 실행 파일로 변환.
    • GCC(GNU Compiler Collection), Clang , MSVC(Visual Studio 의 컴파일러) ...
  3. 디버거(Debugger) : 프로그램 실행 중 발생하는 오류를 찾고 수정하는 도구
    • GDB(GNU DeBugger) , Visual Studio 내장 디버거 ..
  4. IDE(통합 개발 환경) : 코드 작성 , 컴파일 , 디버깅을 한 곳에서 처리할 수 있는 소프트웨어
    • Visual Studio (Code) , Eclipse , IntelliJ ...

 


 

개발 환경 구축 방법 - 1  [ Visual Studio ]

Microsoft사의 IDE인 Visual Studio Community 버전을 설치하여 사용하는 방법

 

 

Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치

Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.

visualstudio.microsoft.com

Microsoft 공식 홈페이지

 

가장 추천드리는 방법입니다.

사용 중인 OS가 Windows , MacOS 인 경우에만 가능한 방법입니다.

주로 Windows에 초점이 맞춰져있습니다.

자세한 설치 방법이나 설치 중 오류는 추가적으로 검색해보시거나 댓글로 질문주세요.

 


 

개발 환경 구축 방법 - 2  [ Clang ]

MacOS 운영 체제에 기본으로 제공되어있는 컴파일러입니다.

텍스트로 소스 코드를 작성 후 터미널(Terminal) 창에서 다음과 같은 명령어로 컴파일이 가능합니다.

clang <source_filename>.c -o <output_filename>

 

컴파일 명령어

 

./<output_filename>

실행 명령어

 

MacOS 에서 사용하시는 것을 권장드립니다.

다만 코드 에디터가 별도로 없다는 불편함이 있어 IDE 사용을 추천드립니다.

 


 

개발 환경 구축 방법 - 3  [ GCC ]

대부분의 Linux 배포판에 기본으로 포함되어 있는 컴파일러이며, Windows 에서도 별도 설치 후 사용 가능합니다.

텍스트 편집기(nano, vi ..) 를 통해 작성한 소스 코드를 터미널(Terminal) 창에서 다음과 같은 명령어로 컴파일합니다.

gcc <source_filename>.c -o <output_filename>

컴파일 명령어

 

./<output_filename>

실행 명령어

 

Linux 운영 체제 사용자 분들은 대부분 GCC를 사용하실 겁니다.

마찬가지로 코드 에디터가 별도로 없고 디버거가 없어 사용에 불편하실 것으로 예상됩니다.

Linux 사용자 분들은 대부분 Visual Studio Code 를 사용하여 GCC와 연동하여 사용하실 겁니다.

 


 

 개발 환경 구축은 항상 처음이 복잡하게 느껴질 수도 있고 실제로 수고스럽습니다.

 하지만 안정적이고 편리한 개발 환경 구축이 여러분의 개발을 더욱 효율적이게 만들 것입니다.

 설치 과정까지 다 담진 못해 아쉽습니다. 부디 추가적인 정보는 검색해보시고 설치하시기 바랍니다.

 PATH , 환경변수와 관련된 설명은 부디 유심히 읽어보시고 주의해서 설치해주세요.

728x90

'언어 > C' 카테고리의 다른 글

[C-3] C 코드의 구조  (0) 2025.02.22
[C-2] C 프로그램의 구조  (0) 2025.02.20
728x90

프로그래밍 언어(Programming Langauge) 란?

: 컴퓨터(기계)에게 명령하거나 의사소통을 할 수 있게 해주는 언어이자 도구

 

 

프로그래밍 언어는 다음과 같이 구분되며 보통 컴파일러(Compiler)인터프리터(Interpreter)를 통해 변환

 

  • 저수준 언어 : 하드웨어(기계)와 가까운 언어

ex) 기계어 : 컴퓨터가 직접 이해하고 실행할 수 있는 이진코드(0과 1)로 이루어진 언어

      어셈블리어 : 기계어를 사람이 읽기 쉽게 기호화한 언어, 각 명령어가 기계어와 1:1 대응

 

 

  • 고수준 언어 : 사람이 이해하기 쉬운 문법을 사용하는 언어

ex) Python, Java, C 등등

 


 

프로그래밍 언어의 패러다임

프로그래밍 패러다임은 프로그래밍 언어의 특징에 따라 분류한 것을 의미

각 언어는 하나 이상의 패러다임으로 분류 가능

각 패러다임은 특정 문제에 더 적합한 방식을 제공

 

  1. 명령형 프로그래밍(Imperative Programming) : 프로그램이 어떻게 작업을 수행할지 직접 표현하는 방식
    1. 절차적 프로그래밍(Procedural P-) : 프로그램을 프로시저(Procedure) 단위로 나누어 문제를 해결하는 방식
      • 대표적인 언어 : C , Pascal ...
    2. 객체 지향 프로그래밍(Object-Oriented P-) : 데이터를 객체 단위로 묶고, 객체 간 상호작용을 통해 프로그램 구성
      • 대표적인 언어 : C# , C++ , Java , Python ...
  2. 선언형 프로그래밍(Declarative P-) : 목표를 기술하고, 작업 수행의 결정을 컴퓨터에게 맡기는 방식
    1. 함수형 프로그래밍(Functional P-) : 함수 호출을 중심으로 프로그램 구성 및 제어
      • 대표적인 언어 : Haskell, Lisp, F#, Scala ...
    2. 논리형 프로그래밍(Logical P-) : 프로그램의 목적을 사실과 규칙을 기반으로 기술, 해답을 논리적 추론하는 방식
      • 대표적인 언어 : Prolog

 

프로그래밍 패러다임은 시간이 흐르면서 점차 발전

 초기에는 절차적 프로그래밍이 주류였으나, 코드의 재사용성과 유지보수를 효율적으로 하기 위한 필요성으로 객체 지향 프로그래밍이 등장하였습니다. 그 후, 상태 변화를 최소화하고 함수 중심으로 코드를 작성하는 함수형 프로그래밍 등이 발전하였으며, 논리형 프로그래밍이 등장해 다양한 문제 해결 접근 방식을 제공합니다.

 

현재에는 선언형 언어가 슬슬 학계를 떠나 업계 전반으로 확산되고 있는 양상이라고 합니다.

 


가장 많이 사용되는 프로그래밍 언어

업계에서 흔히 사용되는 언어들에 대한 간략한 특징과 주요 사용처에 대해 소개하겠습니다.

 

  1. Python
    • 특징 : 쉬운 문법 , 풍부한 라이브러리 , 객체 지향 , 데이터과학 및 AI에 강세
    • 주요 사용처 : 데이터 분석, 웹 개발, AI , 자동화
  2. Java
    • 특징 : 안정성 , 플랫폼 독립성 , 대규모 애플리케이션에 적합
    • 주요 사용처 : 기업용 소프트웨어 , 안드로이드 앱 개발 , 금융권 시스템
  3. JavaScript
    • 특징 : 웹 프론트엔드 개발의 표준 , Node.js 로 백엔드도 가능
    • 주요 사용처 : 웹 개발 , 프론트/백-엔드 개발
  4. C
    • 특징 : 간결하고 효율적인 낮은 수준의 프로그래밍 언어
    • 주요 사용처 : OS개발 , 하드웨어 개발 등등

 

 C 언어는 프로그래밍의 시초라고 해도 무방할 만큼 중요한 언어이지만, 현재에 특정 목적에 특화된 다양한 언어와 프레임워크가 쏟아져나오고 있는 추세입니다. 편한 언어들을 두고 C를 사용할 필요는 당연히 없습니다.

 하지만 지금까지의 인프라는 C로 구성된 경우가 아직 적잖게 존재하며 타 개발 언어들이나 라이브러리를 C로 구성한 경우가 매우 많습니다.

 그 이유는 바로 C 언어의 최고 강점 중 하나인 가벼움 인데요. 다른 말로하면 다른 언어들은 부가 기능이 많고 코딩이 쉬운만큼 언어가 무겁습니다.

( 프로그래밍에 소비되는 시스템 리소스의 양을 주로 무게에 빗대 비유적으로 표현합니다. )

 

 한 물 간 어려운 언어로 비추어질 수도 있지만 다른 고급 언어들의 기초가 되며 프로그래밍의 원리를 이해하는데에도  큰 도움을 주기 때문에 여유가 있다면 익혀두면 좋을 것 같습니다.


 

오늘은 언어에 대해서 간단하게 알아봤는데요.

저도 그랬고 초보 개발자라면 누구나 고민할 언어 선택 이슈가 생기게 마련일겁니다.

저는 RPG게임의 직업 고르듯 별 거 아닌 것에 인생 최대의 고민을 하곤 했었죠 ㅎㅎ

지금 제 주 언어는 Python 입니다. AI쪽을 지향하고 있기 때문이죠!

 

전문 개발자분들은 기본적으로 주 분야의 언어 외에도 여러 관련 분야의 언어를 구사하시는 분들이 많을 겁니다.

당장의 고민보다는 얕게나마 모든 언어를 찍먹해보시는 걸 추천드려요.

언어 하나를 차근차근 접수해나가다 보면 다른 언어는 훨씬 접하기 쉬우실 것으로 예상합니다.

전공자라면 다양한 언어를 다룰 기회가 있지만 비전공자라면 아마 다양한 언어를 접하는데 어려움을 느끼실 수도 있을거라는 생각이 듭니다.

이번 포스팅이 갈피를 잡는데 조금이나마 도움이 되었기를 바랍니다!!

728x90

+ Recent posts