자바의 배열은 모두 동적 할당으로 메모리를 저장합니다. 그러나 배열은 처음 할당받은 크기 이상으로 접근할 수 없고, 중간에 요소를 삽입하거나 삭제하기 어렵습니다. 이러한 부가적 처리가 필요할 때 제네릭과 컬렉션을 이용합니다. 다수의 데이터를 한 덩어리로 처리할 때, 제네릭 타입의 컬렉션 클래스를 이용합니다. 일반화된 자료형인 제네릭 타입과 객체 요소들의 저장하는 컬렉션을 배워봅시다. 또한 자바 컬렉션 인터페이스의 예인 List나 Map, Set, Vector 등의 사용예제와 함께 사용법을 알아봅시다. 📌제네릭 📚 제네릭(Generic) 제네릭 타입은 자료형의 일반화 어떤 데이터든 담을 수 있으나 한 번 담으면 해당하는 타입으로만 사용할 수 있음 구체화된 일반 타입은 얼마의 메모리를 할당받는지나 코드화 하..
프로그램을 실행시키면 예기치 못한 결과를 맞이하거나, NullPointException과 같은 예외로 실행하지 못할 수도 있습니다. 오늘은 자바에서 예외를 처리하는 방법을 배워보겠습니다. 자바의 예외는 0으로 나누거나, Null 값을 가지는 참조 자료형을 참조하는 등 미리 지정된 경우가 있습니다. 또한 잘못된 처리로 인한 예외를 발생시켜야하는 사용자 지정 예외도 존재할 것입니다. 두 가지 경우의 예외를 발생시키고 이를 처리하는 방법에 대해 배울 것 입니다. 📌 예외 객체와 예외 클래스 📚 예외 (Exception) 프로그램 실행 중에 예기치 못한 상황에서 발생하는 비정상적인 상황을 가리킴 문법에 맞지 않게 작성된 코드는 컴퍼일러에 의해 컴파일 오류로 걸러지지만 예외는 사용자의 잘못된 입력같이 예기치 못한..
세상에는 다양한 종류의 도형이 있습니다. 직사각형이나, 사다리꼴, 삼각형 등등 다양한 종류가 있고 이들은 모두 도형이라는 특징을 가지고 있습니다. 각 도형을 자바에서 구현하기 위해 Polygon 클래스를 부모로 상속한다고 가정해봅시다. 만약 각 도형의 넓이를 구하는 메서드를 Polygon 클래스에 구현해두면 각 도형에 맞는 넓이를 구할 수 없을 것입니다. 그렇다고 각 도형 클래스에 따로 정의하면 메서드 이름을 따로 기억해야하는 번거로움이 있을 것 입니다. 이러한 문제 상황을 해결하기 위해 만들어진 것이 추상 클래스와 인터페이스입니다. 비슷한 행위를 하는 각 클래스에 동일한 메서드를 강제로 구현하도록 하는 추상클래스를 배워봅시다. 또한 공통의 부모를 가지지 않지만 같은 행동을 강제해야하는 경우 사용하는 인..
일반 HTML에서는 DOM 요소에 이름을 달 때 id 값을 사용합니다. 특정 요소에 id 값을 달면 CSS에서 특정 id에 스타일을 적용하거나, 자바스크립트에서 해당 id를 찾아 작업하기도 합니다. 이렇게 HTML에서 id 를 사용하여 DOM에 이름을 다는 것처럼 리엑트 프로젝트 내부에서도 DOM에 이름을 다는 방법이 있습니다. ref를 사용하지 않은 코드를 보며 ref의 필요성을 알아보고, ref를 사용한 코드를 작성해보겠습니다. 이후 컴포넌트에 직접 ref를 달아 사용하는 코드도 작성해보겠습니다. 📌 ref는 어떤 상황에서 사용해야 할까? 📚 ref 의 주요 목적 예제를 통해 ref의 필요성을 알기 전에 REACT 공식 문서(https://ko.reactjs.org/docs/refs-and-the-d..
📌 상속과 다형성 실제 일상에서도 비슷한 일을 하는 여러 형태의 도구가 있습니다. 이들을 활용하여 필요한 곳에 모아서 사용하거나, 같은 기능을 하는 것끼리 모아서 보관을 편히 할 수도 있습니다. 자바에서도 상속받은 객체들끼리 모아서 배열로 만들거나 매개변수로 사용할 수 있습니다. 오늘은 객체 지향언어의 특징인 다형성을 배워봅시다. 다양한 형태가 존재하는 다형성이라는 객체 지향 언어의 특징을 배워봅시다. 이러한 다형성의 활용 방법을 배워보며 업캐스팅과 다운 캐스팅의 용어도 배워봅니다. 또한 각 객체가 명시된 클래스로부터 생성되었는지를 확인하는 instanceof 연산자도 배워봅시다. 📌 I. 상속과 다형성 📚 1. 다형성 (Polymorphism) 다양한 형태가 존재한다는 의미 프로그래밍을 유연하게 만들어..
본 글은 "황기태"님의 [명품 C++ Programming]의 연습 문제 답을 공유하고자 작성되었으며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다. 시리즈 보기 [C++] 명품 C++ Programming 1장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 1장 연습 문제 풀이 (실습 문제) [C++] 명품 C++ Programming 2장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 2장 연습 문제 풀이 (실습 문제) [C++] 명품 C++ Programming 3장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 4장 연습 문제 풀이 (이론 문제) [C..
본 글은 "황기태"님의 [명품 C++ Programming]의 연습 문제 답을 공유하고자 작성되었으며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다. 시리즈 보기 [C++] 명품 C++ Programming 1장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 1장 연습 문제 풀이 (실습 문제) [C++] 명품 C++ Programming 2장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 2장 연습 문제 풀이 (실습 문제) [C++] 명품 C++ Programming 3장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 4장 연습 문제 풀이 (이론 문제) [C..
본 글은 "황기태"님의 [명품 C++ Programming]의 연습 문제 답을 공유하고자 작성되었으며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다. 시리즈 보기 [C++] 명품 C++ Programming 1장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 1장 연습 문제 풀이 (실습 문제) [C++] 명품 C++ Programming 2장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 2장 연습 문제 풀이 (실습 문제) [C++] 명품 C++ Programming 3장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 4장 연습 문제 풀이 (이론 문제) [C..
본 글은 "황기태"님의 [명품 C++ Programming]의 연습 문제 답을 공유하고자 작성되었으며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다. 시리즈 보기 [C++] 명품 C++ Programming 1장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 1장 연습 문제 풀이 (실습 문제) [C++] 명품 C++ Programming 2장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 2장 연습 문제 풀이 (실습 문제) [C++] 명품 C++ Programming 3장 연습 문제 풀이 (이론 문제) [C++] 명품 C++ Programming 4장 연습 문제 풀이 (이론 문제) [C..
현실의 상속은 부모의 재산을 자식이 상속받는 것을 의미합니다. 그러나 객체 지향 언어에서의 상속은 부모의 생물학적 특징을 물려받는 유전과 비슷하다고 생각하면 좋습니다. 부모 클래스에서 만들어진 특징을 자식 클래스가 물려받고, 필요에 따라 유지, 수정, 추가할 수 있습니다. 자바의 객체별로 각 클래스를 작성하다 보면 반복되는 부분이 있을 것입니다. 이러한 부분을 효율적으로 동일한 처리할 때 사용하는 클래스 상속의 개념을 배워봅시다. 또한 하위 클래스에서 상속된 상위 클래스를 접근 및 수정하는 방법을 배워봅시다. 📌 클래스 상속의 기본 개념 📚 배경 비슷한 동작을 하는 서로 다른 객체들을 작성하는 방법은 두 가지입니다. 📃 포괄적인 속성/행위를 갖는 클래스로 구현 지나친 일반화로 서로 다른 객체 간에 구분이..