전체 글 594

[고급 알고리즘] Graph(Shortest Path): Dijkstra Algorithm

1. Dijkstra Algorithm 이란?시작 정점으로부터 모든 정점간의 최단 경로를 찾는 알고리즘 입니다. 가중치가 양수인 그래프에서 사용됩니다. Greedy매 단계에서 현재까지 가장 짧은 경로를 선택합니다.그 경로를 바탕으로 다음 경로를 업데이트 하는 방식입니다.우선순위 큐와 간선 리스트를 사용합니다. 2. 동작 원리교차점마다 출발지로부터의 거리를 기억하여 도착지와의 최단 거리를 찾는 방식입니다. Initialization모든 교차점의 거리를 무한대로 설정합니다. (해당 교차로로 가는 경로가 없음을 의미)출발지의 거리를 0으로 설정합니다. (자기 자신에서 출발하므로) Search & Memorization출발지로부터 각 교차점까지의 최단 거리를 찾아내고 이 정보를 저장합니다.각 교차점에 기록된 거..

Algorithm 2024.02.10

[Pro Git] 3-1. Git 브랜치: 브랜치란 무엇인가

Scott Chacon & Ben Straub 님의 "Pro Git" 책을 정리한 포스팅 입니다. 1. 브랜치란 무엇인가 브랜치 코드의 독립적인 라인 원본 코드를 변경하지 않고 복사본에서 작업할 수 있게 해줍니다. 개별적으로 개발을 진행한 후, 이를 원본 코드와 병합하여 최종 제품을 완성합니다. Blob 객체 Git에서 파일의 내용을 저장하는 객체입니다. 파일의 이름이나 경로 정보는 포함하지 않습니다. 일종의 파일에 대한 스냅샷 파일을 Staging Area에 추가할 때, 파일의 내용을 Blob 객체로 변환하고 저장합니다. 커밋 객체 특정 시점의 프로젝트 상태를 나타내는 객체입니다. Staging Area에 있는 데이터의 스냅샷에 대한 포인터 Staging Area에 있는 파일들의 상태를 스냅샷으로 ..

Git 2024.01.20

[Java][Tutorial] 1-3. Learning the Java Language: Classes and Objects

The Java Tutorials have been written for JDK 8 3. Classes and ObjectsConstant값을 수정할 수 없는 필드입니다.final 키워드로 표기합니다. Access Control외부 클래스로부터 접근 제한 레벨을 지정하는 키워드입니다. Inner Classes클래스 내부에 선언된 클래스 입니다. 접근 제한 Static class : 밖에 있는 필드에 접근할 수 없습니다.Non-Static class : 밖에 있는 필드에 접근할 수 있습니다. Nested Classes내부 클래스를 가지고 있는 클래스 사용하는 이유오직 클래스 안에서만 사용되도록 논리적으로 묶는 유용한 방법입니다.캡슐화 효과를 얻을 수 있습니다. 직렬화중첩 클래스의 직렬화는 비권장됩니다.내..

Java 2024.01.14

[Java][Tutorial] 1-2. Learning the Java Language: Language Basics

The Java Tutorials have been written for JDK 8 1. Variables자료를 저장하기 위한 메모리 공간 입니다.타입에 따른 메모리가 할당됩니다. member variable항목Instance VariableClass Variable (Static Field)정의인스턴스마다 개별로 존재하는 변수클래스당 하나만 존재하는 변수생성 시기객체가 생성될 때클래스가 JVM에 로딩될 때생성 위치각각의 객체별로 Heap 메모리에 생성됨클래스 영역 또는 Heap의 메서드 영역에 생성됨 (클래스별)공유 여부공유되지 않음모든 인스턴스가 같은 변수를 공유함사용 예시개별 사용자 이름, 나이 등전역 설정값, 공통 카운터, 상수 등값 변경각 인스턴스가 자유롭게 변경 가능하나가 바꾸면 모두에게 반영..

Java 2024.01.14

[Pro Git] 2-6. Git의 기초: 태그

Scott Chacon & Ben Straub 님의 "Pro Git" 책을 정리한 포스팅 입니다. 1. 태그 특정 커밋을 가리키는 고정된 참조입니다. 항상 동일한 커밋을 가리킵니다. 보통 릴리즈할 때 사용합니다. 조회 git tag (-l) git tag -l "pattern" git show git show "tag name" 태그의 상세 정보를 볼 수 있습니다. 태그 정보, 커밋 정보 제공 태깅 Annotated tag 태그를 만든 저자 이름, 이메일, 생성 날짜, 메시지를 포함합니다. $ git tag -a v1.4 -m "my version 1.4" 생성 -a 옵션을 추가하여 생성합니다. 옵션 -m : 메시지를 추가합니다. Lightweight tag 단순히 커밋을 가리키는 포인터로 추가적인 ..

Git 2024.01.14

[Pro Git] 2-5. Git의 기초: 리모트 저장소

Scott Chacon & Ben Straub 님의 "Pro Git" 책을 정리한 포스팅 입니다. 1. 리모트 저장소 리모트 저장소란? 인터넷이나 네트워크 어딘가에 있는 저장소를 말합니다. 특징 원격으로 다른사람과 협업 할 수 있습니다. Pull, Push 명령어 권한 부여 저장소마다 읽고 쓰는 등의 권한을 줄 수 있습니다. 리모트 저장소 확인 git remote -v 현재 프로젝트에 등록된 리모트 저장소를 확인할 수 있습니다. git clone 명령어를 통해 복제하면, 'origin' 이라는 리모트 저장소가 자동으로 등록됩니다. 리모트 저장소 추가 git remote add 리모트 저장소 fetch git fetch clone하거나 fetch한 이후, 수정된 모든 것을 로컬에 가져옵니다. 단, ..

Git 2024.01.14

[Pro Git] 2-4. Git의 기초: 되돌리기

Scott Chacon & Ben Straub 님의 "Pro Git" 책을 정리한 포스팅 입니다. 1. 되돌리기 커밋 수정 git commit --amend 수정하고자 하는 파일을 작업하고, staging area에 올립니다. git commit --amend 명령어로, 이전 커밋의 메시지를 수정하는 에디터를 제공받습니다. 저장하여 최신 커밋의 내용 및 메시지를 변경합니다. 상태 변경: staged -> unstaged git reset HEAD "filename" staged 상태의 파일을 unstaged로 변경합니다. 상태 변경: modified -> unmodified(최근 커밋버전) git checkout -- "filename" modified 상태의 파일을 최근 커밋된 버전으로 되돌아갑니다..

Git 2024.01.14

[Pro Git] 2-3. Git의 기초: 커밋 히스토리 조회하기

Scott Chacon & Ben Straub 님의 "Pro Git" 책을 정리한 포스팅 입니다. 1. 커밋 히스토리 조회하기 커밋 히스토리 조회 git log commit 912022dcf5c069c7cfeb89734712c58569e8c22c (HEAD -> master) Author: noah0504789 Date: Sun Jan 14 18:22:08 2024 +0900 third commit 0f54ccd7f3ac4537d87c25a310471b74eb001a3c Author: noah0504789 Date: Sun Jan 14 18:18:44 2024 +0900 second commit a809274718d3842c347baa5a70f5ee534c7aaaa5 Author: noah050478..

Git 2024.01.14