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

AI 란 무엇일까?

: 인공지능(Artificial Intelligence , AI) 는 컴퓨터인간처럼 사고하고 학습하여 문제를 해결하도록 만드는 기술.

 


 

왜 AI 에 주목하는 걸까?

 요즘은 산업과 사회 전반에서 계속해서 새로운 가능성을 열어가고 있는 AI

 자율 주행 , 개인화 의료 서비스 , 스마트 시티 등 미래 산업을 혁신할 잠재력을 갖추고 있음

 

 가장 중요한 점은 AI 를 향한 통찰은 기존 대비 생산성효율을 높이고 인간의 한계극복할 수 있는 도구로 인식됨

 그러나 이와 함께 윤리적 문제와 데이터 프라이버시와 같은 혁신 기술의 취약점 또한 사회적 이슈로 거론되고 있음

 


 

AI 의 발전 과정

  1. 초기 단계
    • 1950년대 : Alan Turing 의 "기계도 생각할 수 있을까?" 라는 질문으로 AI 개념이 시작
    • 규칙 기반 접근 : 명시적으로 정의된 규칙에 따라 작동하는 시스템 개발
  2. 표현 기법
    • 1960~70년대 : 탐색과 문제 해결을 위한 알고리즘들이 개발
    • 지식 표현 : AI가 문제를 해결하기 위해 필요한 정보를 구조화하여 표현하는 기법 발전
  3. 머신러닝
    • 1980년대 : 데이터를 학습하여 패턴을 파악하는 머신러닝(Machine Learning) 기술 등장
    • 주요 성과 : 신경망 모델(Neural Network)이 재조명되고 , 기계 번역 등 초보적 응용 프로그램 제작
  4. 딥러닝과 빅데이터
    • 2000년대 초반 : 컴퓨팅 파워의 증가와 빅데이터의 등장으로 딥러닝 기술이 주목받음
    • 딥러닝 모델 : 다층 신경망 (CNN , RNN) 기반의 모델로 이미지/음성 인식 분야에서 성과
  5. 현대 AI : 범용성과 응용 확장
    • 2010년대 이후 : 자연어 처리 , 자율 주행 , 의료 진단 등 다양한 산업에 AI 적용
    • 생성 AI : 텍스트 , 이미지 , 음악 등 창작 활동에도 AI가 활용됨

 


 

AI 분야 학습 과정

  1. 프로그래밍 기초 : Python , Numpy 등 데이터 처리에 필요한 기본 도구 학습
  2. 기계 학습 이론 : 선형 회귀 , 분류 , 클러스터링 등 기본 개념 이해
  3. 프레임워크 사용 : TensorFlow , PyTorch 등 딥러닝 도구 익히기
  4. 신경망 구조 : CNN , RNN 등 주요 신경망 설계와 작동 원리 학습
  5. 프로젝트 실습 : 데이터를 다루고 AI 모델을 구현하여 실제 문제 해결 경험 쌓기

 


 

 AI 는 현재에도 끊임없이 발전하고 있는데요 , 학습을 통해 기초를 다지고 실제 프로젝트에 적용하며 실력을 키우는게 중요합니다.

 트렌드가 계속해서 변하는 요즘 시대에 초조해하지 마시고 천천히 나아가다보면 저희도 머지않아 그 흐름에 발을 맞추며 나아가게 될 수 있을 것입니다.

728x90

'분야 > AI' 카테고리의 다른 글

[AI-3] Python List 자료형  (2) 2025.02.23
[AI-2] 데이터 처리  (1) 2025.02.20
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

2025년 2주차(25.01.13 ~ 25.01.19) 업계 뉴스


 

  • 미국 내 TikTok 서비스 중단

1월 18일, 미국에서 TikTok 서비스 중단

미 정부의 보안 우려로 인한 조치

중국 정부는 TikTok의 미국 사업부를 일론 머스크에게 매각하는 방안을 고려 중

 

  • '뉴 글렌' 로켓 시험 발사 취소

