분류 전체보기 1097

확장 플러그인 설치 { 플러그인?, 설치방법, 코드 정리하기, 태그 이름 한번에 변경하기, 브라우저 출력 }

한국어 패치는 Ctrl Shift P 를 통해 명령 팔레트를 연다. Configure Display Language 를 통해 한국어 설정을 할 수 있다. Beautify 는 설치 후 별도의 설정이 필요하다. highlight matching tag 는 여는 태그를 클릭하면 닫는 태그가 어디 있는지 찾아 준다. html css support 는 css 선택자 작성 시 html 에서 작성한 속성 이름의 자동완성 기능을 제공해준다. beuatify 를 다시 검색해서 상세 화면을 펼쳐본다. feature contributions 탭을 연다. hookyqr.beautify 를 복사한다. Ctrl Shift P 로 명령창을 연 다음 keyboard shrtcuts 를 검색하여 실행한다. hooky 라고 검색하면 b..

학습개요 { WEB개발의 언어?, 웹사이트구조, 동작원리, 프론트엔드, html, css, javascript }

우리의 주 목적은 웹사이트를 개발하는 것이다. 왜 프론트와 백으로 나뉘어질까요? 웹사이트에는 사용자가 있습니다. 사용자는 브라우저를 통해서 접속을 하게 됩니다. 다양한 브라우저들 중 선택을 해서 사용하게 되는데, UI 를 통해서 다양한 요청을 하게 됩니다. 이때 UI 를 담당하는 것이 프론트엔드에서 담당을 하고, 다양한 요청들을 처리하는 과정이 백엔드 영역입니다. 처리 결과를 다시 돌려주면 사용자는 화면을 통해서 보게 됩니다. 웹사이트의 동작 원리를 좀 더 자세히 보겠습니다. 요청과 응답 단계로 크게 나뉘게 됩니다. 사용자가 웹 브라우저를 통해 페이지 주소를 입력하면 사용자 요청이 서버에게 전달됩니다. 서버는 사용자 요청을 받고 해당 주소에 해당하는 html, css, js 파일을 보내줍니다. 사용자의 ..

컬렉션 프레임워크 { 정의, Collection 인터페이스, Map 인터페이스, 실습준비 }

컬렉션 프레임워크란? 흔히 프로그램 개발을 건물 짓는 일에 비유합니다. 원하는 건물을 지으려면 구조를 잘 잡아야 하듯이 프로그램을 개발할 때도 사용하는 자료를 어떤 구조로 관리할 것인지가 중요합니다. 그래야 프로그램의 기능을 효과적으로 구현할 수 있기 때문입니다. 이 때 사용하는 것이 자료 구조(data structure)입니다. 자료 구조는 프로그램 실행 중 메모리에 자료를 유지 및 관리하기 위해 사용합니다. 자바에서는 필요한 자료 구조를 미리 구현하여 java.util 패키지에서 제공하고 있는데, 이를 컬렉션 프레임워크 collection framework 라고 합니다. 자료 구조는 개발자가 필요할 때 직접 만들어 사용할 수도 있습니다. 하지만 자바 컬렉션 프레임워크를 사용하면 직접 개발하는 수고를 ..

