일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 백준 10000번
- 큐(Queue)
- 백준 17608번
- 백준 2812번
- 그래프(Graph)
- 분할 정복(Divide and Conquer)
- 백준 2504번
- 위상 정렬(Topological Sort)
- DFS
- 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)
- 백준 21606번
- 위상 정렬(Topology Sort)
- 그리디 알고리즘(Greedy Algorithm)
- 백준 1948번
- 스택(Stack)
- BFS(Breadth First Search)
- 백준 2261번
- 백준 9012번
- 이분 탐색(Binary Search)
- DFS & BFS
- 알고리즘 개념
- 백준 18352번
- DFS(Depth First Search)
- 이분 그래프(Bipartite Graph)
- 다익스트라 알고리즘(Dijkstra Algorithm)
- 트리(Tree)
- 동적 프로그래밍(Dynamic Programming)
- BFS
- 백준 1707번
- 백준 2493번
- Today
- Total
목록기술 관련 정리 (28)
Always Be Wise
메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(Load)되어야 합니다. 따라서 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있습니다. 프로그램이 운영체제로부터 할당 받는 대표적인 메모리 공간은 아래 4가지 입니다. 코드(Code)명령어를 하나씩 가져가서 처리하게 됩니다. 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부릅니다. 프로세서는 코드 영역에 저장된 데이터(Data)프로그램이 종료되면 소멸합니다. 프로그램의 전역 변수와 정적 변수가 저장되는 영역입니다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 스택(Stack)할당되며, 함수의 호출이 완료되면 소멸합니다. 함수의 호출과 관련이 있는 지역 변수와 매개 변수가 저장되는 영역입니다. 스..

프로세스(Process)란? 프로세스(Process)는 메인 메모리에 로드되어 실행 중인 특정 프로그램의 인스턴스를 의미합니다. 프로세스는 시스템으로부터 **공간적 자원(메모리 공간)**과 **시간적 자원(CPU 시간)**을 일정량 할당받아서 특정 작업을 수행합니다. 운영체제는 각 프로세스에게 할당된 시스템 자원들을 관리하는 역할을 수행한다. 각 프로세스는 서로 겹치지 않는 독립된 메모리 공간(Code, Data, Heap, Stack 영역)을 할당 받습니다. 가상 메모리 시스템에 의해 하나의 프로세스는 다른 프로세스의 메모리 공간에 접근할 수 없도록 제한됩니다. 다른 프로세스 자원에 접근하려면 IPC(Inter-Process Communication, 프로세스 간 통신)를 이용해야 합니다. 기본적으로 ..
시스템 콜(System Call)이란? 시스템 콜은 운영체제에 의해 제공되는 인터페이스로서, 응용 프로그램은 시스템의 어떤 기능이나 자원을 사용하기 위해 시스템 콜을 요청해야 합니다. 시스템 콜을 이해하기 위해서는 모드 비트(Mode Bit)라는 하드웨어를 알고 있어야 합니다. 모드 비트는 사용자 모드(User Mode)와 커널 모드(Kernel Mode)를 제공하는 하드웨어입니다. 사용자 모드에서 응용 프로그램이 할 수 있는 일은 제한됩니다. 반면, 커널 모드에서는 특수한 명령어를 포함하여 사용자 모드에서 할 수 없었던 일들을 수행할 수 있습니다. 예를 들어, 파일을 읽고 쓰는 것은 프로세스가 사용자 모드에서 자유롭게 진행할 수 없습니다. 하지만 사용자 모드에서 커널 모드로 전환되어 특권 수준이 상향된..
세마포어(Semaphore)는 멀티 프로그래밍 환경에서 공유 자원에 대한 접근을 제어하기 위한 방법 중 하나로, 대표적인 프로세스(스레드) 동기화 기법이다. 이때, 공유 자원은 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다. 공유 자원은 공동으로 이용되기 때문에 누가 언제 데이터를 읽거나 쓰느냐에 따라 그 결과가 달라질 수 있다. 따라서 프로세스들은 공유 자원 접근 순서를 정하여 예상치 못한 문제가 발생하지 않도록 해야 한다. 이를 조금 더 자세히 설명하자면 두 개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황을 경쟁 조건(Race Condition)이 발생했다고 합니다. 경쟁 조건이 발생하면 공유 자원 접근 순서에 따라 실행 결과가 달라질 수 있다. 공유 자원 접근 순..

