본문 바로가기

분류 전체보기

(666)
중첩 클래스&인터페이스(1) 기본적으로 OOP에서는 여러 클래스들이 서로 밀접한 관계를 맺고, 다양한 상호작용을 하게 됩니다. 광범위하게 사용되는 클래스도 있고, 한정된 클래스끼리 특수한 관계를 맺기도 합니다. 지금까지 우리는 대부분의 클래스를 독립적으로 작성해 오는 것을 당연하게 여겼는데, 이러한 클래스들은 여러 가지 클래스끼리 관계를 맺기 때문이었습니다. 하지만 어떤 클래스가 특정 클래스만 특수한 관계를 맺는 경우에는, 해당 클래스를 클래스 내부에 다시 선언하는 경우가 있습니다. 이렇게 클래스 내부에 선언한 클래스를 중첩 클래스(Nested Class)라고 합니다. 이렇게 중첩 클래스를 사용하게 되는 경우, 클래스간의 멤버에 쉽게 접근이 가능하면서 동시에 외부와의 불필요한 클래스 관계를 방지하게 되면서 코드 작성에 있어서 효율화..
[Chapter 4] 복수의 repository로 협업(2) - rebase 1 앞선 과정을 통해, NEWBIE가 본인의 포크 된 원격 저장소를 통해 "favorite.md"를 새롭게 추가한 내용까지 원본 저장소에 병합을 진행하였습니다. 이제 다음 상황을 가정해 보겠습니다. NEWBIE가 추가로 favorite.md에 선물하기 기능(라인)을 추가하고 다시 풀 리퀘스트를 보냈는데 - ME가 작성한 코드와 충돌이 났습니다. 그럼 이 충돌을 해결하기 위해 우리가 앞서 배웠던 것처럼 원본의 브랜치를 내 브랜치로 병합한 다음 충돌을 해결하고 다시 풀 리퀘스트를 보내게 됩니다. 하지만, 이렇게 작업을 진행한 후 풀 리퀘스트를 보낸다면 선물하기 기능 뿐만 아니라 충돌 해결 과정까지 모두 포함된 병합 커밋이 생기게 됩니다. 이 상황에서 불필요한 커밋은 제외하고 '선물하기 기능 추가' 커밋만 보내야..
[CSS] 2. 텍스트 스타일(4) - 텍스트 정렬 2 ○ text-decoration : 텍스트의 줄 표시 / 없애기 text-decoration 속성을 이용해서 흔히 사용하는 텍스트의 밑줄 또는 취소선을 작성할 수 있게 됩니다. 그리고 의외로 많은 분들이 궁금해하는! 텍스트에 하이퍼링크 적용 시 나타나는 밑줄을 없애는 것도 이 속성을 이용해서 실행할 수 있습니다. text-decoration 속성 값에는 다음과 같은 종류가 있습니다. · none : 텍스트에 줄 표시하지 않음 · underline : 밑줄 표시 · overline : 윗줄 표시 · line-through : 취소선 표시 none 속성입니다. under line 속성입니다. over line 속성입니다. line through 속성입니다. ○ text-shadow : 텍스트에 그림자 효과 ..
인터페이스(13) - 디폴트 메서드가 있는 인터페이스의 상속 우리는 인터페이스 사이에도 상속관계가 있음을 배웠죠? 그럼 인터페이스의 상속이 이루어진 상태에서, 디폴트 메서드는 어떻게 동작하게 될지에 대해서도 살펴보도록 하겠습니다. 기본적으로는 추상 메서드와 마찬가지로, 디폴트 메서드 역시 상속이 이루어질 것입니다. 하지만, 이런 단순 상속을 통한 디폴트 메서드의 사용 이외에도 몇 가지 사용 방식이 존재합니다. 이 부분에 대해서 다음과 같이 살펴보도록 하겠습니다. 1. 디폴트 메서드를 그냥 상속해서 사용합니다. 2. 디폴트 메서드를 상속한 다음, 오버라이드 합니다. 3. 디폴트 메서드를 추상 메서드로 재선언 합니다. 우선, 예제에서 사용할 인터페이스 ParentInterface가 다음과 같습니다. public interface ParentInterface { pub..
1. 기본 설정 - 빠른실행 도구모음 설정 2 ○ 행/렬 숨기기 & 숨기기 취소 일반적으로 행렬을 숨기거나 숨기기 취소를 할 때, 주로 행렬의 전체를 드래그해주고 우클릭하여 숨기기를 진행하게 됩니다. 하지만, 단축키 사용 시 이렇게 전체 행렬을 반드시 선택해 줄 필요는 없습니다. 만일, 아래 표의 '향수'와 '마스카라' 행을 숨기려고 한다면, 향수와 마스카라가 포함된 셀만 각각 선택하고, [Ctrl + 9]를 눌러주면 두 행이 자동으로 숨겨집니다. 숨긴 행을 다시 나타나게 하려면, 숨겨진 행이 포함되는 사이의 셀만 선택해 준 다음에 [Ctrl + Shift + 9]를 눌러주면 숨기기 취소가 실행됩니다. 이제 열도 숨겨야 합니다. 열의 숨기기도 거의 동일합니다. 숨기고자 하는 열의 셀을 선택해주고, 그 상태에서 [Ctrl + 0]을 눌러주면 해당 열을..
인터페이스(12) - 디폴트 메서드와 인터페이스의 확장 디폴트 메서드를 배웠던 것을 기억하실 것입니다. 디폴트 메서드는, 기본적으로 인터페이스에서 선언되는 추상 메서드와 달리 메서드의 실행 코드까지 모두 선언되는 메서드였습니다. 선언은 인터페이스에서 되어 있지만, 실제로 실행은 구현 객체를 통해서 이루어지는 독특한 성질을 갖고 있다는 것도 설명했습니다. 인터페이스로서는 상당히 예외적이고 특이한 케이스입니다. 다만 별다른 조작 없이 구현 클래스 인스턴스를 통해서 인터페이스 객체에서 실행 가능하다는 기본 메서드로서의 장점은 있지만 - 정확히 이 디폴트 메서드가 왜 필요한지에 대해서 상세히 살펴보도록 하겠습니다. 인터페이스에 선언된 디폴트 메서드의 가장 기본적인 특징은, 구현 클래스에서 오버라이드를 의무적으로 하지 않아도 된다는 점입니다. 이 특성은, 인터페이스의..
[Chapter 4] 복수의 repository로 협업(1) - fork 3 : pull request 앞선 포크 실습과정을 통해서 ME의 원본 저장소를 통째로 복사하고, NEWBIE가 새로운 커밋(즐겨찾기 기능 추가)을 생성해 푸시까지 진행하는 절차를 거쳤습니다. 이 과정을 완료했지만, 아직 원본 저장소에는 해당 커밋이 반영되지는 않은 상태입니다. 이제, 이 NEWBIE의 원격 저장소에 반영된 커밋을 원본 저장소에도 반영하도록 하겠습니다. 일단 우리가 배웠던 풀 리퀘스트(pull request)를 진행해야 합니다. 사실 우리가 하려는 작업의 본질은 'NEWBIE'의 브랜치와 'ME'의 브랜치를 합치는 과정과 같다고 생각해도 됩니다. 우선 NEWBIE의 github 페이지로 로그인해서 들어가 보겠습니다. 상단에 보면 "This branch is 1 commit ahead of ME:master"라는 메시지..
[CSS] 2. 텍스트 스타일(4) - 텍스트 정렬 1 ○ text-align : 텍스트 정렬 조정 이 속성은 흔히 문서 작업에서 많이 사용하는 정렬을 의미합니다. 가운데 정렬, 왼쪽 정렬 같은 문장의 위치 정렬을 지정하게 되지요. 선택자 { text-align: start | end | left | right | center | justify | match-parent; } - left / right / center : 좌측 / 우측 / 중앙 정렬을 의미합니다. - start / end : 현재 텍스트 줄의 시작 / 끝 위치에 맞춰 문단을 정렬합니다. - justify : 양쪽 끝에 맞추어 정렬합니다. 오른쪽에 여백이 생기지 않습니다. - match-parent : 부모 요소를 따라서 문단을 정렬합니다. ○ line-height : 줄 간격 조정 line-..