제네릭 { 제네릭, 제네릭의 선언 및 생성, 제네릭의 필요성, 제네릭 클래스 정의하기, T 자료형에 사용할 자료형을 제한하는 <T extends 클래스>, 제네릭 메서드 활용하기, 컬렉션 프레임워크, 제..

12장 컬렉션 프레임워크 들어가기 우리가 사용하는 프로그램은 대부분 데이터를 사용하여 구현합니다. 메일 시스템은 메일을, 채팅 앱은 친구 목록과 채팅 내용 등을 관리합니다. 프로그램을 실행할 때 데이터를 효율적으로 관리하기 위해 자료 구조를 사용합니다. 이 장에서는 자료 구조를 구현한 다양한 인터페이스와 클래스를 소개합니다. 각 특성을 잘 이해하여 프로그램을 만들 때 활용해 보세요. 제네릭이란? 프로그램에서 변수를 선언할 때 모든 변수는 자료형이 있습니다. 메서드에서 매개변수를 사용할 때도 자료형을 가지고 있습니다. 대부분은 하나의 자료형으로 구현하지만, 변수나 메서드의 자료형을 필요에 따라 여러 자료형으로 바꿀 수 있다면 프로그램이 훨씬 유연할 것입니다. 이와 같이 어떤 값이 하나의 참조 자료형이 아닌..

Class 클래스 { Class 클래스란, Class 클래스를 활용해 클래스 정보 알아보기, newInstance( ) 사용하여 클래스 생성, Class.forName( ) 을 사용해 동적 로딩하기 }

Class 클래스란? 자바의 모든 클래스와 인터페이스는 컴파일되고 나면 class 파일로 생성됩니다. 예를 들어 a.java 파일이 컴파일되면 a.class 파일이 생성되고 이 class 파일에는 클래스나 인터페이스에 대한 변수, 메서드, 생성자 등의 정보가 들어 있습니다. Class 클래스는 컴파일 된 class 파일에 저장된 클래스나 인터페이스 정보를 가져오는 데 사용합니다. 지금까지 변수를 선언할 때 자료형을 미리 파악하고 그 자료형에 따라 변수를 선언했습니다. 그리고 클래스를 사용할 때도 이미 그 클래스 정보(변수, 메서드 등)를 알고 있는 상황에서 프로그램을 만들었습니다. 그런데 어떤 경우에는 여러 클래스 중에 상황에 따라 다른 클래스를 사용해야 할 때도 있고, 반환받는 클래스가 정확히 어떤 자..

Wrapper 클래스 { 기본 자료형을 위한 클래스, 오토박싱과 언박싱 }

기본 자료형을 위한 클래스 지금까지 정수를 사용할 때 기본형인 int 를 사용했습니다. 그런데 정수를 객체형으로 사용해야 하는 경우가 있습니다. 예를 들어 매개변수가 객체거나 반환 값이 객체형인 경우, ArrayList를 사용할 경우입니다. public void setValue(Integer i) {...} // 객체를 매개변수로 받는 경우 public Integer returnValue( ) {...} // 반환 값이 객체형인 경우 ArrayList list = new ArrayList( ) // ArrayList는 객체만 저장할 수 있다. 이를 위해 자바에서는 기본 자료형처럼 사용할 수 있는 클래스를 제공합니다. 이런 클래스를 기본 자료형을 감쌌다는 의미로 Wrapper 클래스라고 합니다. 가장 대표..

String 클래스 { String 선언 2가지 방법, String 클래스의 final char[ ] 변수, StringBuffer 와 StringBuilder 클래스 활용하기, String 클래스의 다양한 메서드 }

String을 선언하는 두 가지 방법 자바는 문자열을 사용할 수 있도록 String 클래스를 제공합니다. 문자열은 프로그램을 구현할 때 많이 활용합니다. String 을 선언하는 두 가지 방법이 있습니다. 1. 생성자의 매개변수로 문자열 생성하기 2. 문자열 상수를 가리키기 String str1 = new String("abc"); // 생성자의 매개변수로 문자열 생성 String str2 = "test"; // 문자열 상수를 가리키는 방식 언뜻 보기에는 비슷해 보이지만, 내부적으로는 아주 큰 차이가 있습니다. 1. new 예약어를 사용하여 객체를 생서아는 경우 "abc" 문자열을 위한 메모리가 할당되고 새로운 객체가 생성됩니다. 2. str2 = "test" 와 같이 생성자를 이용하지 않고 바로 문자열..

Object 클래스 { 기본 클래스란, java.lang 패키지, 최상위 클래스 Object, toString( ) 메서드, equals( ) 메서드, hashCode( ) 메서드, clone( ) 메서드 }

기본 클래스란 JDK 에서 제공하는 많은 클래스(기본 클래스)를 활용하면 프로그램을 더욱더 효율적으로 구현할 수 있습니다. 프로그램을 제작하는 것은 누군가가 만들어준 도구들을 활용하여 만드는 것인 만큼 주요한 파트라고 할 수 있습니다. 모든 내용들을 외우고 있을 필요 까지는 없으나, 더 학습이 필요한 경우 JavaDoc 을 활용하는 것이 가장 바람직합니다. java.lang 패키지 우리는 지금까지 많은 예시들을 구현해보면서 왔는데요. String, Integer 와 같은 클래스를 사용해왔습니다. 이런 클래스들은 어디서 온 것일까요? 이들 클래스는 java.lang 패키지에 속해 있습니다. String 클래스의 전체 이름은 java.lang.String 이 되는 것이죠. 이와 같이 java.lang 패키지..

인터페이스 활용하기 { 한 클래스가 여러 인터페이스를 구현, 두 인터페이스의 디폴트 메서드가 중복되는 경우, 인터페이스 상속하기, 실무에서 인터페이스를 사용하는 경우, JDBC와 인터페이..

한 클래스가 여러 인터페이스를 구현하는 경우 한 클래스가 여러 클래스를 상속받으면 메서드 호출이 모호해지는 문제가 발생할 수 있습니다. 하지만 인터페이스의 구현은 상속과는 다르게 한 클래스가 여러 인터페이스를 구현할 수 있습니다. 위 그림을 보면 Customer 클래스는 Buy 와 Sell 두 인터페이스를 구현합니다. 이를 코드로 나타내면 다음과 같습니다. public interface Buy { void buy(); } public interface Sell { void sell(); } public class Customer implements Buy, Sell { @Override public void sell() { System.out.println("판매하기"); } @Override publi..