본문 바로가기

Programming

(477)
[CSS] 7. 가상 클래스와 가상 요소(1) - 가상 클래스 정의 앞선 아티클에서 우리는 고급 선택자를 통해 세부적인 조건을 지정하여 요소를 선택해 스타일을 적용하는 방법에 대해서 알아보았습니다. 하지만 첫 번째 글자만 선택한다거나 특정 리스트의 두 번째 항목만 선택한다든지의 세부적인 요소 지정은 어려운 상태입니다. 이럴 때 가상 클래스, 또는 가상 요소를 사용하게 됩니다. ○ 가상 클래스 : 사용자의 동작에 따라 반응 가상 클래스는, 유저가 특정 요소를 클릭하거나 마우스 포인터를 올리는 등의 동작을 할 때와 같이 상태 변경 시에 어떤 스타일을 바꿀 때 사용하게 됩니다. 대표적인 가상 클래스 선택자를 요약하면 아래와 같습니다. 1) :link - 방문하지 않은 링크 일반적으로 웹 문서에서 한 번도 방문하지 않은 링크는 파란색 글자 + 밑줄로 표시되는 것을 경험해 보셨을..
람다식(4) - 표준 API의 함수적 인터페이스 4 : Function Functional Interface 1 이번 아티클에서는 Function 함수적 인터페이스에 대해서 살펴보겠습니다. Function 함수적 인터페이스의 특징은, 파라미터 값을 받아 리턴 값으로 타입 변환(매핑)하는 역할을 한다는 점입니다. 즉, 앞서 배운 Consumer, Supplier와 달리 파라미터와 리턴 값이 모두 있다는 특징을 갖게 되는 것이죠. 공통적으로 applyXXX( ) 형태의 추상 메서드를 갖습니다. 파라미터, 리턴 값의 타입에 따라서 Function 함수적 인터페이스들은 아래와 같이 분류됩니다. 인터페이스명 추상 메서드 설명 Function R apply(T t) 객체 T를 R로 매핑 BiFunction R apply(T t, U u) 객체 T와 U를 R로 매핑 DoubleFUnction R apply(double valu..
[CSS] 6. 고급 선택자(2) - 속성 선택자 3 ○ [속성 $= 속성값] - 특정 속성 값으로 끝나는 요소를 선택한다 앞서서 살펴본 [속성 ^= 값]은 특정 값으로 '시작'하는 요소를 선택했습니다. 그렇다면 이와 반대로, 특정 값으로 '끝나는' 요소를 선택하는 것도 가능합니다. 끝나는 요소의 값으로 지정하는 경우가 과연 있을까요? 잘 생각해 보면, 의외로 자주 사용할 수 있습니다. 바로 어떠한 파일을 링크로 걸었을 때죠. 특정 첨부 파일을 링크로 제공하게 된다면, 필연적으로 해당 파일의 확장자를 작성하게 됩니다. 이 요소의 끝나는 값은 대부분 파일 확장자입니다. $= 속성 선택자를 사용한다면 이처럼 파일 확장자를 기준으로 구분해 특정 요소를 선택할 수 있게 되는 것입니다. 만일 링크를 제공하게 될 경우, 태그의 href 속성 값을 제공하게 됩니다. 이..
람다식(4) - 표준 API의 함수적 인터페이스 3 : Supplier Functional Interface 우리는 앞서서 Consumer 함수적 인터페이스를 살펴보았습니다. 여기서 Consumer 계열 인터페이스의 특징은 "파라미터는 있지만, 리턴 값은 없다"는 점이 특징이었죠. 람다식(4) - 표준 API의 함수적 인터페이스 2 : Consumer Functional Interface 앞선 아티클에서 표준 API로 제공되는 함수적 인터페이스들의 종류에 대해서 간단히 살펴보았습니다. 람다식(4) - 표준 API의 함수적 인터페이스 1 앞서서 함수적 인터페이스 - 즉, 단 한 개의 추상 nozeroslope.tistory.com 이번 시간에 살펴볼 Supplier는 이름에서 유추할 수 있다시피, Consumer 타입과는 반대로 [파라미터는 없고, 리턴 값이 있는 추상 메서드]를 갖습니다. 이때 추상메서드는 ge..
[CSS] 6. 고급 선택자(2) - 속성 선택자 2 ○ [속성 |= 속성값] - 특정 속성 값이 포함된 속성 요소를 선택한다 [속성 |= 속성값]은 역시 [속성 ~= 속성값] 선택자와 마찬가지로 특정 '속성값'을 가진 요소를 선택하는 선택자 유형입니다. 그럼 '~=' 과 차이점은 무엇일까요? '~= 속성값'의 경우, 정확하게 해당 '속성값'을 가진 요소를 선택합니다. 하지만 '|= 속성값'의 경우에는 정확하게 속성값이 '속성값'이거나, '속성값-' 즉 하이픈으로 연결되는 속성까지 포함해서 선택하게 됩니다. 여기서 가장 큰 차이점이 생기게 됩니다. 예를 들어 아래의 선택자 작성 형태를 보겠습니다. a[title |= us] { // .... } 위의 선택자에서는 태그 요소의 'title' 속성값이 "us"인 경우, 그리고 "us-"로 시작하는 경우를 의미하..
람다식(4) - 표준 API의 함수적 인터페이스 2 : Consumer Functional Interface 앞선 아티클에서 표준 API로 제공되는 함수적 인터페이스들의 종류에 대해서 간단히 살펴보았습니다. 람다식(4) - 표준 API의 함수적 인터페이스 1 앞서서 함수적 인터페이스 - 즉, 단 한 개의 추상 메서드를 가지는 인터페이스를 통해 람다식을 작성하는 방법을 살펴보았습니다. 이제, 자바에서 제공하고 있는 표준 API 중에서 한 개의 추상 메 nozeroslope.tistory.com 이제 여기서 리스팅 된 여러 가지 종류의 인터페이스들을 종류별로 하나씩 살펴보겠습니다. 우선, Consumer계열의 인터페이스 입니다. Consumer 함수적 인터페이스의 특징은 [파라미터는 있지만 리턴 값은 없는] accept( ) 추상 메서드를 가지고 있다는 점입니다. Consumer라는 이름처럼, 추상 메서드 acce..
[CSS] 6. 고급 선택자(2) - 속성 선택자 1 우리는 지금까지 HTML 태그 작성 시, 여러 가지 '속성'을 함께 사용해 왔습니다. CSS의 선택자를 작성할 때, 연결 선택자 이외의 방식으로 이 속성 값을 지정해 특정 요소를 세부적으로 선택할 수 있습니다. ○ [속성] - 특정 속성이 있는 요소를 선택한다 특정 요소에서 태그를 사용할 때, 해당 태그에 세부적인 속성을 부여하는 경우가 있습니다. 이때 어떤 요소 중에서 특정한 속성을 가진 요소를 지정하고 싶을 때 [속성]을 사용합니다. 예를 들어서 링크를 부여할 때 태그에 href 속성을 사용하는 것처럼 말이죠. 만일 태그 중, href 속성을 사용하는 요소에만 특정 CSS 속성을 적용하고 싶다면, 다음과 같이 '[ ]'를 사용합니다. a[href] { // ..... } 아래의 예시를 통해서, 여러 ..
람다식(4) - 표준 API의 함수적 인터페이스 1 앞서서 함수적 인터페이스 - 즉, 단 한 개의 추상 메서드를 가지는 인터페이스를 통해 람다식을 작성하는 방법을 살펴보았습니다. 이제, 자바에서 제공하고 있는 표준 API 중에서 한 개의 추상 메서드만을 갖는 인터페이스를 살펴보겠습니다. 당연히 이러한 인터페이스들 역시 모두 람다식을 통해서 익명 구현 객체 표현이 가능하겠죠? 나중에 스레드 항목에서 다시 배워보겠지만, 스레드의 작업을 정의하는 Runnable이라는 인터페이스가 있습니다. 이 인터페이스는 파라미터와 리턴 값이 없는 run( )이라는 메서드만 존재하기 때문에, 당연히 람다식을 사용해 Runnable 인스턴스를 생성할 수 있습니다. 람다식을 통해서 다음과 같이 구현해 보겠습니다. 실행 클래스에서 람다식으로 익명 객체를 구현했습니다. public ..