본문 바로가기

전체 글

(44)
[패캠/JAVA] 자바 기초(1) 자바 소개~자료형 자바 특징 플랫폼에 영향을 받지 않는다. 객체 지향 언어이다. -> 유지보수가 쉽고 확장성이 좋다 프로그램이 안정적이다. 오픈 소스이다. 객체 지향 프로그래밍이란? 프로그램의 구현을 객체간의 관계과 협력을 기반으로 프로그램 하는것. 클래스 단위로 프로그래밍을 하는 것 메인 클래스 만들기(시작 클래스) main 메서드 가지고 있는 클래스 하나만 존재한다 이것 부터 프로그램이 시작한다 사용언어: Java, C++, C#, Python, Js 등등 장점: 재사용성, 코드관리 용이 -> 유지보수, 신뢰성 높음 JDK(Java Development Kit) : 자바에서 제공되는 개발용 라이브러리. 계속 버젼이 올라가고 있음 JRE(Java Runtime Environment) : 자바 프로그램이 실행되는 환경. ..
[패캠 / Git] Git / Github Git : 버전 관리를 위한 도구 =변경 내역 기억, 필요시 작업 되돌리기, 협업시 코드를 쉽게 나누고 합치며 개발 할 수 있게 해주는 도구 버전: 유의미한 변화가 결과물로 나온 것(없던 기능 추가 / 있던 기능 삭제 / 버그 수정) 필요없는 파일들: https://www.toptal.com/developers/gitignore/ 에서 확인 Github : 원격 저장소 호스팅 서비스 원격 저장소: 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소 로컬 저장소: 내컴퓨터 안에 있는 저장소 "작업한 내용을 스테이지에 올려서 로컬 저장소에 커밋하고, 이를 푸시해서 원격 저장소로 보낸다" git bash 초기 설정 git config --global user.name "이름" g..
[패캠 / Git] Git CLI 경로 ( = 식별 정보) 절대경로: 루트 디렉터리로 부터 현재까지의 경로 상대경로: 현재 디렉터리를 기준으로 . : 현재 디렉터리 .. : 상위 디렉터리 ~ : 홈 디렉터리 명령어 ls: 현재 경로의 파일 및 폴더 조회 ls -al : 현재 경로의 숨김 파일 및 폴더까지 목록으로 조회 cd : 로 이동 cd .. : 상위 디렉터리로 이동 touch : 파일명 이름으로 비어 있는 파일 생성 cat : 의 내용 확인하기 vi : 편집하기/ 만약 파일명의 파일이 없다면 새로운 파일 생성됨rm : 삭제하기mkdir : 디렉터리 생성rmdir : 비어있는 디렉터리 삭제rm -rf : 비어잇지 않은 디렉터리 삭제
[패캠 / Git] Git 전략 Git branch 전략의 목적 코드 관리 효율성 > 코드 충돌 최소화 작업 독립성 > 개발 속도 향상 안정성 유지 코드 리뷰 및 품질 관리 배포 및 롤백의 용이성 전략 선택 기준 프로젝트 규모 개발 팀의 구성 개발 및 배포 주기 전략 3가지 1. Feature Branch 각 기능별로 독립적인 브랜치 생성하여 작업 브랜치 생성: 'feature/기능명' 형식 -> 작업 진행 -> 기준 브랜치로 병합하기 전에 원격 저장소에 feature 브랜치로 push -> 기준 브랜치에 feature 브랜치를 머지 2. Github Flow 빠른 개발 주기, 지속적인 배포에 초점 브랜치 생성: 작업내용을 설명하는 명칭의 형식 -> 작업 진행 -> 원격 저장소에 push -> github에서 Pull request 생..
[운영체제]7장 물리 메모리 관리 책 "쉽게 배우는 운영체제"를 참고하여 쓴 글입니다 메모리 관리의 개요 메모리 이해하기 메모리: 폰노이만 구조에서의 유일한 작업 공간 주소: 1B로 나뉜 각 영역, 데이터를 가져오거나 작업 결과를 메모리에 저장하기 위해 사용 캐시: CPU와 메모리의 속도 차이 극복 위해 CPU안에 캐시를 만들어두고 메모리의 일정부분을 미리 가져와(prefetch) 작업 메모리 관리의 이중성 메모리 관리 시스템(MMS): 메모리 관리 담당 메모리 관리의 이중성 프로세스 입장: 메모리 독차지 메모리 관리자 입장: 관리를 효율적으로 소스코드의 번역과 실행 소스코드의 번역 방식: 프로그램은 프로그래밍 언어로 만들고 프로그램은 컴파일러를 사용하여 실행 가능한 코드로 변경 저급언어: 기계어, 어셈블리어 고급언어: C언어, 자바 언..
[운영체제]6장 교착 상태 책 "쉽게 배우는 운영체제"를 참고하여 쓴 글입니다 교착 상태의 개요 교착 상태의 정의 교착 상태: 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태, 여러 프로세스가 작업을 진행하다가 자연적으로 일어나는 문제 아사 현상: 운영체제가 잘못된 정책을 사용하여 특정 프로세스의 작업이 지연 교착 상태의 발생 시스템 자원 다른 프로세스와 공유할 수 없는 자원을 사용할 때 교착 상태 발생 공유 변수 공유 변수를 사용할때 교착 상태 발생 한 변수를 할당받은 상태에서 다른 변수를 기다리면 교착 상태 발생 응용 프로그램 데이터베이스는 데이터의 일관성을 유지하기 위해 잠금을 사용, 이때 교착 상태 발생 가능 자원 할당 그래프 프로세스가 어떤 자원을 사용 중이고 어떤 자..
[운영체제]5장 프로세스 동기화 책 "쉽게 배우는 운영체제"를 참고하여 쓴 글입니다 프로세스 간 통신(IPC: Inter Process Communication) 프로세스 간 통신의 개념 프로세스 내부 데이터 통신: 하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우, 데이터 주고받는 방법을 프로세스끼리 알아서 결정 프로세스 간 데이터 통신: 같은 컴퓨터에 있는 여러 프로세스끼리 통신, 보통 파이프는 fork()로 만들어진 부모-자식 간 통신에 사용 네트워크를 이용한 데이터 통신: 여러 컴퓨터가 네트워크로 연결되어 있을때의 통신, 소켓을 이용한 통신, 같은 컴퓨터 내에서 소켓 통신은 비효율적, 임의의 포트를 정하고 해당 포트간의 대화를 통해 데이터 주고받는 방식 프로세스 간 통신의 분류 양방향 통신: 데이터를 동시에 양쪽 방향으로..
[운영체제]4장 CPU 스케줄링 책 "쉽게 배우는 운영체제"를 참고하여 쓴 글입니다 스케줄링의 개요 CPU 스케줄링 고수준 스케줄링(장기 스케줄링, 작업 스케줄링): 시스템 내의 전체 작업 수를 조절하는 것이다. 이를 통해 시스템 내에서 동시에 실행 가능한 프로세스의 총 개수가 정해진다. 저수준 스케줄링(단기 스케줄링): 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정한다. 중간 수준 스케줄링: 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부화를 막는다. 일부 프로세스를 중지 상태로 옮김으로써 나머지 프로세스가 원만하게 작동하도록 지원한다. 스케줄링의 목적(중요) 공평성: 모든 프로세스가 자원을 공평하게 배정받아야 하며, 그 과정에서 특정 프로세스가 배제되어서는 안된다. 효율성: 시..