1월 13일, 스페이스X 의 독점 체제에 도전하는 '뉴 글렌' 의 로켓 시험 발사 취소

우주 산업에서의 경쟁 심화 유발

 

  • FC 온라인, '25 TOTY' 선수 업데이트로 인기 상승

1월 9일 진행된 NEXON사 '서든어택'의 신규 업데이트와 함께 'FC 온라인'이 '25 TOTY' 선수 업데이트 진행

게임 이용자들의 관심 증가 , 게임 사용 시간 증가

 

  • 윤석열 대통령 구속

1월 19일, 대한민국 윤석열 대통령 구속

한국 정치와 사회를 망라하여 향후 IT정책과 산업에 영향을 줄 것으로 예상

 


 

 이번 주 주요 뉴스들은 기술 산업이 정치적 , 사회적 요인에 얼마나 민감하게 반응하는지 보여주는데요.

 기업들은 글로벌 규제 환경, 정치적 변화를 주시하며 이에 따른 리스크 관리와 전략 수립이 중요하다는 걸 볼 수 있네요.

 또한, 지속적인 혁신과 사용자 중심의 콘텐츠 제공이 시장 경쟁력 확보에 중요하다는 점이 강조됩니다.

 

 요즘 정세가 참 어지러운데요, 신경 안쓰고 있으니 무슨 일이 일어나는지도 모르겠네요.

 제 포스팅으로 주요한 사건들이나마 알고가시면 도움이 되지 않을까 싶습니다.

 추운 날 감기 조심하시고 건강하세요 여러분!

728x90

'IT 정보 > 뉴스' 카테고리의 다른 글

[News-6] 금주의 뉴스  (1) 2025.02.17
[News-5] 금주의 뉴스  (3) 2025.02.16
[News-4] 금주의 뉴스  (5) 2025.02.03
[News-3] 금주의 뉴스  (2) 2025.01.27
[News-1] 금주의 뉴스  (3) 2025.01.13
728x90

컴퓨터의 기본 구성

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

컴퓨터의 기본적인 구성도

 


 

 

하드웨어의 주요 구성 요소

  • 중앙 처리 장치 (Central Processing Unit , CPU)
  • 기억 장치 (Memory) : 주기억장치 , 보조기억장치
  • 입출력 장치 (Input/Output Device , I/O Device) : 입력 장치 , 출력 장치
  • 시스템 버스 : 각 구성 요소들은 시스템 버스를 통해 상호 연결

하드웨어의 간단한 구성도

 


 

중앙 처리 장치(CPU)

: 컴퓨터의 특성을 결정 , 프로그램 실행데이터 처리를 담당

  • 구성
    • 산술 논리 연산 장치 (Arithmetic and Logic Unit , ALU) : 다양한 연산을 수행
    • 제어 장치 (Control Unit , CU) : 명령어의 해독과 실행하는 전반적인 과정 및 장치 제어
    • 레지스터 (register) : CPU 내부 데이터를 임시 보관

CPU 내부 간단한 구성도

 


 

기억 장치 (Memory)

  • 주기억장치 (Main Memory , MM)
    • 반도체 칩으로 구성 -> 고속 접근(엑세스) 가능
    • 비싼 가격 , 면적 차지 -> 저장 용량에 한계 존재
    • 전원이 차단되면 데이터가 사라짐 -> 휘발성 메모리
    • CPU <--> 시스템 버스 <--> MM
    • 예시) RAM , ROM
  • 보조기억장치 (secondary Memory)
    • 저장 밀도가 높고 저가 , 접근 속도가 느림 -> 대용량의 저장 용량
    • 비휘발성 메모리
    • 직접 접근 불가 -> 별도의 제어기 필요
    • CPU <--> 시스템 버스 <--> 보조기억장치 제어기 <--> 보조기억장치
    • 예시) 하드디스크 , SSD , 플래시메모리

 


 

