본문 바로가기

Computer Science30

Java 기초 배울 때 놓치기 쉬운 것들 정리 1. Java 기본 구조프로젝트 > 패키지 > 클래스 > 메소드 > 소스코드프로젝트 만들기 단축키 : Alt + Shift + n이후, 아랫방향키 + 엔터치고, 프로젝트 이름 지정(버전 잘 맞춰줘야함.)패키지 만들기 단축키 : src 폴더에서 Ctrl + n이후, pack 검색 후 엔터치고, 패키지 이름 지정(소문자로 시작해야함.)클래스 만들기 단축키 : Ctrl + n클래스 선택 후 엔터치고, 클래스 이름 지정(대문자로 시작해야함.)main 메소드 단축키 : main 쓰고, Ctrl + 스페이스바 한줄 통째로 지우는 단축키 : Ctrl + D주석 : Ctrl + /  2. 변수 선언시 주의사항반드시 초기값을 설정해주어서 초기화 시켜주어야함. 초기화를 안하면, RAM에 남아있는 가비지 값이 그대로 들어와.. 2024. 9. 29.
Python 개발환경 설정 가상환경에서 파이썬 코드를 작성하고, 수정을 할 때마다 버전을 기록하면서 커밋할 수 있게 인터프리터 개발 환경을 세팅하는 방법을 알아보자. 1. 파이썬 설치https://www.python.org/downloads/버전 선택(Python 3.10.9 버전 권장)운영체제 맞는 파일 선택하여 설치Add python.exe to PATH 체크 후 환경변수 추가하여 Install Now 클릭Windows PowerShell에서 python --version 명령어 입력파이썬 버전 확인python 입력print("hello world") 입력 후, 출력되는지 확인 2. VSCode 설치https://code.visualstudio.com/download윈도우의 경우 system installer 선택관리자 권한으.. 2024. 9. 11.
Git branch 기본 사용법 및 Github 협업 방법 1. Git Branch 기본 사용법 - Git Branch 생성 - Git Branch 전환 - Git Branch 목록 확인 - Git Branch 삭제 - Git Branch 병합 2. Git Branch, Github 협업 방법 - Git으로 작성한 코드 Github에 Push하기 - Git으로 작성한 코드 Github에서 Pull하기 - 협업을 위한 Git Branch 전략 * Git, Github를 처음 접하신 다면, 아래 글을 먼저 보고오시는 걸 권장드립니다. CLI환경에서 git clone생성부터 commit, push까지(MacOS) * MacOS 환경을 기준으로 작성했습니다. 기본적인 git의 프로세스는 위와 같습니다. 위의 그림을 잘 기억하면서 git clone생성부터 commit과 .. 2023. 5. 3.
CLI환경에서 git clone생성부터 commit, push까지(MacOS) * MacOS 환경을 기준으로 작성했습니다. 기본적인 git의 프로세스는 위와 같습니다. 위의 그림을 잘 기억하면서 git clone생성부터 commit과 push까지 수행해봅니다. 기본 커멘드 ls: list segment. 하위로 선택할 수 있는 Directory나 파일들을 모두 보여준다. ls -a: 숨김파일까지 모두 보여준다. ls -l: line by line으로 한 줄씩 부가정보를 출력해준다. cd ..: Directory 뒤로가기 cd {repo name}: Directory 변경 mkdir: Directory 생성 rm {file name}: 파일 삭제 cat {file name}: 텍스트 파일 내에 존재하는 모든 텍스트 라인들을 합쳐서 shell에 표현한다. 0. Terminal, Rep.. 2023. 5. 1.
프로세스 관리: 생성, 제거, 스케줄링 (feat. PCB) 프로세스 관리(Process management) 실제로 프로세스는 메모리 상에서 어떻게 만들어지고, 어떻게 조절이 되는지 등에 대한 내용을 배울 수 있다. 해당 글의 이해를 돕기 위해 이 글을 먼저 보고 오시는 걸 추천드립니다: 프로세스 상태 전이도 목차 1. PCB(Pcrosess Control Block)란? 2. 프로세스 생성: 프로세스가 어떻게 만들어질까? 3. 프로세스 제거(termination) 4. 프로세스 스케줄링(Proces Scheduling) 1. PCB(Pcrosess Control Block)란? PCB(Process Control Block)는 운영 체제가 프로세스를 관리하기 위해 사용하는 자료구조이다. 각 프로세스마다 하나의 PCB가 할당되며, 해당 프로세스의 상태와 제어 정.. 2023. 4. 26.
프로세스 상태 전이도(feat. 프로세스 vs 프로그램 용어 차이) 1. 프로세스 vs 프로그램 무슨 차이일까? 프로그램(Program): 저장공간에 저장되어 있는 명령어 목록 파일 프로세스(Process): 메모리에서 실행되고 있는 프로그램 .프로세스는 OS에서 가장 중요한 기본적인 개념이다. 프로그램이라는 말이있고, 프로세스가 있는데 컴퓨터에서 이 2가지는 이제부터 다른 개념이라고 생각해야한다. 프로그램은 한 마디로 말하면, 명령어 목록이 있는 파일이다. 즉, 프로그램은 SSD/HDD같은 Storage에 저장되어있는 명령어 집합을 이야기한다. 카카오톡 프로그램이라고 하면, 내 컴퓨터 어딘가에 카카오톡을 실행할 수 있는 여러가지가 깔려있다. 윈도우는 C드라이브 안에 Program files라는 폴더 안에 들어가 있다. 그 폴더 이름이 Program files인 이유이다.. 2023. 4. 24.
운영체제 종류: 유닉스, 윈도우, 맥OS, 리눅스 운영체제의 종류 1. 유닉스(Unix) 2. 윈도우(Windows) 3. MacOS 4. 리눅스(Linux) 1. 운영체제의 근본: 유닉스(Unix) 운영체제라는 개념은 컴퓨터가 처음 시작될 때, 원래 없었다가 점점 고도화 되면서 시스템 리소스를 관리하는 시스템 소프트웨어 필요성으로 인해 만들어졌다. 1969년도에 처음 만들어지고, 그 이후에 여러가지 운영체제가 나왔다. 1972년도에 C언어가 만들어졌다. 그 당시에 전세계에서 가장 유명한, 컴공의 관련 모든 기초 학문의 개념이 다 등장한 벨렙(벨 연구소)라는 곳에서 정말 유명한 컴퓨터 과학자들이 만든 것이 C언어이다. C언어는 운영체제를 만들기 위해 만들어진 언어이다. 윈도우를 제외한 모든 운영체제를 포괄하는 것이 유닉스이다. 유닉스 계열에 있는 것이 .. 2023. 4. 22.
운영체제: 유저모드, 커널모드, 시스템콜 운영체제: 유저모드, 커널모드, 시스템콜 운영체제를 통해 안정적이고, 효율적인 동작을 하기 위해서는 사용자 또는 응용프로그램이 직접 하드웨어에 접근하는 것을 막아야한다. 운영체제 내부에서는 컴퓨터가 CPU를 어떻게 사용하느냐에 따라 2가지 방식으로 컴퓨터를 제어한다. 하나는 CPU의 명령어를 마음대로 설정할 수 없게끔 만들어 놓은 모드가 있다. 이걸 유저 모드라고 한다. CPU를 직접 컨트롤 할 수 있는 커널 모드이다. 유저모드(User Mode): 사용자와 데이터를 왔다갔다할 수 있는 등의 작업을 한다. 은행원이 데스크에서 고객과 상담하는 것과 비슷하다. 커널모드(Kernel Mode): 운영체제 내부에서 실제로 하드웨어를 제어할 수 있다. 은행원이 뒤에서 작업을 하는 것과 비슷하다. 이렇게 두가지 모.. 2023. 4. 22.
운영체제(OS)란? 개념과 구조(커널, 시스템콜 등) 운영체제(Operating Systems, OS)란? 운영체제(OS)란 유저가 컴퓨터를 편하게 사용할 수 있게 모든 하드웨어 자원을 관리해주는 프로그램이다. 모든 하드웨어 자원을 관리? 그게 무슨 말일까? 하드웨어 자원에는 CPU, 메모리, I/O 디바이스 등이 있다. 묶어서 컴퓨터 자원(resource)이라고 한다. (하드웨어 관련 부가적이 설명이 더 필요하다면, 이글을 보면 된다.) 유저들은 구글이나 카카오톡같은 프로그램을 사용하거나, 키보를 입력하는 등의 작업을 할 때, 동작원리가 어떻게 되는지 알지 못해도, 프로그램이 알아서 연동되는 것처럼 이러한 것들을 OS가 다 관리를 해주는 것이다. 아이폰도 iOS가 있고, 아이패드OS, 맥OS, 윈도우, 리눅스 등 이러한 것들이 전부 운영체제라는 큰 틀안에.. 2023. 4. 18.
CPU란? 구조와 역할, 구성요소, 성능향상 방법 1. CPU란? CPU 구조와 역할 CPU란 Central Processing Unit의 약자로 중앙 처리 장치를 의미한다. 프로그램의 명령어를 해석하고 실행하는 역할을 하는 컴퓨터 시스템의 중심이 되는 핵심 요소이다. CPU는 어떻게 생겼을까? 컴퓨터 본체를 분리시켜보면, 메인보드라는 흔한 초록색 기판(색깔은 종류에 따라 다름)이 나온다. 그 기판에 네모난 모양의 부품이 CPU다. 컴퓨터 부품은 보통 크게 5가지로 나뉜다. CPU, 주기억장치(RAM), 보조기억장치(HDD/SSD), I/O디바이스(모니터, 마우스 등), 메인보드 이렇게 5가지이다. HDD/SSD에는 우리가 흔히사용하는 엑셀, 포토샵 등의 프로그램들이 저장되어있다. 비휘발성이고, 용량이 크다.(256GB 등) 프로그램을 실행시키면, 로딩.. 2023. 4. 14.
정수(signed, unsigned)와 부동 소수점 표현 in 컴퓨터 1. 정수의 부호 표현: signed, unsigned signed integers(정수): 양수, 음수, 0을 모두 표현할 수 있다. 첫 번째 비트는 부호 비트로, 0은 양수를, 1은 음수를 의미한다. unsigned integer(자연수 & 0): 양수와 0만 표현할 수 있다. 따라서, 모든 비트를 숫자의 표현에 사용한다. 정수가 signed인지 unsigned인지에 따라서 표현 가능한 숫자 범위가 다르기 때문에 주의해야 한다. 예시들어, 1바이트(=8비트)를 10진수의 unsinged로 표현하면, 0부터 255까지의 값를 표현할 수 있다. singed같은 경우에는 -128부터 +127까지의 값을 표현할 수 있다. 이걸 2진수로 표현하면 아래와 같다. signed integer 11111111: -1.. 2023. 4. 12.
컴퓨터 아키텍처란: 폰노이만 구조, 명령주기 목차 1. 컴퓨터 아키텍처(Computer Architecture)란? 2. 컴퓨터 시스템의 구성 요소(Components of a computer system) 3. 폰노이만 아키텍처(Von Neumann Architecture) 4. 명령주기(Instruction Cycle) 1. 컴퓨터 아키텍처(Computer Architecture)란? 아키텍처라는 말은 건축에서 유래됐으며, 뜻을 단순하게 풀이하면, 구조, 설계와 같은 의미를 가집니다. 즉, 컴퓨터 아키텍처란 컴퓨터를 구성하는 하드웨어와 소프트웨어를 포함한 컴퓨터 시스템 전체의 구조와 설계 모형을 의미합니다. 이는 하드웨어와 컴프트웨어의 상호작용에 대한 설계와 구현도 포함합니다. 컴퓨터 아키텍처는 시스템의 성능, 신뢰성, 에너지 효율성 등을 결정.. 2023. 4. 9.