본문 바로가기

반응형

전체 글

유튜브 4천 시간 채우기 이건 내 유튜브 스튜디오의 수익창출과 관련된 페이지이다. 내 유튜브 채널은 현재 구독자는 1천 명이 넘은 상태이다. 구독자를 1천명 확보하는 데 3년 이상이 걸렸다. 그러나 거기서 끝이 아니다. 1천명 구독자에 도달했을 때, 나의 충족 시간은 2,300대에 머물러 있었다. '산너머 산!'이라는 조상님들의 말이 실감나는 순간! 그러나 나는 포기하지 않고 열심히 영상을 업로했다. 그 사이 구독자는 좀더 늘어 1,280명이 넘었고 시간도 꾸준히 늘고 있다. 위 사진은 며칠 전 내가 확보한 시간을 스크린샷 한 것이다. 4,000시간은 커녕, 2,999시간에 불과한 데도 반가웠다. 딱 1시간만 확보하면 3천 시간이다. 3천이란 숫자는 아직 1천 시간이 필요한 어이없는 시간이지만, 여기에 도달하는 것도 쉽지가 않았.. 더보기
KT 멥버십의 다양한 혜택들 나는 스마트폰을 10년도 넘게 KT를 사용하고 있다. 그런 만큼 KT 멤버십 혜택도 잘 알고 있고 최대한 멤버십 혜택을 이용하려고 애쓰고 있다. 이 포스트에 담긴 이미지들은 현재 KT멤버십 포인트로 혜택을 받을 수 있는 기업들이다. 소소한 혜택이지만, 잘 이용하면 조금씩 돈을 절약할 수 있어서 나쁘지 않다. KT멤버십 제휴사들은 조금씩 변하고 그 혜택도 조금씩 변해왔다. 이것들이 현재 2023년도의 혜택기준이다. 내가 가장 잘 이용하는 것은 빠리바게트와 GS25시이다. 얼마 안되는 금액이라도 이곳에 갈 때면 꼭 포인트 혜택을 챙긴다. 더보기
구글킵(Goggle Keep), 편리한 메모 앱 구글킵(Google Keep)은 구글에서 출시된 메모앱이다. 내가 이 앱을 즐겨 쓰는 것은 메모를 할 때, 사진을 같이 담을 수 있기 때문이다. 실제로 다양한 기억할 거리들 중에는 이미지 정보들이 많다. 사진이나 캡쳐한 정보들이 중요한 메모거리일 때가 종종 있는데, 구글킵은 이것들을 자유롭게 저장할 수 있다. 위 화면은 내 구글킵의 한 장면 모습이다. 실제로 내가 적어 넣은 글씨보다 캡쳐한 이미지들이 더 많다. 또 구글킵이 메모장으로 좋은 것은 구글의 한 서비스이기 때문에 컴퓨터와 스마트폰을 오가며 자유롭게 활용할 수 있다. 이런 자유로운 연동 때문에 그 어떤 메모앱보다 잘 사용하고 있다. 더보기
인터페이스 Interface 확장 인터페이스는 객체 사용 방법(메소드 호출 방법)을 기술한 타입이다. 따라서 메소드 선언부만 있으면 된다. 그러나 자바8부터는 실행내용을 가지고 있는 디폴트 메소드를 작성할 수 있다. 이 디폴트 메소드는 인터페이스에 선언 되지만, 인터페이스만으로 사용할 수 없다. 디폴트 메소드는 구현 객체의 인스턴스 메소드이다. 그렇다면, 인터페이스에서 왜 디폴트 메소드가 필요한 걸까? 그것은 인터페이스의 확장을 위해 필요하다. 기존 인터페이스에서 추상메소드(method2();)를 추가할 수는 없다. 추상메소드를 추가하면, 기존 구현 클래스들이 모두 에러가 난다. 그런데 디폴트 메소드(default methode2() {...})는 추상 메소드가 아니다. 디폴트 메소드는 구현 클래스에서 꼭 구현할 필요도 없다. 디폴트 메.. 더보기
인터페이스 Interface 상속 인터페이스 간에도 상속이 가능하다. 클래스( class)는 상속을 하나만 할 수 있는데, 인터페이스는 다중 상속을 할 수 있다. 그것을 작성하는 코드는 다음과 같다. public interface 하위 인터페이스 extends 상위인터페이스1, 상위인터페이스2 {...} 그런데 하위인터페이스를 구현하는 클래스는 아래 추상 메소드를 모두 재정의해야 한다. 예를 들어, 하위인터페이스의 추상 메소드와 상위인터페이스1의 추상 메소드, 상위인터페이스2의 추상메소드가 존재한다고 한다면, 이것들을 모두 재정의 해 줘야 한다는 것이다. 그 코드는 다음과 같이 작성한다. 하위인터페이스 변수 = new 구현클래스(...); 상위인터페이스1 변수 = new 구현클래스(...); 상위인터페이스2 변수 = new 구현클래스(... 더보기
인터페이스 강제타입변환 Casting 인터페이스 강제타입변환(Casting)이란 인터페이스 타입으로 자동 타입변환 된 후, 다시 구현 클래스 타입으로 변환되는 것을 일컷는다. 구현클래스 타입에 선언된 다른 멤버를 사용하기 위해서 캐스팅이 꼭 필요할 때가 있다. 선언은 다음과 같이 해준다. 구현클래스 변수 = (구현클래스) 인터페이스 변수; 이렇게 하면, 인터페이스 변수가 구현클래스의 변수로 강제 타입변환이 이루어진다. 이제, 코드로 확인해 보자! 이것은 Vehicle 인터페이스 클래스이다. 여기에는 run 메소드만 있다. Vehicle 을 구현한 버스클래스를 만든다. Bus 클래스는 Vehicle에서 호출한 run메소드 외에 독자적으로 checkFare메소드를 갖고 있다고 해보자. 그러고 나서 실행클래스를 보자! 인터페이스 타입으로 변환을 .. 더보기
인터페이스 배열로 구현객체 관리 인터페이는 선언하는 필드가 여러개가 있을 경우, 배열로 관리하면 참 간단하다. 예를 들어, 타이어의 경우 4개의 필드가 필요하다. 그것을 각각 선언한다면, 다음과 같은 코드를 작성하게 된다. 아래는 실행 클래스이다. 보시다 시피, 처음에는 한국타이어로 4개의 타이어를 다 굴러가게 했다. 그러나 실행 클래스에서 앞타이어 두개를 금호타이어로 바꾸었다. 한국타이어가 굴러가고 뒤이어 앞바퀴가 금호타이어로 변환되었음을 알 수 있을 것이다. 그럼, 이번에는 배열로 바꾸어 코드를 짜보자! 배열로 바꾸면, 코드가 이렇게 간단해진다. 비교하기 쉽게 필드를 각각 선언한 것을 주석처리했다. 게다가 위에서 확인할 수 있듯이 run 메소드는 for문으로 더 간단하게 표현된다. 그럼, 결과는 어떨까? 실행 클래스를 확인해 보자!.. 더보기
인터페이스(interface)의 정의와 선언방법 인터페이스(Interface)는 100% 추상 클래스로 개발코드와 객체를 서로 연결시켜 주는 역할을 한다. 개발코드와 객체의 메소드 사이에 인터페이스를 두면, 개발코드를 수정하지 않고 사용하는 객체를 변경할 수 있다. 인터페이스는 하나의 객체가 아니라 여려 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라서 실행 내용과 리턴 값이 달라진다. 그러므로 인터페이스를 사용하면, 개발코드의 변경 없이 실행내용과 리턴값을 다양화 할 수 있다. 상속은 1:1이지만, 인터페이스는 여러 개를 구현할 수 있다. 인터페이스를 선언하는 법을 알아보자! 1. 인터페이스 이름: 자바 식별자 작성 규칙에 따라 작성된다. 첫자는 대문자로 시작한다. 숫자로 시작하면 안되고, $와 _를 제외한 특수 문자는 사용하면 안된다. 다.. 더보기

반응형