입출력 장치 (I/O Device)

  • 사용자와 컴퓨터간 상호작용을 위한 장치 (별도 제어기 필요)
  • 입력 장치 (Input Device) : 데이터를 이진 형태로 변환하여 전달
    • 키보드 , 마우스 , 마이크 등
  • 출력 장치 (Output Device) : CPU가 처리한 데이터를 사람이 이해할 수 있는 데이터로 변환하여 출력
    • 모니터 , 스피커 , 프린터 등

 


 

소프트웨어

: 컴퓨터를 구성하고 있는 하드웨어를 잘 동작시킬 수 있도록 제어, 지시하는 모든 종류의 프로그램

 

  • 시스템 소프트웨어 : 하드웨어를 관리하고 응용 소프트웨어를 실행하는데 필요한 프로그램
  • 응용 소프트웨어 : 일반 사용자들이 시스템을 특정한 용도에 활용하기 위해 만든 프로그램

 


 

시스템 소프트웨어

운영 체제
(Operating System, OS)
컴퓨터 하드웨어 자원인 CPU , Memory , I/O Device , 네트워크 장치 등을 제어하고 관리
종류 : 유닉스(UNIX) , 리눅스(LINUX) , 윈도우(Windows) , 맥OS(MAC OS) 등등
언어 번역 프로그램 고급 언어 프로그램을 기계어로 변환하는 프로그램
종류 : 인터프리터(interpreter) , 컴파일러(compiler)
장치 드라이버
(Device Driver)
컴퓨터에 연결된 주변 장치를 제어하는 운영체제 모듈
링커
(Linker)
컴파일된 개별 파일을 연결하여 실행가능한 하나의 파일로 만드는 프로그램
로더
(Loader)
기억 장치에 보관된 프로그램을 읽어 실행가능 상태로 만드는 프로그램
할당 , 연결 , 재배치 , 적재 기능을 수행

 


 

응용 소프트웨어

: 애플리케이션 , 앱 , 어플 등으로 불림

용도 예시
사무용 한글 , MS-office
그래픽 작업 포토샵 , 일러스트레이터
멀티미디어용 플레이어 어플
게임용 LoL , 카트라이더 , 스타크래프트
통신 및 네트워크 크롬 , 카카오톡 , 인스타그램

 


 

오늘은 하드웨어와 소프트웨어에 대해 간략히 알아보았습니다.

내용이 워낙 많지만 핵심 내용으로만 간략하게 정리하려 노력중입니다.

이해가 안되는 부분이 있다면 세부 사항 추가 학습을 권장드립니다~

읽어주셔서 감사합니다~~

728x90

'분야 > CS' 카테고리의 다른 글

[CS-5] 보수와 사칙연산  (0) 2025.02.20
[CS-4] 데이터의 표현  (0) 2025.02.19
[CS-3] 컴퓨터 시스템의 구성 - 2  (3) 2025.02.02
[CS-1] 컴퓨터 구조(CS) 란?  (10) 2025.01.15
728x90

이번 포스팅에서는 컴퓨터 공학자들이 선택하는 다양한 분야에 대해 간단하게 소개해드리도록 하겠습니다.

 


 

