CS

    개발 기초 지식

    목차API (Application Programming Interface)클라우드 컴퓨팅서버 운영 방식클라우드 서비스 모델컨테이너와 도커CI/CD객체지향 프로그래밍 기초프로그래밍 핵심 개념소프트웨어 설계 패턴APIAPI(Application Programming Interface)는 소프트웨어 간의 통신을 위한 인터페이스입니다.주요 특징컴퓨터 간 통신을 위한 중계 계층 역할HTTP/HTTPS 프로토콜과 GET, POST 등의 메서드를 통한 통신 방식 정의서비스 구현 세부사항을 숨기고 필요한 기능만 노출프론트엔드와 백엔드 간의 효율적인 통신 지원API의 장점구현 세부사항 은닉명확한 인터페이스 제공유지보수 용이성재사용성 향상비즈니스 로직 변경 시 API 인터페이스 유지 가능클라우드 컴퓨팅가상화 기술가상화는 ..

    실수표현

    Bias 표현법 사용이유 : +,- 같은 부호가 존재하는 2의 보수법은 구조상 비교하기가 어렵다. 그렇기에 지수를 표현하는 부분에서 부호가 없이 통일된 수로 범위를 표현한다. 이러한 부호가 없이 통일된 수들로 만들기 위해 사용되는 것이 Bias 상수를 응용한 연산이고 이를 Bias 표현이라 한다. 정규화된 표현 부동 소수점 수는 지숫값에 따라 다양하게 나타낼 수 있는데, 그 표현의 통일된 형태를 정규화된 표현 이라고 한다. 정규화된 표현의 국제 표준 IEEE 754을 주로 사용한다. IEEE 754 에서는 127을 바이어스 값으로 사용 EX) -13.625를 IEEE 754 표현으로 나타내려면 1. 가수와 진수를 찾는다 : 13.625를 이진수로 표현하면 1101.101 이를 정규화 하면 1.101101..

    정수 표현

    컴퓨터는 2진수를 사용하여 정보를 표현한다. 일반적인 양수는 그냥 표현하면 되지만 그렇다면 음수는 어떻게 표현하는가 ? 부호가 있는 2진수를 표현하기 위해 여러가지 표현법이 필요하다. 1. 부호화 크기 표현 가장 단순한 방법으로 n비트의 2진수에서 최상위 비트(가장 왼쪽)은 부호 비트이고 나머지 n-1개의 비트는 수의 절대 크기를 나타낸다. 8비트로 124를 표현하는 경우 부호 비트(8번째 비트)는 0이 되고 나머지 7비트는 124에 해당하는 01111100으로 표현된다 -124의 경우에는 음수이므로 부호 비트는 1이 되고 나머지는 절대값인 124를 표현하기 때문에 11111100이 된다. 부호화-크기 표현은 간단하지만 부호 비트를 별도로 처리하므로 절대 크기를 나타내는 수의 범위가 줄어드는 것이 단점...

    정보의 표현 단위와 수 체계

    컴퓨터의 정보 표현 방법 -> 접압이 일정 기준 보다 높으면 1, 그렇지 않으면 0으로 변환 이러한 0과 1의 조합인 2진수를 이용하여 계산한다. 비트 : 2진수로 데이터를 표현하는 단위 바이트 : 정보를 표현하기 위한 비트의 집합으로 1바이트 = 8비트 -> ASCII코드의 경우 한 문자가 8비트로 이루어져 1바이트가 한 문자 수 체계 1. 10진법 : 숫자 표현에 있어 가장 광범위하게 사용되는 체계로, 0부터 9까지의 기호를 사용하여 모든 수를 표현한다. 기수(진법의 기반)가 10인 위치 기수 체계로, 각 자리가 10의 거듭제곱을 의미 2. 2진법 : 디지털 컴퓨터와 전자기기에서 광범위하게 사용되는 숫자 체계로, 기수가 2인 이 체계는 오직 두 개의 숫자, 0과 1만을 사용하여 모든 데이터를 표현 3..

    System Call

    시스템 호출은 프로그램과 운영 체제의 소통 방법이다. -> 사용자 프로그램이 어떠한 작업의 수행을 필요로 하는 경우 운영체제에게 명령의 대행을 요청하는 것. 시스템 호출이 필요한 이유 -> 우리가 일반적으로 사용하는 프로그램은 '응용 프로그램'이다. 이러한 유저레벨의 프로그램은 많은 기능들을 구현하기 힘들기 때문에 커널의 도움을 받아야 한다. 커널모드의 작업은 유저모드에서 수행할 수 없기 때문에 반드시 커널에 관련한 것은 커널모드로 전환한 후에 작업을 수행할 수 있다 권한이 필요한 이유 -> 권한이 없다면 해커가 악의적으로 시스템 콜을 사용할 수 있다. 또는 초보 사용자가 아무렇게 함수를 호출하여 시스템 전체를 망가뜨릴 수 있기 때문에 권한이 필요하다. 그렇기에 이러한 명령들은 커널모드에서만 실행할 수 ..

    시간복잡도와 공간복잡도

    시간복잡도 = 어떤 프로그램이 소요하는 시간을 나타내는 개념 (시간복잡도) TC = (컴파일 시간)c + (실행 시간) T(n) 통상적인 컴퓨팅 환경에서 공간복잡도가 시간복잡도에 비해 덜 중요하게 여겨지는 이유 -> 기술의 발전으로 메모리 환경이 좋아졌기 때문 BIg - O Notation -> 식을 단순화 하는 것 정의 : n ≥ n0인 모든 n에 대해 f(n) ≤ c · g(n)를 만족하는 양의 상수 c와 n0가 존재하면 f(n) = O(g(n)) 1. 가장 중요한 항 이외에는 시간복잡도에서 무시된다. f(n) = 1000n + 5000 -> 5000은 영향을 주지 못하므로 f(n) = O(1000n) 2. 상수 하나 곱한다고 시간복잡도에 영향을 미칠 수 없다. -> BIg - O Notation의 ..

    시간복잡도

    시간복잡도 = 어떤 프로그램이 소요하는 시간을 나타내는 개념 TC (시간복잡도) = c (컴파일 시간) + T(n) (실행 시간) (프로그램 차원에서 '실행 시간' 을 '컴파일 시간' 보다 고려해야 한다) BIg - O Notation -> 식을 단순화 하는 것 정의 : n ≥ n0인 모든 n에 대해 f(n) ≤ c · g(n)를 만족하는 양의 상수 c와 n0가 존재하면 f(n) = O(g(n)) 1. 가장 중요한 항 이외에는 시간복잡도에서 무시된다. f(n) = 1000n + 5000 -> 5000은 영향을 주지 못하므로 f(n) = O(1000n) 2. 상수 하나 곱한다고 시간복잡도에 영향을 미칠 수 없다. -> BIg - O Notation의 정의로부터, 상수항의 곱이 시간복잡도에 영향을 줄 수 없..