본문 바로가기

프로그래밍

(77)
컴퓨터 네트워크 1 컴퓨터 네트워크는 단말기(terminal)와 네트워크 기기로 구성된다 단말기 : 통신을 하는 주체를 지칭한다 단말기는 클라이언트와 서버로 구분한다 클라이언트 : 사람이 만지는 컴퓨터를 의미한다 서버 : 단말기에 서비스를 제공하는 무인 컴퓨터를 지칭한다 서버는 클라이언트에서 오는 데이터를 받아서 처리한 후 그 결과를 클라이언트에 회신하는 역할을 한다 가장 기본적인 네트워크 구성은 두 단말기를 직접 네트워크 케이블로 연결하는 것이다 로컬 지역 네트워크(Local Area Network, LAN) : 네트워크 스위치 하나를 사이에 두고 별 모양으로 단말기들이 연결되어 있는 것 이렇게 별 모양으로 되어 있는 것을 별 위상(Star Topology)이라고 한다 단말기 사이에는 네트워크 스위치가 있고 네트워크 스위..
멀티스레딩 프로그램(Program) : 컴퓨터에서 실행되는 명령어 모음이 들어 있는 데이터 덩어리, 코드와 데이터로 구성되어 있다. 프로세스(Process) : 프로그램 안에 들어 있는 명령어가 한줄씩 실행된다. 실행중인 프로그램 프로세스 메모리에는 코드와 데이터, 힙과 스택도 공존한다 스택에는 현재 실행 중인 함수들의 호출 기록과 사용 중인 로컬 변수들이 들어있다 멀티프로세싱(Multi-Processing) : 프로세스가 여러개 실행되고 있는 것 스레드 (Thread) : 명령어를 한 줄씩 실행하는 기본 단위 스레드와 프로세스의 차이 1. 스레드는 한 프로세스 안에 여러 개가 있다. 2. 한 프로세스 안에 있는 스레드는 프로세스 안에 있는 메모리 공간을 같이 사용할 수 있다. 3. 스레드마다 스택을 가진다. 즉,..
데이터베이스 기초 2 6. UPDATE 문 : 테이블의 기존 레코드를 수정하는데 사용한다 ex) UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; WHERE 절은 갱신해야하는 레코드를 지정한다. WHERE 절을 생략하면 테이블의 모든 레코드가 업데이트된다. 7. DELETE 문 : 테이블의 기존 레코드를 삭제하는데 사용한다 ex) DELETE FROM table_name WHERE condition; WHERE 절은 삭제될 레코드를 지정한다. WHERE절을 생략하면 테이블의 모든 레코드가 삭제된다. 8. SELECT TOP 절 : 리턴할 레코드 수를 지정하는데 사용된다. 수천개의 레코드가 있는 큰 테이블에서 유용하다. 많은 수의 레코드..
데이터베이스 기초 1 SELECT - 데이터를 추출한다 UPDATE - 데이터를 업데이트한다 DELETE - 데이터를 삭제한다 INSERT INTO - 새로운 데이터를 DB에 삽입한다 CREATE DATABASE - 새 DB를 만든다 ALTER DATABASE - DB를 수정한다 CEATE TABLE - 새 테이블을 만든다 ALTER TABLE - 테이블을 삭제한다 DROP TABLE - 테이블을 삭제한다 CREATE INDEX - 인덱스를 작성한다 DROP INDEX - 인덱스를 삭제한다 1. SELECT 문 : DB에서 데이터를 선택하는데 사용한다 리턴된 데이터를 결과 테이블에 저장된다 ex) SELECT column1, column2, ... FROM table_name; column1, column2, ...는 데이터..
메모리 단편화 메모리 단편화 (Memory Fragmentation) : RAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태 단편화가 생기는 이유 1. 내부 단편화(Internal Fragmentation) : 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비되는 상황 ex) 메모장을 켰는데 OS가 4kb를 할당해주었다. 그런데 사실 1kb만큼만 사용하고 있을 때 필요 이상으로 프로세스가 메모리를 할당받아서 3kb만큼 내부 단편화가 생긴다. 2. 외부 단편화(External Fragmentation) : 메모리가 할당되고 해제되는 작업이 반복될 때 작은 메모리가 중간중간 존재하게 되는데, 이 때 중간..
범프 매핑 (Bump Mapping) 노멀 매핑, 법선 매핑이라고도 부른다. 물체의 입체감이 있는 것처럼 보여주기 위해 각 픽셀마다 법선을 정의해주는 기법이다. 법선맵은 보통 접선공간이라고 부르는 Tangent Space에 저장한다. 노멀 텍스처에 저장되어 있는 법선 맵을 법선 벡터로 변환해서 사용한다. 법선벡터 XYZ = 법선맵RGB * 2 - 1 탄젠트 공간은 정점의 법선벡터(Z축)를 기준으로 해서 만든 좌표축을 얘기한다. 탄젠트 공간에서는 법선벡터, 즉 Normal이 Z축이 되고 텍스쳐의 UV 중 U나 V 중 하나를 가져와 X축으로 삼는다. 그리고 외적을 이용해서 세번째 축을 구하는데 이렇게 구한 축을 종법선(Binormal)이라고 한다. 법선맵이 항상 파란 이유 파란색이면 b 채널을 얘기한다. 이것은 법선의 z이고 z의 방향은 표면의..
객체지향 개발 5대 원리 : SOLID S 단일 책임의 원칙 (SRP, Single Responsibility Principle) : 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는데 집중되어야 한다는 원칙 O 개방폐쇄의 원칙 (OCP, Open Close Principle) : 소프트웨어의 구성요소는 확장에는 열려있고 변경에는 닫혀있어야 한다는 원칙 L 리스코프 치환의 원칙 (The Liskov Substitution Principle) : 서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다는 원칙 I 인터페이스 분리의 원칙 (Interface Segregation Principle) : 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙 D 의존성역전의 법칙 (D..
메모리 단편화 메모리 단편화 : RAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태 1. 내부 단편화(Internal Fragmentation) : 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비되는 상황 2. 외부 단편화(External Fragmentation) : 메모리가 할당되고 해제되는 작업이 반복될 때 작은 메모리가 중간중간 존재하게 되는데, 이 때 중간중간에 생긴 사용하지 않는 메모리가 많이 존재해서 총 메모리 공간은 충분하지만 실제로 할당할 수 없는 상황이다. 메모리 단편화 해결 방법 1. 페이징 기법 : 가상 메모리를 같은 크기의 블록으로 나눈 것. 연속적이지 않은 공간도 활용할 수..