개인 공부/java
-
Java에서 테스트 코드란? (작성 예시 포함, 깃허브 소스 첨부)개인 공부/java 2024. 8. 5. 20:11
🔴 테스트란?🟠 테스트의 종류🟢 단위 테스트 (Unit Testing)단위 테스트는 소프트웨어의 개별적인 부분, 즉 "단위"를 격리된 환경에서 테스트하는 것입니다.주로 클래스, 메서드, 함수와 같은 작은 코드 조각을 대상으로 합니다.목적은 개별 단위가 예상대로 동작하는지 검증하고 코드의 신뢰성을 확보하는 것입니다.🟢 통합 테스트 (Integration Testing)통합 테스트는 여러 개의 단위나 컴포넌트를 함께 테스트하여 이들이 올바르게 상호 작용하는지를 확인하는 것입니다.각 단위 테스트가 개별적으로 잘 작동한다고 해도, 통합할 때 발생할 수 있는 문제를 찾아내기 위해 필요합니다.데이터베이스 연동, 외부 API 호출 등과 같은 상호 작용을 테스트하는 데 사용됩니다.🟢 인수 테스트 (Accept..
-
Java17을 왜 고려해야 할까? (Java version(8~17) 별 특징 정리)개인 공부/java 2024. 8. 5. 19:42
Spring boot 3.0 부터는 java17부터 지원하고 있기 때문에 새로운 스프링부트를 사용하는 분들은 무조건 17 이상을 도입해야 한다!난 정리되어 있는 글들을 참고하여 정리한 글이기 때문에 이 보다 더 많은 내용이 추가되었을 것이다. 더 자세한 내용을 원하시는 분들은 다른 글을 참고하시면 좋을 것 같다.😂 Java11은 왜...Java8과 경쟁상대로 가장 많이 언급되었던 Java version은 11이였다. 그 이유는 우선 LTS였기 때문이였는데. Oracle 사에서 Java8을 사용한 레거시 프로젝트들(현재도 서비스하고 있기 때문에 새로운 기술에 계속해서 대응해줘야함!)이 너무 많음을 고려하여 Java8이 Java11보다 더 긴 지원기간을 갖게되었다.OracleJava 8 : 2030년 12..
-
final과 추상화, interface개인 공부/java 2021. 7. 6. 07:34
final 이란 final은 더 이상 확장이 불가능함을 알리는 예약어이다. 적용할 수 있는 범위는 변수, 메서드, 클래스이다. 변수에서 final 변수에 final을 적용시키면 프로그램이 종료되어질 때까지 값을 변경하지 못하는 상수화가 된다. 그리고 static 예약어와 함께 정적화하여 특정 클래스의 객체가 여러개 생성되는 것을 방지하는 것이 보통이다. 또한 상수화가 되므로 변수의 이름은 대문자로 하는것도 관례이다. 하지만 웹에서 개발을 할때 싱글톤으로 개발하기 위해 변수명에 final을 붙여 생성자를 생성하는 경우가 있다. 그때는 static이나 대문자로 표시하지 않고 'private final 변수명'으로 생성하는 경우도 있다. 메서드 final 메서드의 final은 더이상 오버라이드를..
-
java 상속개인 공부/java 2021. 6. 29. 07:44
상속이란 상속이란 부모가 보유하는 것을 자식이 물려 받는 것을 의미한다. java에서도 같은 의미인데 이는 확정성과 직결되는 의미를 지닌다. java는 단일 상속 java는 단일 상속만을 지원하며 다중 상속은 지원하지 않는다. 다른 언어들은 다중 상속이 지원하는 경우가 있지만 java는 완전한 객체지향 개념에는 다중 상속이 필요치 않다고 보고 있다. 또한 다중 상속을 지원하게 되면 생성되는 객체의 명확성이 떨어지게 된다. 그래서 자바에서 상속은 특정 클래스가 가지는 일부 속성과 기능을 다른 새로운 클래스에 제공하기 위해 맺는 클래스간의 관계를 말한다. 또한 클래스간의 상속이란 extends 예약어를 통해 부모클래스(super class)를 자식 클래스(sub class)로 관계를 맺는 것인데 만약 상속을..
-
String 이란개인 공부/java 2021. 6. 23. 07:41
String 이란 String은 기본 자료형처럼(= int, float, char, boolean) 자주 사용되는 class이다. 여기서 처럼이란 의미는 String은 이 기본 자료형들과는 다르게 참조 자료형 class라는 것이다. 참조 자료형이란 객체 자체에 값을 가지는 것이 아닌 객체에는 referenece(주소) 값을 갖고 있고 해당 reference에 객체의 값이 있는 형태다. 여기서 String을 생성하는 방법이나 기타 기본이 되는 내용은 생략하고 정리하겠다. 기본 method는 String api를 확인할 것을 추천한다. String의 비교 위에서 언급한 내용처럼 String은 참조 변수이기 때문에 ==으로 비교시 새로 생성된 두 객체의 주소값은 당연히 다르므로 false가 나온다. 그렇기 때..
-
static 변수와 static 메서드 그리고 static 초기화개인 공부/java 2021. 6. 17. 07:39
static이란 메서드나 멤버변수에 static이라는 예약어를 정의하면 해당 멤버변수나 메서드들의 객체가 생성될 때 static 영역이라는 곳에 유일하게 생성되어지면서 모든 객체들이 공유하여 사용하게 된다. [접근제한] static [반환형] 메서드명(){} [접근제한] static [자료형] 변수명; 다음과 같이 사용한다. static 변수 static으로 선언되었다면 객체를 생상하지 않고 사용할 수 잇으며 아무리 많은 객체를 생성한다고 해도 static 변수는 오직 하나만 만들어지며 그것은 모든 객체가 공유한다. 예를들어 은행에서 0.1% 금리를 주고 있었다고 가정해보자 근데 이 금리가 상승하여 0.2%의 금리를 적용해야하는 상황인데 은행을 이용하는 고객들의 모든 통장이 각각 하나의 객체라면 모든 통..
-
생성자와 this개인 공부/java 2021. 6. 14. 07:43
생성자란 생성자란 메모리 내 객체가 생성될 때 자동적으로 단 한번 호출되어 객체의 구조를 인식하고 생성되는 객체의 멤버변수들을 초기화하는 데 목적을 둔 것을 말한다. 생성자의 특징으로는 반환 타입이 없다. 생성자명이 클래스명과 같다. class Car{ int speed; public void setSpeed(int s){ speed = s; } } Car car = new Car(); new 연산자 뒤로 오는 것을 생성자란 것인데. 위 예문과 같이 전달되는 인자가 없는 생성자를 default 생성자라고 한다. 또한 생성자라는 형태의 메서드가 Car class 내부에 존재하지 않는데도 사용할 수 있는데 이는 개발자가 생성자를 class 내부에 단 1개도 정의하지 않았을 경우 컴파일러가 컴파일할 때 자동으..
-
Method개인 공부/java 2021. 6. 11. 07:52
Method란 메서드는 클래스의 행위를 표현하는 것으로 클래스 내의 함수로 볼 수 있다. 지금까지 공부했던 필드 변수들이 물체라면 그 물체들의 행동을 만들어주는 것이 메서드이다. 메서드는 입력값(매개변수=parameter)가 있고 그 입력값을 받아서 무언가의 결과를 반환해낸다. 그 유명한 input이 있으면 output이 있다. 메서드란 클래스의 기능으로써 무조건 클래스 안에 선언해야한다. 매개변수(=parameter)의 전달과 반환의 방식 Call by value 메서드에서 매개변수를 받아서 값만 사용하고 전달 받은 매개변수의 값에는 영향을 미치지 않는 방식이다. 또한 대부분 매개변수로 기본 자료형을 받는다. class Test{ public int increase(int n){ n++; return ..