GitHub에 Repository생성
·
Git & GitHub
GitHub에서 새 레포시토리 만들기 GitHub 메인 페이지에서 왼쪽 상단 Top repositories 옆에있는 New를 클릭위에서 부터 순서대로 입력한다.Repository name에는 원하는 저장소 이름을 입력한다.Description에는 저장소에 대한 설명인데 안적어도 상관 없지만 설명을 적으면 장점은 나중에 정보들이 등록이 될 때 편하다.저장소를 공개하는거와 비공개 하는게 있다. 이것또한 선택사항이다.(Public 모든사용자가 볼 수 있음, Private 나를 포함 지정된 사용자만 볼 수 있음)readme 파일을 만드는건데 이건 나중에도 할 수 있다. 이것또한 선택사항이다.위에 내용을 다 입력 했으면 저장소 만들기(Create repository)를 클릭한다.저장소를 만들면 저장소 주소록이 나..
Git으로 이전 커밋 복원 & 브랜치 관리하기
·
Git & GitHub
reset으로 이전 커밋 돌아가기# log 정보 확인 후 커밋 해시 확인 및 복사git log# 복사한 커밋 해시를 이용해 reset 명령어와 원하는 옵션을 사용합니다. git reset --hard [커밋 해시]git reset --soft [커밋 해시]git reset --mixed [커밋 해시]# 다시 한번 log를 활용해 정상적으로 reset이 되었는지 확인git log --hard이전 commi으로 되돌린 후 그 이후 이력들을 모두 삭제--soft이전 commit으로 되돌린후 그 이후 이력들의 내용이 삭제되지 않고 stage에 올라가있어 언제든지 commit을 진행할 수 있는 상태가 됨--mixed (기본)이전 commit으로 되돌린후 그 이후 이력들의 내용이 삭제되지 않았지만 다시 commit..
Git으로 효율적인 버전 관리
·
Git & GitHub
프로젝트를 개발하다 보면 코드 변경 이력을 관리하고 여러 사람과 협업하기 위해 버전 관리 시스템이 필수이다. 그중에서도 Git은 분산 버전 관리 시스템(DVCS)의 대표 주자로 서버뿐 아니라 각 클라이언트(로컬)에도 완전한 저장소를 복제해 두기 때문에 안정성과 유연성이 뛰어나다. Git 과 DVCS란?Git작업을 완료할 때마다 스냅샷(커밋)을 남겨 원하는 시점으로 이동·복원할 수 있는 분산 버전 관리 시스템DVCS중앙 서버뿐 아니라 각 클라이언트에 이력 전체를 보관하여 서버 장애시 로컬 저장소로 복구 가능특정 시점으로 돌아가거나 원하는 저장소에서 작업 재개 가능여러 원격 저장소를 등록해 다양한 협업 플로우 가용사능 (대표 도구: Git, Mercurial, Bazaar, Darcs 등)Git 기본 설정설..
Git 설치 및 설정
·
Git & GitHub
Mac 환경에서 Git 설치Homebrew로 설치:터미널을 연다.Homebrew가 설치가 되어있지 않다면 https://brew.sh/ko/에서 명령어를 복사해 터미널에 붙여넣고 실행하여 Homebrew를 설치한다.아래 Git을 설치하는 명령어를 입력한다.brew install gitGit 설치 확인 방법터미널에다 아래 명령어를 입력하고 실행하면 Git의 버전이 정상적으로 출력이 될것이다.git --versionGit 설정터미널에다 아래 명령어를 순서대로 입력하면 된다.# 아래 명령어로 사용자 이름을 설정한다.git config --global user.name "당신의 이름"# 아래 명령어로 이메일을 설정한다.git config --global user.email "당신의 이메일 주소"# 설정이 잘 되..
Protocol이란?
·
컴퓨터 과학
컴퓨터나 네트워크 장치들 간에 데이터를 주고받을 때 따라야 하는 규칙, 절차, 약속의 집합을 의미한다. 쉽게 말해서 서로 다른 시스템들이 원할하게 소통할 수 있도록 미리 정해진 통신규약(규칙)이다.프로토콜이 왜 필요한가?인터넷이나 로컬 네트워크 같은 다양한 통신 환경에서는 여러 가지 장치와 소프트웨어가 서로 데이터를 교환한다. 그런데 이들이 서로 다른 방식이나 형식으로 데이터를 다루면 문제가 생기기 마련이다.프로토콜은 이러한 다양한 환경에서도 모든 장치가 동일한 “언어”를 사용하게 하여 데이터가 올바르게 전달되고 해석될 수 있도록 보장한다.프로토콜의 주요 역할데이터 형식 정의데이터를 어떤 형식으로 나누고 어떤 순서로 보내야 하는지를 정한다.통신 절차 규정통신을 시작하고 데이터를 주고 받으며 종료하는 과정..
파일과 디렉터리의 이해
·
컴퓨터 과학
컴퓨터 시스템의 기본 요소인 파일과 디렉터리는 우리가 매일 사용하는 디지털 환경의 핵심 구성 요소다.파일(File)이란?파일은 컴퓨터에 저장된 데이터의 집합체다. 텍스트 문서, 이미지, 음악, 비디오, 프로그램 등 다양한 형태로 존재하며 각각은 고유한 이름과 확장자를 가진다.파일의 주요 특성:이름과 확장자: 파일은 이름과 확장자(예: document.txt, image.jpg)로 구성된다. 확장자는 파일의 유형을 나타낸다.크기: 파일은 바이트(byte) 단위로 측정되는 크기를 가진다.생성 및 수정 날짜: 모든 파일은 생성된 시간과 마지막으로 수정된 시간 정보를 포함한다.속성: 읽기 전용, 숨김, 시스템 등의 속성을 가질 수 있다.파일 형식:텍스트 파일: 단순한 텍스트 정보만 포함 (.txt, .md 등)..
메모리와 페이지 교체 이해하기
·
컴퓨터 과학
현대 컴퓨터 시스템에서 메모리는 프로그램과 데이터를 임시로 저장하여 프로세서가 빠르게 액세스할 수 있도록 하는 핵심 자원이다. 하지만 물리적 메모리(RAM)는 한정되어 있기 때문에 운영체제는 가상 메모리라는 개념을 도입하여 보다 효율적으로 메모리를 관리하고자 한다.메모리의 이해메모리의 역할임시 저장소컴퓨터 내에서 프로그램 실행 중에 필요한 데이터와 명령어를 저장속도와 접근성프로세서가 빠르게 데이터에 접근할 수 있게 하여 전반적인 시스템 성능업RAM (Random Access Memory)일반적으로 휘발성이며 전원이 꺼지면 저장된 정보가 사라짐메모리 구조 및 한계물리적 메모리실제 설치된 RAM의 용량에 따라 시스템의 성능이 결정된다.한계모든 프로그램이 동시에 실행될 때 물리적 메모리의 용량 부족 문제가 발..
현대 컴퓨터 시스템의 자원 관리 및 데드락 해결 전략
·
컴퓨터 과학
현대 컴퓨터 시스템은 여러 프로세스와 스레드가 동시에 실행되며 효율적으로 자원을 관리해야 한다. 운영체제는 이러한 복잡한 환경에서 스케줄링 알고리즘을 통해 프로세스의 실행 순서를 결정하고 프로세서 간 통신 및 동기화 메커니즘을 활용하여 프로세스들 간의 협업을 조율한다. 하지만 이 과정에서 데드락과 같은 심각한 문제가 발생할 수 있다.스케줄링 알고리즘개념 및 필요성스케줄링 알고리즘은 CPU와 같은 주요 자원을 여러 프로세스나 스레드에게 효율적으로 배분하는 기법이다.주요 목적은응답 시간 최소화: 사용자 및 시스템의 빠른 반응 보장공정성 보장: 자원 배분의 공평성 유지자원 활용 극대화: 시스템 성능 및 처리량 향상주요 스케줄링 기법선점형 스케줄링 (Preemptive Scheduling):실행 중인 프로세스를..
프로세스와 관련된 개념 정리
·
컴퓨터 과학
프로세스(Process)실행되고 있지 않은 프로그램은 그저 하드디스크와 같은 보조기억장치에 저장된 데이터 덩어리에 불과하다. 그러나 프로그램을 실행하는 순간 해당 프로그램은 메인 메모리에 올라가고 CPU 입출력 장치 등 다양한 시스템 자원을 사용하는 프로세스가 된다.즉 프로세스란 "실행 중인 프로그램"을 의미하며 실행 상태에서 각종 리소스를 점유하고 활동하는 객체를 말한다.프로세스 생성(Process Creation)프로세스 생성은 보조기억장치에 있는 프로그램을 메인 메모리로 불러와 실행 가능한 상태로 만드는 과정이다.로드 및 초기화:프로그램의 실행 파일을 메인 메모리에 로드하면서 코드, 데이터, 스택, 힙 영역이 할당된다.프로세스 제어 블록(PCB)의 생성:운영체제는 새 프로세스를 식별하고 관리하기 위..
도커(Docker)와 가상머신(VM)의 차이점 그리고 컨테이너란?
·
기타
개발을 하다 보면 "도커"나 "가상머신" 같은 용어를 자주 듣게 된다.처음엔 헷갈릴 수 있지만 개념을 이해하고 나면 아주 유용하게 활용할 수 있다.컨테이너란?컨테이너는 애플리케이션과 그 실행에 필요한 모든 것을 하나로 묶은 실행 단위이다.필요한 라이브러리, 설정, 의존성 등을 모두 포함해서 어디서 실행하든 항상 같은 환경을 보장한다.📦 컨테이너 = 앱 + 필요한 실행 환경 → "상자에 담아서" 어디서든 동일하게 실행!왜 사용할까?환경 차이를 없애기 위해→ 내 컴퓨터에서 잘 되던 코드가 서버에선 안 되는 문제 방지빠른 배포와 실행→ 가볍고 부팅이 필요 없어 즉시 실행 가능이식성과 확장성→ 클라우드든 다른 컴퓨터든 문제없이 실행됨🐳 도커(Docker)란?도커는 위에서 말한 컨테이너를 만들고 실행하는 도구..