본문 바로가기

분류 전체보기

(370)
[Git & Github] 3 - hello, github! git commit 명령어를 통해 버전을 만들면 내 컴퓨터 속 저장소(=local 저장소)에만 저장되는데 - 어떻게 다른 사람과 협업할 수 있을까? - 효율적으로 백업했다고 볼 수 있을까? 노트북에 커피 한 번 쏟으면 말짱 꽝인데? GitHub : 각자의 컴퓨터에만 존재하는 버전(local에서 만들어준 버전)을 저장/관리해주는 서비스 → 원격 저장소 github에 코드를 업로드한다 == github에 "push"한다 → 코드 + 버전 내역 백업 github에 push하기 1. github 원격 저장소 생성 2. local 저장소에 새 버전 만들기 3. 새 버전이 만들어진 곳에서 git remote add origin 명령어, git push -u origin main 명령어 복붙 하기 ※ local의 변..
[Git & Github] 2- 버전을 만들어보자 git_tutorial 폴더에서 git bash 열기 git init → 이 폴더 안에서 git 버전관리를 시작할 것이라는 뜻 git status → git 폴더의 상태를 알려줌 Untracked files : 버전 관리가 한 번도 되지 않은 새로 생긴 파일 git add [파일명] → staging area로 보냄 * git add . → 현재 디렉터리에 있는 모든 파일들을 staging area로 보냄 git rm —cached [파일명] → staging area에서 내림 git commit -m “commit message” (짧은 commit message로 빠르게 commit 하는 경우) * git commit → commit message 작성 창으로 넘어간 후 자세히 작성 (길고 자세한 c..
[Git & Github] 1 - 버전 관리의 큰 그림 git은 버전 관리 시스템 중 하나이다. 버전이란? 유의미한 변화가 결과물로 나온 것 버전관리? 1. 협업하기 2. 되돌리기 3. 효율적으로 백업하기 버전이 되기까지 거쳐가는 세 개의 공간 Working directory(작업 공간) 내가 코드 작업을 하는 공간 파일들이 생성/수정/삭제되는 공간 즉, 변경사항이 생기는 공간 Staging Area 버전이 될 후보들이 올라오는 공간 Working directory에서 선별 Repository 버전들이 저장되어 있는 공간 모든 명령어는 git 형태 git add : Working directory → Staging Area git commit : Staging Area → Repository
[Java] Input/Output 정리 System.out System.out.println(); System.out.println("%d", n); - 실수형, 문자형 자료 출력 가능 Scanner next[자료형]으로 입력받을 수 있음 hasNext[자료형]을 이용해서 입력받을 수 있는 자료형이 있는지 구할 수 있음 두 수 입력 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a, b; a = scanner.nextInt(); b = scanner.nextInt(); System.out.println(a + b); } } 입력에서 정수가 주어지는 동안 계속 입력 받음 public class Main..
[C++] OOP - 생성자와 소멸자 생성자 생성자는 객체 생성 시 자동으로 호출되면서 객체를 초기화 해주는 함수이다. Date 클래스의 day 객체를 만들면 생성자 Day(int year, int month, int day)가 호출된다. 따라서 Date의 객체를 생성할 때 생성자의 인자 year, month, day에 각각 2011, 3, 1을 전달하며 객체를 생성하게 되는 것이다. Date day(2021, 7, 9); // 암시적 방법 (implicit) Date day = Date(2021, 7, 9); // 명시적 방법 (explicit) 함수를 호출하듯이 사용하는 것이 암시적 방법, 명시적으로 생성자를 호출한다는 것을 보여주는 것이 명시적 방법인데 많은 경우 암시적 방법으로 축약해서 쓸 수 있으므로 이를 선호하는 편이다. 디폴트 ..
[C++] 공용체, 열거체 공용체 (union) 공용체는 구조체와 달리 메모리를 공유한다. 공용체들의 각 멤버들의 시작 주소는 모두 동일하다. 가장 큰 멤버 변수의 크기로 메모리를 할당받아 같은 공간에 자리잡기 때문에 한 번에 하나의 멤버 변수만 사용할 수 있다. 따라서 메모리의 크기가 제한되어 있거나 메모리를 절약하고 싶을 때 유용하지만 하나의 데이터 사용 후 데이터를 변경할 경우 원래의 데이터를 잃어버린다는 단점이 존재한다. 위 그림의 union A의 경우 j의 값을 변경함으로써 i의 값을 변경할 수 있고 i의 값을 변경함으로써 j의 값을 변경할 수 있게 된다. 공용체 A의 멤버 변수 a에만 67이란 값을 저장하고 a, b, c를 출력하면 모두 각자 선언된 데이터 타입으로 변형되어 출력된다. 열거형 (Enum) 프로그래밍을 하..
[C++] 구조체 배열 원소의 타입은 모두 동일해야 한다. 하나의 배열에서 어떤 원소는 char이고 어떤 원소는 int 일 수 없다. C++에서는 배열로 해결하지 못하는 문제를 구조체를 이용하여 해결할 수 있다. 원소의 크기가 제각각인 배열을 만드는 것이다. 배열에서는 배열의 타입만으로 모든 원소의 타입을 알 수 있었지만 구조체는 그렇지 않기 때문에 정의할 때 모든 원소의 타입을 명시해 주어야 한다. struct 구조체이름 { 멤버들..예를 들면 char str[10]; int i; }; /* 마지막에 꼭 ;를 붙인다. */ Human이라는 이름의 구조체는 3개의 멤버(int age, int height, int weight)를 가지고 있다. main 함수 내에서 Human이라는 구조체의 구조체 변수 Psi를 정의하였다...
[C++] 동적 할당 프로그램이 실행되는 런타임동안 사용자가 직접 공간의 크기나 시점을 결정하여 힙 영역의 메모리를 할당 받는것을 동적할당 이라고 한다. 사용자에 의해 메모리가 동적으로 할당이 되면 프로그램이 끝날 때 까지 유지되므로, 메모리 공간 사용이 끝나면 메모리 낭비(누수)를 줄이기 위해 명시적으로 메모리 할당을 해제 해주어야한다. 지금껏 사용하던 지역변수나 매개변수는 정적할당으로 스택영역에 메모리가 할당되어 왔는대 스택영역의 경우 메모리가 작은 크기로 제한되어 있기 때문에 그래픽 같이 용량이 큰 데이터를 저장할 경우 오버플로우의 발생으로 프로그램이 동작하지 않을 가능성이 크다. 따라서 동적할당을 이용하여 운영체제에서 관리하는 좀 더 큰 메모리 영역인 힙을 통해 정적할당의 단점을 극복 할 수있다. C 언어에서는 힙 상..