분류 전체보기 1097

인터페이스 요소 살펴보기 { 인터페이스 상수, 디폴트 메서드와 정적 메서드, 디폴트 메서드, private 메서드 }

인터페이스 상수 인터페이스는 추상 메서드로 이루어지므로 인스턴스를 생성할 수 없으며 멤버 변수도 사용할 수 없습니다. 인터페이스에 다음과 같이 변수를 선언해도 오류가 나지 않습니다. double PI = 3.14; int ERROR = -99999; 위와 같이 하여도 오류가 발생하지 않는 이유는 컴파일러가 자동으로 상수로 변환해주기 때문입니다. 컴파일러는 public static final double PI =- 3.14; 로 선언합니다. 디폴트 메서드와 정적 메서드 자바 7까지는 인터페이스에서 추상 메서드와 상수, 이 두 가지 요소만 선언해서 사용할 수 있었습니다. 그런데, 이 추상 메서드와 상수 두 가지만 있는 인터페이스는 다음과 같은 불편한 사항들이 있었습니다. 1. 한 인터페이스를 구현한 여러 클..

인터페이스와 다형성 { 인터페이스의 역할, 인터페이스와 다형성, 클라이언트가 클래스를 사용하는 방법 }

인터페이스의 역할 지금까지 인터페이스를 정의하고 클래스에서 구현하여 사용하는 방법을 알아보았습니다. 인터페이스는 어디에 쓰는 코드일까요? 자바 8에서 새롭게 추가된 디폴트 메서드와 정적 메서드 구현부(implementation part)가 없다면 인터페이스는 그야말로 껍데기입니다. (디폴트 메서드와 정적 메서드 구현부는 이후에 배울 겁니다) 메서드 선언부 (declaration part) 만 있는 인터페이스를 도대체 왜 사용하는지 알아보겠습니다. 인터페이스는 클라이언트 프로그램에 어떤 메서드를 제공하는지 미리 알려주는 명세(specification) 또는 약속의 역할을 합니다. 인스턴스가 명세의 역할을 한다? 예시 Abc 인터페이스를 구현한 A 클래스가 있습니다. 그리고 A 클래스를 상속받은 Z 클래스가..

11. 수업을 마치며

우리는 이제 git 을 통해서 git hosting 서비스들을 이용할 수 있게 되었습니다. 이것이 의미하는 것은 우리의 불안정한 지역 저장소의 한계를 벗어나 자료를 안전하게 보관할 수 있음을 의미하는 것 뿐만 아니라 여러 컴퓨터를 옮겨가면서 작업할 수 있는 작업의 편의성 또한 제공합니다. 여러분이 더 공부해볼법한 것들을 소개해드리면서 물러가겠습니다. 인증과 관련해서 통신을 할 때마다 인증 절차가 번거로우신 분들이 계실겁니다. 이런 분들은 SSH 간에 저장소 간의 통신 방법을 알아보시길 바랍니다. SSH 를 통하면 자동으로 로그인 되어 인증 절차가 간소화되는 효과를 얻을 수 있습니다. 다음은 Git hosting 서비스들이 제공하는 기능들을 유심히 살펴보시기 바랍니다. 특히 Issues 가 있는데요. Is..

10. 오픈소스

이번 시간은 새로운 것을 배우는 시간은 아니지만, 여러분이 배운 것이 얼마나 혁명적인 것인지 알려드리는 시간입니다. git 의 홈페이지인데요. Source Code 라는 버튼을 클릭해보겠습니다. 익숙한 페이지가 하나 나오는데요. 바로 Git Hub 입니다. Git 은 오픈소스인 것이죠. 이 Git 의 소스코드를 다운로드 받고 싶으면 어떻게 해야할까요? ZIP 폴더를 다운로드 받을 수도 있지만 우리는 버전관리를 배웠죠. HTTP 주소를 복사한 다음에 Clone 을 해주면 되겠습니다. 이렇게 git 의 소스코드를 살펴보면 대규모 프로그램이 얼마나 많은 사람들이 참여하여 업데이트가 되고 있는지 파악할 수 있습니다. 이러한 복잡성은 git 과 같은 도구가 없었다면 어떻게 해결할 수 있었을지 생각해보는 계기가 되..

9. pull

현재 내가 작업하고 있는 폴더의 버전 상태가 원격 저장소에 있는 버전의 상태와 다르다면 pull 을 통해서 맞추어 주어야 합니다. Git Clone 은 폴더당 한번씩 이루어지는 initialize 작업이라면 Git Pull 은 프로젝트를 진행하는 동안은 수시로 사용하게 되는 명령입니다. 원격 저장소의 내용을 지역 저장소에 동기화를 하려면 Pull 을 하면 됩니다. Pull 을 클릭하면 원격 저장소의 있는 버전을 가져올 수 있습니다. git log 를 살펴보면 보다 명확하게 현재 상태를 볼 수 있습니다.

카테고리 없음 2023.06.04

