개발 저장소

프로세스와 스레드
1. 프로세스 : 실행중인 프로그램 2. 스레드 : 프로세스 내 작업의 흐름 3. 프로세스와 컴파일 과정 전처리 : 소스코드의 주석을 제거 #include 등 헤더 파일을 병합하여 매크로를 치환 컴파일러 : 오류처리, 코드 최적화작업을 하며 어셈블리어로 변환한다. 어셈블러 : 어셈블리어를 기계어 형태의 오브젝트 코드로 해석해 주는 컴퓨터 언어 번역 프로그램. 기본 컴퓨터 명령어들을 컴퓨터 프로세서가 기본 연산을 수행하는데 사용할 수 있는 비트 패턴으로 변환 링커 : 프로그램 내에 있는 라이브러리 함수 또는 다른 파일들과 목적코드를 결합해 실행파일을 만듬 정적 라이브러리 : 프로그램 빌드 시 라이브러리가 제공하는 모든 코드를 실행 파일에 넣는 방식. 외부의존도 낮고, 메모리 효율성이 떨어짐. 동적 라이브러..

메모리
1. 메모리 계층 레지스터 CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억용량이 작다. 캐시 L1,L2캐시를 지칭. 휘발성, 속도 빠름, 기억용량 적음.L3캐시도 존재 * 데이터를 미리 복사해 놓는 임시저장소, 빠른장치와 느린장치 사이에서 속도차이에 따른 병목현상을 줄이기 위한 메모리 주기억장치 RAM을 의미. 휘발성,속도, 기억용량 보통 보조기억장치 HDD,SDD를 의미, 휘발성,속도 낮음, 기억용량 많음 * 캐싱계층 : 계층과 계층사이의 속도차이를 해결하기 위한 계층 * 캐시히트 : 원하는 데이터를 찾음(cpu내부 버스기반작동으로 빠름) * 캐시미스 : 해당 데이터가 캐시에 없으면 메모리에서 데이터를 탐색(시스템버스 기반작동으로 느림) * 캐시매핑 : 캐시가 히트되기 위해 매핑하는 방법..
운영체제, 컴퓨터의 개념 및 구조
1. 운영체제 개념 사용자가 컴퓨터를 쉽게 다룰 수 있도록 돕는 인터페이스. 한정된 메모리 또는 시스템자원을 효율적으로 분배 2. 운영체제의 역할 CPU 스케쥴링과 프로세스 관리 메모리 관리(어떤 프로세스에 메모리를 얼만큼 할당할지) 디스크 파일 관리 I/O 디바이스 관리(입출력장치와 컴퓨터 간에 데이터관리) 3. 운영체제의 구조 유저프로그램 사용자 및 기타 시스템 프로그램 GUI GUI, CUI 등 시스템콜 - 운영체제가 커널에 접근하기 위한 인터페이스(추상화계층) - 유저모드 -> 커널모드(파일 읽기) -> 유저모드(프로그램 로직 수행) 이 과정을 통해 컴퓨터 자원에 대한 직접 접근을 차단, 타 프로그램으로부터 보호 - modebit을 참고해 유저,커널모드 구분(1또는0의 값을 가지는 플래그변수) 커..
백준 2438번 220914
https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 import java.util.Scanner; public class Main2438 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.close(); for(int i=1; i
HTTP
1. HTTP/1.0 한 연결당 하나의 요청을 처리하도록 설계 RTT 증가(RTT : 패킷 왕복시간) 이미지 스플리팅, 코드압축, 이미지 Base64 인코딩을 통해 해결 이미지 스플리팅 많은 이미지가 합쳐있는 하나의 이미지 다운로드 후 이를 기반으로 background-image의 position을 이용해 이미지를 표기( 많은 이미지 다운로드시 과부하가 발생) 코드 압축 개행문자, 빈칸을 없애 코드크기를 최소화 이미지 Base64 인코딩 이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법(37%정도 크기가 더 커진다.) * 인코딩 : 정보의 형태나 형식을 표준화, 보안, 처리속도 향상, 저장공간 절약등을 위해 다른 형태나 형식으로 변환 2. HTTP/1.1 HTTP/1.0과는 달리 매번 TCP연..