git flow의 실제 사용
platanus |

git을 잘 쓰기 위한 브랜치 사용법 main이나 develop등 공용 브랜치에 커밋을 하지 않는다 → feature 브랜치로 따로 따서 작업한다. git checkout -b "feature/NUM" 공용 브랜치를 자주자주 pull 받아 브랜치를 최신으로 유지한다 (예를들어 develop) 공용 브랜치는 upstream으로 지정한다 git remote add upstream [URL] git pull upstream [공용브랜치] git push origin [공용브랜치] git의 커밋 흐름은 파일 단위가... » read more

GitHub Actions 으로 간단한 CD 구성하기
platanus |

GitHub Actions CI/CD 기본적으로 github action에서 호스트로 push하는 방식이다. GitHub Actions workflow ${{ secrets.HOST }}를 비롯한 나머지 4개의 환경변수는 Setting - secrets 에서 등록한다. 주요내용은 main 브랜치에서 push가 일어나면 github의 ubuntu 인스턴스에서 ssh를 통해 원격지의 deploy.sh를 실행시킨다는 내용이다. deploy.sh 내용 (20210920 업데이트) 이 스크립트가 하는 내용은 다음과 같다 저장소에서 코드 가져오기 Maven 빌드하기 (package로 jar파일... » read more

OS; Virtual Memory
platanus |

가상 메모리 가상 메모리라는 것은 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법이다. 이 기법의 주요 장점중 하나는 사용자 프로그램이 물리 메모리 보다 커져도 된다는 점이다. 배경 많은 경우에 프로그램 전체가 한꺼번에 메모리에 늘 올라와있어야 하는것은 아니다 아래의 예시가 있다. 프로그램에는 잘 발생하지 않는 오류 상황을 처리하는 코드가 종종 존재한다. 이러한 오류들은 거의... » read more

OS; Memory
platanus |

메모리 관리 프로세스에게 메모리를 할당하는 방법 컴퓨터 시스템에서 페이징의 동작 방법 배경 메모리는 각각 주소가 할당된 이련의 바이트들로 구성된다. CPU는 프로그램 카운터가 지시하는 대로 메모리로부터 다음 명령어를 가져온다. 명령어는 필요한 경우 추가적인 데이터를 더 가지고 올수도 있고 내보낼 수도 있다. 기본 하드웨어 메인 메모리와 프로세서 자체에 내장되어 있는 레지스터들은 CPU가 직접 접근할 수 있는 유일한... » read more

OS; CPU Scheduling
platanus |

CPU 스케줄링 스레드를 지원하는 운영체제에서는 실질적으로 운영체제는 프로세스가 아니라 커널 수준 스레드를 스케줄 한다. 프로세스 스케줄링과 스레드 스키줄링은 상호교환적으로 사용된다. 일반적인 스케줄링 개념을 논의하는 경우 프로세스 스케줄링을 사용하고 스레드에 국한된 개념을 가리키는 경우 스레드 스케줄링이라는 용어를 사용한다. 기본 개념 단일 프로세서 시스템에서는 한 순간에 오직 하나의 프로세스만이 실행할 수 있다. 다중 프로그래밍의 목적은 CPU 이용률을... » read more

OS; Process synchronization
platanus |

프로세스 동기화 협동 프로세스는 시스탬 내에서 실행중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스다. 협동 프로세스에서 데이터 공유는 동시접근에 의한 데이터의 비 일관성을 낳을 수 있다. 협동 프로세스의 질서있는 실행을 보장하며, 이를 통해 데이터의 일관성을 유지하는 기법을 알아보자. 배경 프로세스는 동시 또는 병렬로 실행될 수 있다. CPU 스케줄러가 프로세스 사이에서 빠르게 오가며 각 프로세스를... » read more

OS; Thread
platanus |

스레드 스레드는 CPU이용의 기본 단위다. 스레드는 다음으로 구성된다 스레드ID 프로그램 카운터 레지스터 집합 스택 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션 그리고 열린 파일이나 시그널과 같은 운영체제 자원들을 공유한다. Motivation 어플리케이션은 멀티 코어를 사용하여 다수의 CPU집중 작업을 병렬로 처리할 수 있다 프로세스와 스레드가 하나인 시스템에서는 여러개의 동시 요청에 하나씩 처리할 수 밖에 없다.... » read more

OS; Process
platanus |

프로세스 초기의 컴퓨터 시스템은 한번의 하나의 프로그램만 실행하도록 허용했다. 오늘날 컴퓨터는 메모리에 다수의 프로그램들이 적재되어 병행 실행되는 것을 허용한다. 제어와 구획화의 필요성에 따라 프로세스의 개념이 생겼다. 프로세스란 실행중인 프로그램이다. 프로세스 개념 CPU활동을 지칭하는 이름 일괄처리 시스템 : Job 시분할 시스템 : 사용자 프로그램, Task 이러한 명칭들이 있지만 모두 프로세스라고 부른다. 프로세스 프로세스는 텍스트 섹션으로 알려진... » read more

OS; 운영체제 구조
platanus |

운영체제 구조 운영체제는 프로그래밍이 실행되는 환경을 제공해 준다. 운영체제를 살펴보는 몇가지 관점이 있다. 첫번째는 운영체제가 제공하는 서비스에 초점을 맞추는 것 두번째는 운영체제가 사용자 및 프로그래머에게 제공하는 인터페이스에 초점을 맞추는 것 세번째는 시스템의 구성요소와 그들의 상호연겨에 초점을 맞추는 것 운영체제 서비스 User Interface : 거의 모든 운영체제는 UI를 제공한다. CLI와 GUI가 있다. Program execution : 시스템은... » read more

OS; 운영체제 서론
platanus |

커리큘럼이 짬뽕식이긴 한데 하다보니 운영체제를 공부하게 됐다. 프로세스 생명주기나 메모리 관리에 대한 내용을 보다보니 지나칠 수가 없었다. 처음엔 Operating System Concepts 책을 보려고 했으나 시간적인 문제도 있고 개론적으로 내용을 알고 있기 때문에 Operating System Concepts Essentials로 진행하기로 했다. 너무 많은 내용을 담지 않겠다. 운영체제가 할 일 컴퓨터 시스템은 대게 하드웨어, 운영체제, 응용프로그램, 사용자 네가지 구성요소로... » read more