컴퓨터 공학의 메이저 분야 TOP10

 

  1. AI (Artificial Intelligence : 인공 지능)
    • 설명 : 기계가 인간의 지능을 모방하도록 컴퓨팅하는 기술. 
    • 주요 기술 : TensorFlow , PyTorch , Scikit-learn
    • 주요 개념 : 머신러닝 , 딥러닝 , 자연어처리(NLP), 컴퓨터 비전 등이 포함됨.  빠른 연산 능력으로 다양한 학습을                       통해 인간에게 통찰을 제공.
    • 응용 분야 : 자율 주행 , 의학 계열 분석 , 추천 시스템(알고리즘) , 챗봇 , 음성 인식
  2. Backend (백엔드 개발)
    • 설명 : 웹 및 소프트웨어의 서버(Server) 측 로직과 데이터 베이스를 다루는 분야.
    • 주요 기술 : Node.js , Django , Spring , Express
    • 주요 개념 : API , RESTful , 서버 관리 , 데이터베이스 연동
  3. Frontend (프론트엔드 개발)
    • 설명 : 사용자가 직접 상호작용하는 웹 페이지의 화면과 UI/UX 를 개발하는 분야.
    • 주요 기술 : HTML(HyperTextMarkupLanguage) , CSS , JavaScript , React , Vue.js
    • 주요 개념 : 반응형 웹 , SPA , 웹 접근성
  4. Database (데이터베이스)
    • 설명 : 데이터를 효율적으로 저장 , 검색 , 관리하는 기술.
    • 주요 기술 : MySQL , PostgreSQL , MongoDB
    • 주요 개념 : 관계형 데이터베이스 , NoSQL , 쿼리 , 데이터 정규화
  5. Network (네트워크)
    • 설명 : 컴퓨터 간의 데이터 전송과 통신을 다루는 분야.
    • 주요 기술 : TCP/IP , HTTP , DNS , VPN
    • 주요 개념 : 패킷, 라우팅 , 프로토콜 , OSI 7계층
  6. Security (보안)
    • 설명 : 시스템 , 네트워크 , 데이터를 보호하는 기술.
    • 주요 기술 : 암호화 , 방화벽 , 침입 탐지 시스템(IDS)
    • 주요 개념 : 해킹 , 취약점 , 침투 테스트 , 인증
  7. OS (Operating Systems : 운영체제)
    • 설명 : 하드웨어와 소프트웨어를 관리하고 프로그램 실행 환경을 제공하는 소프트웨어.
    • 주요 기술 : Linux , Windows , MacOS
    • 주요 개념 : 멀티태스팅 , 프로세스 관리 , 메모리 관리
  8. Embedded Systems (임베디드 시스템)
    • 설명 : 하드웨어에 직접 내장되어 동작하는 소프트웨어 개발.
    • 주요 기술 : Arduino(아두이노) , Raspberry Pi , C , C++
    • 주요 개념 : 펌웨어 , 실시간 운영체제(RTOS)
  9. Software Engineering (소프트웨어 공학)
    • 설명 : 소프트웨어 개발의 이론과 실무를 다하는 분야.
    • 주요 기술 : Git , Jenkins , Jira
    • 주요 개념 : 애자일 , TDD , CI/CD , 코드 품질
  10. Data Science & Big Data (데이터 과학 및 빅데이터)
    • 설명 : 데이터를 수집 , 분석 , 시각화하여 인사이트를 도출하는 분야.
    • 주요 기술 : Python , R , Hadoop , Spark
    • 주요 개념 : 데이터 마이닝 , 통계 , 데이터 시각화
  11. (번외) Quantum Computing (양자 컴퓨팅)
    • 설명 : 양자역학의 원리를 활용하여 기존의 컴퓨터의 연산 수행 방식을 전환. 차세대 컴퓨터
    • 주요 기술 : Qiskit , Cirq , D-Wave
    • 주요 개념 : 큐비트 , 중첩 , 얽힘 , 양자 게이트
    • 응용 분야 : 암호 해독 , 최적화 문제 , 시뮬레이션 , 머신러닝 가속

앙쟈 컴퓨터는 상용화 초기단계이지만 , 미래의 컴퓨팅 패러다임을 바꿀 잠재력이 큰 기술로 주목받고 있습니다.


 

오늘은 이렇게 업계 메이저 분야에 대해서 포스팅해보았습니다.

언어 선택도 그렇고 아마 분야 선택 또한 가장 큰 고민거리 중 하나가 아닐까 싶네요.

모두들 특정 목표를 바라보고 어떻게 나아갈지 고민하게 마련이니까요.

저도 이렇게 다양한 분야가 존재할지는 몰랐습니다.

