컴퓨터 구조

mil nil·2022년 11월 7일
0

TIL (Today I Learned)

목록 보기
6/74

1.컴퓨터 구조와 운영체제 50분만에 핵심 개념 정복하기

Video Label
컴퓨터 구조와 운영체제 50분만에 핵심 개념 정복하기 (ft. 강민철 저자님)
출처:조코딩 JoCoding

컴퓨터 구조를 알아야하는 이유

  • 문제해결 능력
    컴퓨터를 관조(빨간색)할 수 있는 능력을 배양, 더 이상 컴퓨터가 미지의 대상이 아닌 분석의 대상으로 바라볼 수 있음
  • 성능, 용량, 비용
    클라우드 서비스를 이용하는 경우에는 성능 , 용량, 비용 고려는 필수!

컴퓨터가 이해하는 두 가지 정보: 데이터, 명령어

  • 데이터는 곧 명령어의 재료

컴퓨터의 네 가지 핵심 부품

  1. CPU
  • ALU: 산술논리장치: 계산기
  • 레지스터: CPU 내부의 작은 저장장치
  • 제어장치: 제어신호(빨간색)을 내보내고, 명령어를 해석하는 장치(전기신호)
  • 어떤 명령을 수행할지 제어장치가 대상과 위치 등을 명령
  1. 메모리
  • 메모리는 실행되는 프로그램의 명령어와 데이터를 저장한다.
  • 프로그램이 실행되려면 메모리에 저장되어 있어야 한다.
  • 메모리에 저장된 값의 위치는 주소로 알 수 있다.
  1. 보조기억장치
  • 전원이 꺼져도 보관할 대사을 저장하는 장치
  1. 입출력장치
  • 모니터, 키보드, 마우스 등

메인보드 & (시스템) 버스

  • 메인보드에 연결된 부품은 버스(빨간색)를 통해 정보를 주고 받음
  • 버스는 컴퓨터의 부품끼리 정보를 주고받는 일종의 통로(빨간색)
  • 시스템 버스: 주소 버스, 데이터 버스, 제어 버스
  • 컴퓨터의 핵심 부품을 연결하는 버스는 시스템 버스(빨간색)

운영체제


(시스템) 자원

  • 자원을 관리하는 특별한 프로그램(빨간색)
  • 실행 중인 프로그램(=프로세스)(빨간색)을 관리하는 특별한 프로그램(빨간색)
  • 메모리 중 커널 영역에 설치되어 있음
  • 그 외 프로그램은 사용자 영역에 설치되어 있음
  • 운영체제의 자원(메모리) 관리 (효율적인 배치 및 관리, 메모리를 초과하는 경우도 관리(페이징, 스와핑)
  • 무엇을 먼저 실행할지 순서 관리, 실행되는 정도 관리, 시스템 호출 등 = 프로세스 동기화!

따라서 운영체재는 곧 프로그램을 위한(빨간색) 프로그램이다

  • 오류 메시지에 대한 이해도도 올라갈 수 있다

Java 문법 뽀개기 1,2주차

camel case: 첫 글자는 무조건 소문자, 단어의 첫 글자마다 대문자

숫자형

short: 2byte로 표현 -65536 ~ +65536
int: 4byte -20억 ~ +20억
long: 그 이상 -900경 ~ +900경
float: 소수 표현(숫자 뒤에 F붙이기) 1.4E-45 ~ 3.4028235E38
double: 더 많은 소수 표현 4.9E-324 ~ 1.7976931348623157E308

각 타입 정보 별 최대 최소 구하는 방법

System.out.println(Short.MAX_VALUE);
System.out.println(Short.MIN_VALUE);

문자형

char: 문자 1개만 적을 수 있음
boolean: true or flase
byte: 해당 아스키코드 값으로 표현 (ex. d = 100)

참조 자료형

한글이 나오지 않는 경우!!
File > Settings > File Encodings >
Global Encodong: UTF-8, Project Encoding, Default encoding for properties files: UTP-8 변경

intellij 재식작 후

Grdle > buile > clean 진행 후 build

행 바꾸기: "\n"

비트연산자는 따로 공부

http://www.tcpschool.com/c/c_operator_bitwise
https://en.wikipedia.org/wiki/Bitwise_operation

조건문

switch: 조건에는 케이스 문자 하나 혹은 숫자만 가능

public class Main {
    public static void main(String[] args) {
        char score = 'G';
        switch(score) {
            case 'I':
                System.out.println("축하합니다! 아이언등급입니다.");
                break;
            case 'B':
                System.out.println("축하합니다! 브론즈등급입니다.");
                break;
            case 'S':
                System.out.println("축하합니다! 실버등급입니다.");
                break;
            case 'G':
                System.out.println("축하합니다! 골드등급입니다.");
                break;
            case 'P':
                System.out.println("축하합니다! 플래티넘등급입니다.");
        }
    }
}```

삼항연산자: 조건에 괄호()도 적용 가능

public class Main {
    public static void main(String[] args) {
        int a=10;
        String result = a < 10 ? "10 미만입니다." : "10 이상입니다.";
        System.out.println(result);
        }
    }
( a < 10 )

반복문 for each 예문

public class Main {
    public static void main(String[] args) {
        // write your code here
        String[] nums = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
        for (String num: nums) {
            System.out.println(num);
        }
    }
}

continue: 이 자리에서 종료하고 다시 반복문 실행

do-while 조건문

 do {
            ...
        } while ( 조건 )

객체지향언어

Class > instance

method: 반드시는 아니지만 동사로 시작하여 Camel Case 적용 in java.

생성자: 인스턴스 초기화 method. new 붙이고 class와 동일한 이름을 붙임, return 타입은 따로 붙이지 않음

Alt + insert = 자동으로 세팅해주는 기능

    public Phone(String model, String color, int price) {
        this.model = model;
        this.color = color;
        this.price = price;
    }
    //Alt + insert로 만들어진 생성자
public class Main {
    public static void main(String[] args) {
        Phone galaxy = new Phone("Galaxy10", "Black", 100);
    }  
}
    //new를 활용하여 인스턴스 호출

상속(inheritance)

class는 오로지 한가지 class만 상속 받을 수 있다.

Overloading
동일한 이름과 동일한 class 안에서 서로 다른 method가 작동하는 것

  1. 이름, 매개변수, 타입이 모두 동일할 경우 오버로딩 불가
  2. 매개변수의 개수 or 매개변수의 타입이 다를 경우 오버로딩 가능
    int add(int x, int y, int z) {
        return x+y+z;
    }
    int add(int a, int b, int c) {
        return a+b+c;
    }
    //Overlaodng example.

Overriding
부모 속성과 동일한 자식 속성을 부여하면 부모 속성을 무시하고 자식 속성으로 대체

static = on class.
void = no return.

profile
자바 배우는 사람

0개의 댓글