분류 전체보기
-
Git 기본 명령어Git & Github 2022. 1. 13. 21:42
branch 프로젝트의 작업을 병렬적으로 하기 위한 특별한 기능 "1. Git 기초" 편에서 보았던 Working directory부터 원격 저장소(master branch)에 Push 하기까지의 과정을 Git Bash CLI로 살펴보면 다음과 같다. 0. local repo에 파일을 생성하고 싶은 경우 > "touch [file]"로 생성 후, "code ." 명령어로 실행하여 수정해준다. 1. 프로젝트 시작 선언 > git init : git 초기화를 의미하며 로컬에서 진행되고, 시작 버전으로 master branch에 기록한다. 버전 관리 정보는 .git(숨김 파일)에 있으며 이 폴더를 지우면 모든 버전 관리 기록이 사라진다. 추적을 무시하고 저장하지 않는다면 .gitignore 파일에 작성한다. ..
-
Git의 기초Git & Github 2022. 1. 13. 19:29
VCS(Version Control System) 원하는 시점으로만 움직이고자 할 때 파일의 변경 사항을 저장하고, 원하는 시점의 버전을 다시 꺼내올 수 있는 시스템. Snapshot : 특정 시점에서 파일의 상태 Delta : 파일의 이전 상태와 비교한 변경사항 대표적인 DVCS(Distributed Version Control System)는 Git으로 저장소의 파일 시스템 전체를 스냅샷으로 취급하고 변경하지 않은 파일은 새로 저장하지 않으며 링크만 저장한다. > 빠른 속도, 단순한 구조, 비선형적인 개발, 완벽한 분산, linux 커널같은 대형 프로젝트에도 유용하다는 특징이 있다. Repo 사용자가 변경한 모든 내용을 추적하는 공간으로, 하나의 디렉토리로도 볼 수 있다. > 현재 상태, 변경 시점,..
-
인터넷의 기본카테고리 없음 2022. 1. 4. 15:56
인터넷 웹의 핵심적인 기술로, 컴퓨터들이 서로 통신 가능한 거대한 네트워크라는 것. 모든 컴퓨터를 연결하고 어떤 일이 있어도 연결 상태를 유지할 수 있게 하는것이 의의이다. 인터넷의 동작 원리 두 컴퓨터가 통신할 때, 다른 컴퓨터와 유선(Ethernet Cable) 또는 무선(WiFi, Bluetooth)으로 연결되어야 한다. 이러한 통신은 두 대로 국한되지 않으며, 통신을 원하는 컴퓨터가 늘어날 수록 케이블의 수가 기하급수적으로 늘어난다. 이를 해결하기 위해 각 컴퓨터는 라우터라는 컴퓨터에 연결되고, 라우터는 각 컴퓨터의 통신이 올바른 대상에게, 올바르게 도착했는지 점검한다. 그러면 복잡한 정도의 케이블 수가 컴퓨터의 수만큼의 케이블과 라우터 하나로 줄어들게 된다. 또한, 라우터도 컴퓨터이므로 라우터와..
-
연결 리스트(Linked List)자료구조 2022. 1. 1. 04:06
리스트 : 데이터들을 순차적으로 저장할 때 사용되며, 각 항목은 순서를 가진다. 배열과 연결 리스트의 장단점 배열 : 구현이 간단하며 속도가 빠르지만, 크기가 정적이고 삽입 및 삭제가 까다로움. 연결 리스트 : 크기가 동적이며 삽입 및 삭제가 비교적 효율적이지만, 구현이 복잡하고 특정 위치의 데이터에 접근하려 할 때 배열보다 시간이 오래 걸림. 리스트의 추상 자료형 (Abstract Data Type) list_insert(list, pos, data) - 원하는 포지션에 데이터 삽입 list_delete(list, pos) - 원하는 포지션의 데이터 제거 list_clear(list) - 리스트의 모든 데이터 제거 list_get_data(list, pos) - 원하는 포지션의 데이터 반환 list_g..
-
[JAVA] 인터페이스(Interface)란?Java 2021. 12. 28. 02:47
인터페이스 앞으로 만들 클래스의 메소드 규격을 선언해주는 것 클래스의 메소드 형식을 미리 선언하고, 인터페이스를 이용해(implements) 만드는 클래스는 인터페이스의 메소드 를 정의해야 함. 특정 클래스에 어떠한 기능이 있을지 미리 파악 가능. 클래스의 기능이 너무 많고, 구획화를 할 필요가 있을 때 인터페이스 이용. 협업을 할 때, 서로 공통적으로 적용해야 할 규격이 있을 때 이용. 인터페이스의 규칙 1. 인터페이스의 이름은 클래스와 마찬가지로 보통 첫 글자를 대문자로 만들며, "~를 할 수 있는" 것들의 규격이라는 의미로 형용사의 이름을 붙이기도 함. 2. 클래스를 상속할 때는 하나의 클래스로부터 상속받을 수 있는 것과 대조적으로 인터페이스는 여러 개를 모두 적용할 수 있음. (주의: 적용한 인터..
-
[C++] 우선순위 큐 STL(priority_queue)C++/STL 2021. 12. 27. 02:52
With Heap Sort Max heap, Min heap를 구현하기 위해서 사용하며, 계속해서 minimum 값을 구해야하는 다익스트라 알고리즘 같은 경우에서 priority_queue를 이용해 min heap을 사용하면 좀 더 짧은 시간에 해결할 수 있다. Perfect Binary Tree(포화 이진 트리) -> 말단 노드를 제외한 모든 노드의 차수가 2로 트리의 레벨마다 비어있는 공간이 존재하지 않음. Complete Binary Tree(완전 이진 트리) -> leaf node의 오른쪽 노드는 비어 있을 수 있으며 배열에 저장하는 것이 가장 효율적. Heap은 Complete Binary Tree를 만족. Max Heap : 부모 노드는 항상 자식 노드에 들어있는 값 보다 크다. Min Hea..
-
[JAVA] Exception의 개념Java 2021. 12. 27. 02:32
예외(Exception) 예상한 범위를 벗어나는 방식으로 프로그램을 동작시켜 예상치 못한 결과를 내는 경우 배열을 다루는 프로그램에서 범위를 벗어난 인덱스를 호출하는 것과 같은 상황 0으로 나누는 경우 예외는 오류(컴파일 에러, 시스템 오류)와 달리 피할 수 있게 만들 수 있음. 예외 처리 프로그램을 만들 사람이 설계한 의도대로 운영되지 않았기 때문에 발생함. 예외가 발생할 것으로 예상되는 예외를 처리함. Exception 클래스 일반적으로 ArithmeticException(RuntimeException으로부터 상속받은 클래스)를 사용하고 Exception 클래스를 이용해 여러 예외를 포괄적으로 처리할 수 있음. RuntimeException는 Exception 클래스로부터 상속받은 클래스. try에서..