자라면서 미디어에 비추어진 컴퓨터 공학자의 로망과는 상이한 부분이 느껴졌습니다..ㅎㅎ

 

저도 그렇고 아마 전공자/비전공자를 포함해 분야 선택에 가장 많이 고려할 것으로 예상되는 것이 있습니다.

바로 시장의 포화도가 아닐까 싶습니다.

"어라 내가 아무리 열심히해서 올라가도 이미 잘하는 사람이 너무 많으면 경쟁력이 떨어지진 않을까...?"

라는 걱정을 일삼으며 말이죠.

 

하지만 여러분, 요즘이 어떤 시대인가요? 컴퓨팅 기술이 나날이 발전하는 시대죠?

모든 분야는 큰 틀에서 보면 결국 유기적으로 연결되어 있습니다.

관련 직종으로 여러분의 자리가 뿌리내릴 수도 있구요.

빠르게 진행되는 트렌드에 맞게 새로운 기술이 계속해서 발전하고 있습니다.

1990~2000 년대와 달리 요즘은 여러분의 창의성을 요구하며 시장의 빈틈을 공략할 여지가 많아졌다고도 할 수 있습니다.

 

일단 도전해보세요. 늦지 않았습니다!

충분히 고민하고 분야를 결정한 후 나아가 훌륭한 개발자가 되시길 바랍니다!

728x90
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
728x90

컴퓨터 구조(Computer Structure) 란 컴퓨터 시스템의 하드웨어소프트웨어가 상호작용하는 방식을 설명하는 개념

이를 잘 이해한다면 동작 원리성능 향상 기술에 대해 깊은 이해가 가능

 


 

1. 컴퓨터 구조의 정의

하드웨어 구성 요소 , 명령어 집합 아키텍쳐(ISA) , 해당 요소들의 작동 방식을 포함

  • 기본적 하드웨어 구성 요소 : 중앙처리장치(CPU) , 기억장치(Memory) , 입출력장치(I/O Device)
  • 명령어 집합 아키텍쳐(ISA) : 컴퓨터가 수행할 수 있는 명령어의 집합

 

2. 컴퓨터 구조의 중요성

  • 컴퓨팅 효능 최적화 : 하드웨어의 동작 원리를 이해하여 사용자의 환경에 맞게 사용하면 효율과 성능 향상
  • 취업시장 경쟁력 : CS를 잘 이해하는 것은 시스템 엔지니어, 임베디드 개발자 등 대부분의 직무에서 핵심 역량

 

3. 컴퓨터 구조의 계층

  • 응용 소프트웨어 : 사용자가 직접 사용하는 프로그램 (ex : 크롬 브라우저 , 카카오톡 .. )
  • 운영 체제(OS) : 하드웨어 자원을 관리하는 시스템 소프트웨어 (ex : Windows , Linux/Unix , MacOS .. )
  • 하드웨어 : 물리적 구성 요소 (ex : CPU , 메모리 , 전원장치 .. )

 


 

저도 전공 수업때 배웠던 내용들이지만 당시에는 내용이 너무나 많고 학점을 잘 받으려 무작정 암기를 했었습니다 ㅜㅜ.. 그 결과로 너무나 유용하고 필수적인 내용들을 유기적으로 받아들이지 못해서 잊어버리기 십상입니다. 복습겸 차후에도 여러분들께도 도움이 되셨으면 하고자 정리 및 요약하여 포스팅하려 합니다. 더욱 자세하고 깊은 내용은 댓글로 질문주시거나 직접 공부해보시는게 베스트겠죠?

항상 화이팅입니다!

728x90

'분야 > CS' 카테고리의 다른 글

[CS-5] 보수와 사칙연산  (0) 2025.02.20
[CS-4] 데이터의 표현  (0) 2025.02.19
[CS-3] 컴퓨터 시스템의 구성 - 2  (3) 2025.02.02
[CS-2] 컴퓨터 시스템의 구성 - 1  (5) 2025.01.19

+ Recent posts