JPG와 PNG의 가장 큰 차이점은 각각 사용하는 압축 알고리즘이 다르다는 점이다. JPG는 손실 압축 알고리즘(lossy compression algorithm)을 사용한다. 파일 크기를 줄이기 위해 이미지 정보 중 일부를 버린다. 반면, PNG는 무손실 압축 알고리즘(Lossless compression algorithm)을 사용한다. 이로 인해 나타나는 차이점은 파일의 용량 및 화질이다. JPG는 PNG에 비해 더 작은 파일 크기를 가질 수 있으나 그만큼 화질에서 손해를 본다. 따라서 용량이 중요할 때는 JPG를, 용량보다 품질이 중요할 경우에는 PNG를 사용하는 것이 좋다. 추가로, 투명 배경이 필요할 경우에도 PNG를 사용한다. JPG 손실 압축 알고리즘 JPG는 픽셀 기반 이미지이며, 하나의 ..
CRDT(Conflict-Free-Replicated Data Types)와 OT(Operational Transformation)는 모두 동시 편집과 관련이 있는 기술이다. OT(Operational Transformation) OT는 2006년 정도까지 사용되었던 기술로, 두 명의 사용자가 어떤 문장을 동시에 편집한다고 하였을 때, 각 사용자는 오퍼레이션을 서버에 보내고 서버가 이를 받아서 통합한다. 만약, 오퍼레이션이 이전 동작에 의해 바뀌어야 한다면 다음 오퍼레이션을 변환(Transform)한다. OT는 사용자가 서버에 오퍼레이션을 전송하면 다른 사용자들과 직접적으로 연동할 방법이 없다. 변환 주체인 서버가 반드시 필요하다. 즉, 중앙 집중식 서버/데이터베이스 구조로 사용자가 많아질 경우 과부하가..

Origin의 의미 CORS에서의 Origin(출처)는 URL에서 프로토콜, 도메인, 포트 번호를 합친 부분을 의미한다. 동일 출처 정책(SOP)이란? SOP(Single Origin Policy, 동일 출처 정책)은 다른 Origin으로 요청을 보낼 수 없도록 금지하는 브라우저의 기본적인 보안 정책이다. 즉, 동일한 Origin으로만 요청을 보낼 수 있게 하는 정책이다. 만약 SOP가 없어서 자유롭게 다른 Origin으로 요청을 보낸다면 어떻게 될까? 아래와 같은 CSRF(Cross Site Request Forgery) 공격 상황을 가정해보자. 악의적인 마음을 품은 해커가 웹 사이트를 구축하였다. 해커는 해당 웹 사이트와 연결된 링크를 사용자들에게 보낸다. 사용자는A라는 웹 사이트에 로그인되어 있고..

CI(Continuous Integration) 지속적인 통합이란 애플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 통합되는 것을 의미한다. CD(Continuouse Delivery, Deployment) 지속적인 통합을 통해 빌드 및 테스트가 완료된 애플리케이션을 개발자가 수동으로 혹은 자동으로 배포하는 것을 의미한다. 애플리케이션 변경 사항에 대해 개발자가 직접 검증을 진행하고 수동적으로 배포하는 것을 지속적인 서비스 제공(Continuous Delivery), 자동으로 검증을 진행하고 검증이 완료되면 자동적으로 배포하는 것을 지속적인 배포(Continuous Deployment)라고 한다. CI / CD 가 필요한 이유 최근 시장과 고객의 요구에 빠르게 반응해서 애플리케이션을 ..