8. CLONE 복제

지금까지 우리는 Local 저장소를 Push 를 통해서 원격 저장소에 저장하는 방법을 배웠습니다. 백업이라는 목적을 달성했습니다. 이제 복원을 해야 백업을 완성할 수 있습니다. 새로운 컴퓨터를 마련하고 새로운 컴퓨터로 지금까지 작업한 내용을 복제해서 복원하는 방법을 배워보겠습니다. 우리가 복원을 하게 되면 여러대의 컴퓨터에 같은 소스코드의 상태를 사용할 수 있기 때문에 여러 대의 컴퓨터에 같은 파일의 상태를 유지할 수 있게 되면서 이동하면서 작업하는데 큰 편리함을 얻게 됩니다. 우선 복제를 하기 위해서는 원격 저장소의 주소가 필요합니다. 주소를 복제한 상태에서 디렉터리 빈 공간 우클릭을 하면 Git Clone 이라는 버튼이 보이게 됩니다. 클릭 하면 다음과 같은 화면을 볼 수 있습니다. 주소를 복사한 것..

7. push

이전 시간에 지역 저장소와 원격 저장소를 연결했습니다. 이번 시간부터는 연결한 것을 통해서 지역 저장소를 원격 저장소로 업로드 즉 push 해보도록 하겠습니다. 지역 저장소 디렉터리에서 마우스 우클릭을 하면 Git Sync 라는 것이 있습니다. 클릭을 해보면 다음과 같은 화면을 볼 수 있습니다. 우리가 지금 할 일은 Push 입니다. Push 버튼을 누르면 위와 같은 창이 나오는데, 지금 Push 하고자 하는 원격 저장소에 따라서 GITHub 혹은 GitLab 의 아이디와 비밀번호를 차례대로 넣어주면 됩니다. 복잡하게 Log 가 뜨면서 마지막에 Success 가 뜨면 여러분의 지역 저장소의 내용을 드디어 원격 저장소로 업로드해서 백업을 하게 된 것입니다. 원격 저장소를 확인해보면 지역 저장소의 내용이 성..

6. 원격저장소와 연결

원격 저장소와 연결을 하기 위해서는 원격 저장소의 고유한 주소가 필요합니다. Github 와 GitLab 의 HTTP 주소를 복사합니다. 그 이후에는 지역 저장소에 원격 저장소를 추가시켜 주어야 합니다. 그 때 사용하는 방법에는 여러가지가 있는데 TortoiseGit 을 사용해보겠습니다. (TortoiseGit 이 설치되어 있지 않다면 구글에 검색후 설치해주세요) 원격 저장소와 연결하고자 하는 디렉터리에서 마우스 우클릭 - TortoiseGit - Settings 항목으로 들어갑니다. GIt - remote 부분에 들어갑니다. 여기에 URL 이라고 되어 있는 부분에 붙여넣기 하면 됩니다. 그런데, GIT 은 하나의 지역 저장소가 여러 개의 원격 저장소에 저장될 수 있습니다. 여러 저장소들은 각자 복잡한 ..

5. 공부의 방향

이번 시간은 공부에 대한 전략을 세우는 시간입니다. 우선 지금까지 우리는 지역 저장소에 저장을 해왔습니다. 그렇다면 우리는 자연스럽게 "어떻게하면 지역 저장소와 원격 저장소를 연결할 수 있지?" 가 궁금해져야 합니다. 그것을 하는 방법을 먼저 살펴볼 것이고요. 뒤에서는 원격 저장소에 있는 내용을 복제해서 새로운 컴퓨터에 똑같은 저장소를 구성하고 싶을 수 있습니다. 그럴 때에는 원격 저장소에서 지역 저장소로 복제하는 방법에 대해서 살펴볼 겁니다. 마지막으로 저장소들 끼리 정보를 주고받기 위해서는 통신을 해야 합니다. 통신법은 크게 2가지가 있습니다. HTTP 와 SSH 입니다. 그 중에서 우리는 HTTP 를 이용할 것입니다. HTTP 는 보안적으로 불리하고, 사용하기 불편한 측면이 있습니다만 배울 필요가 ..

4. 저장소 생성

GitHub 와 GITLab 홈페이지에서 먼저 회원가입을 한 이후에 로그인을 합니다. Github 의 경우에는 오른쪽 상단에 있는 New repository 버튼을 이용하거나 좌측에 있는 네비게이션 바를 이용하면 됩니다. GITLab 에서는 New project 라는 버튼을 통해서 새로운 저장소를 만들 수 있습니다. public 은 공개 저장소이고 private 은 비공개 저장소입니다. private 을 선택하게 되면 github 에서는 만원이 되지 않는 비용을 한 달에 지불해야지만 사용할 수 있습니다. 이렇게 저장소를 만드는 방법을 자세하게 살펴보았기 때문에 다른 저장소 서비스를 이용하더라도 쉽게 활용할 수 있을 겁니다.