분류 전체보기 (71) 썸네일형 리스트형 [Java] 오버로딩(overloading) 오버로딩이란? - 오버로딩(overloading)의 사전적 의미는 '과적하다'. 즉, 많이 싣는 것을 뜻한다. - 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져아 한다. - 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. - 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩(method overloading)' 또는 간단히 '오버로딩(overloading)'이라고 한다. - 보통 하나의 메서드 이름에 하나의 기능만을 구현해야하는데, 하나의 메서드 이름으로 여러 기능을 구현하기 때문에 붙여진 이름이.. [SpringBoot] Test(2) MockMvc를 이용해서 테스트하기(@WebMvcTest, @AutoConfigureMockMvc) Mock - Mock이라는 단어를 사전에서 찾아보면 '테스트를 위해 만든 모형'을 의미한다. - 테스트를 위해 실제 객체와 비슷한 모의 객체를 만드는 것을 모킹(Mocking)이라고 하며, 모킹한 객체를 메모리에서 얻어내는 과정을 목업(Mock-up)이라고 한다. - 객체를 테스트하기 위해서는 당연히 테스트 대상 객체가 메모리에 있어야 한다.하지만 생성하는 데 복잡한 절차가 필요하거나 많은 시간이 소요되는 객체는 자주 테스트하기 어렵다. 또는 웹 애플리케이션의 컨트롤러처럼 WAS나 다른 소프트웨어의 도움이 반드시 필요한 객체도 있을 수 있다. 이런 복잡한 객체는 당연히 테스트 과정도 복잡하고 어려울 수 밖에 없다. - 따라서 테스트 하려는 실제 객체와 비슷한 가짜 객체를 만들어서 테스트에 필요한 기능만 .. [SpringBoot] Test(1) 스프링 부트에서 테스트하기(@SpringBootTest) - 개발자들은 누구나 자신이 작성한 코드에 문제가 없음을 검증하기 위해 어떤 방법으로든 테스트 코드를 작성한다. - 작성된 테스트 코드는 유지보수 과정에서 재사용되어 시스템의 안정성을 보장하는 중요한 장치가 된다. - 대부분의 프로젝트에서는 JUnit을 기반으로 일관성 있는 단위 테스트를 진행하는데, 단위 테스트란 자신이 작성한 클래스에 대한 테스트로써 테스트 단계 중에서 가장 기본이라 할 수 있다. - 단위 테스트가 효율적으로 이루어지기 위해서는 테스트할 객체가 최대한 단순해야 하지만 웹 애플리케이션은 테스트 대상 객체가 특정 서버와 관련되어 있거나 다른 객체들과 연관되어 관계가 복잡한 경우가 일반적이다. - 예로 웹 애플리케이션에서 개발자가 만든 컨트롤러가 정상적으로 동작하는지 확인하기 위해서는 서블.. [SQLD] SQL 활용 - Table Partition 1️⃣ Partition 기능 ∙ 파티션은 대용량의 테이블을 여러 개의 데이터 파일에 분리해서 저장한다. ∙ 테이블의 데이터가 물리적으로 분리된 데이터 파일에 저장되면 입력, 수정, 삭제, 조회 성능이 향상된다. ∙ 파티션은 각각의 파티션 별로 독립적으로 관리할 수 있다. 즉, 파티션 별로 백업하고 복구가 가능하며 파티션 전용 인덱스 생성도 가능하다. ∙ 파티션은 Oracle DB의 논리적 관리 단위인 테이블 스페이스 간에 이동이 가능하다. ∙ 데이터를 조회할 때 데이터의 범위를 줄여서 성능을 향상시킨다. 2️⃣ Range Partition ∙ Range Partition은 테이블의 칼럼 중에서 값의 범위를 기준으로 여러 개의 파티션으로 데이터를 나누어 저장하는 것이다. 3️⃣ List Partition.. [Java] 생성자(Constructor) 생성자란? - 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. - 인스턴스 초기화란, 인스턴스 변수들을 초기화하는 것을 뜻한다. - 생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값이 없다는 점이 다르다. - 그렇다고해서 생성자 앞에 리턴값이 없음을 뜻하는 키워드 void를 사용하지는 않고, 단지 아무것도 적지 않는다. - 생성자의 조건 + 생성자도 메서드이기 때문에 리턴값이 없다는 의미의 void를 붙여야 하지만, 모든 생성자가 리턴값이 없으므로 void를 생략을 할 수 있게 하였다. - 연산자 new 가 인스턴스를 생성하는 것이지 생성.. [Java] 클래스 메서드(satic메서드)와 인스턴스 메서드 - 변수와 마찬가지로 메서드 앞에 static이 붙어 있으면 클래스 메서드이고 static이 붙어있지 않으면 인스턴스 메서드이다. - 클래스 메서드도 클래스변수처럼, 객체를 생성하지 않고도 '클래스이름.메서드이름(매개변수)'와 같은 식으로 호출이 가능하다. - 인스턴스 메서드는 객체를 생성해야만 호출할 수 있다. - 클래스는 '데이터(변수)'와 데이터에 관련된 메서드의 집합'이므로, 같은 클래스 내에 있는 메서드와 멤버변수는 아주 밀접한 관계가 있다. - 인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드이다. 그런데 인스턴스 변수는 인스턴스(객체)를 생성해야만 만들어지므로 인스턴스 메서드 역시 인스턴스를 생성해야만 호출할 수 있는 것.. [Java] 기본형 매개변수, 참조형 매개변수 + 참조형 반환타입 기본형 매개변수와 참조형 매개변수 - 자바에서는 메서드를 호출할 때 매개변수로 지정한 값을 메서드의 매개변수에 복사해서 넘겨준다. - 매개변수의 타입이 기본형(primitive type)일 때는 기본형 값이 복사되겠지만, 참조형(reference type)이면 인스턴스의 주소가 복사된다. - 메서드의 매개변수를 기본형으로 선언하면 단순히 저장된 값만 얻지만, 참조형으로 선언하면 값이 저장된 곳의 주소를 알 수 있기 때문에 값을 읽어 오는 것은 물론 값을 변경하는 것도 가능하다. 기본형 매개변수 변수의 값을 읽기만 할 수 있다. (read only) 참조형 매개변수 변수의 값을 읽고 변경할 수 있다. (read & write) example1) - change메서드에서 main메서드로부터 넘겨받은 d.x의.. [Java] JVM의 메모리 구조 응용 프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JMV은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 1) 메서드 영역(Method Area) - 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 떄, 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성된다. 2) 힙(Heap) - 인스턴스가 생성되는 공간, 프로그램 실행 중 생성되는 인스턴스는 모두 이 곳에 생성된다. - 즉, 인스턴스 변수(intance variable)들이 생성되는 공간이다. 3) 호출 스택 (Call Stack 또는 Executio.. [Java] 메서드(Method) - method는 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것이다. - 기본적으로 수학의 함수와 유사하며, 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과를 반환한다. - 예를 들어 제곱근을 구하는 메서드 'Math.sqrt()'는 4.0을 입력하면, 2.0을 결과로 반환한다. - 수학의 함수와 달리 메서드는 입력값과 또는 출력값이 없을 수도 있으며, 심지어는 입력값과 출력값이 모두 없을 수도 있다. - 그저 메서드가 작어븡ㄹ 수행하는데 필요한 값만 넣고 원하는 결과를 얻으면 될 뿐, 메서드가 내부적으로 어떤 과정을 거쳐 결과를 만들어내는지 전혀 몰라도 된다. - 메서드에 넣을 값과 반환하는 결과만 알면 된다. 그래서 메서드를 내부가 보이지 않는 '블랙박스'라고도 한다. 메서드를 사용하는 이.. [Java] 변수(Variable) 선언위치에 따른 변수의 종류 - 변수는 클래스변수, 인스턴스변수, 지역변수 모두 3종류가 있다. - 변수의 종류를 결정짓는 중요한 요소는 '변수의 선언된 위치'이므로 변수의 종류를 파악하기 위해서는 변수가 어느 영역에 선언되어있는지 확인해야 한다. - 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스 변수이다. 변수의 종류 선언위치 생성시기 클래스 변수 (class variable) 클래스 영역 클래스가 메모리에 올라갔을 때 인스턴스 변수 (intance variable) 인스턴스가 생성되었을 때 지역 변수 (local variable) 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행 되었을.. 이전 1 2 3 4 5 6 ··· 8 다음