Languages 61

[Java]안정적인 NULL 처리가 가능한 Optional 알아보기(NullPointerException)

프로그래밍을 할 때 가장 많이 발생하는 예외 중 하나는 바로 NullPointerException입니다. 해당 예외는 실제 값이 아닌 null을 갖고 있는 객체 및 변수를 호출할 때 발생하는 예외입니다. 이와 같은 예외를 예방하기 위해 개발자는 조건문을 사용하여 null을 확인하곤 합니다. 하지만 Java 8 이후 등장한 Optional 클래스를 이용하여 복잡한 조건문 없이 NullPointerException을 예방할 수 있습니다. Optional 클래스란? '선택사항'이라는 뜻을 가지고 있는 Optional 클래스에 대해 알아보겠습니다. public final class Optional { /** *if non-null, the value, if null, indicates no value is pr..

Languages/Java 2023.07.16

[Java]문자열 클래스 String, StringBuffer, StringBuilder 알아보기

대표적인 Java의 문자열을 다루는 자료형 클래스는 String, StringBuffer, StringBuilder 이 세 가지로 구분된다. 하지만 정확한 쓰임에 따라 구분하는 건 어려울 것입니다. 이번 포스팅에서는 세 가지 클래스에 대해 알아보고 어떠한 목적에 맞게 사용해야 하는지 알아보도록 하겠습니다. 가장 자주 사용되는 String 클래스 Java에서 String은 변하지 않는다는 특징을 갖고 있습니다. 따라서 문자열이 변하지 않는다고 가정할 때 문자열 클래스 중에 가장 뛰어난 성능을 기대할 수 있습니다. 하지만 실제 계속해서 문자열이 변하는 코드를 작성하게 되는 경우에는 좋지 않은 성능을 보일 것입니다. 이러한 이유로 인해 StringBuilder, StringBuffer가 등장했습니다. Stri..

Languages/Java 2023.07.06

[Java]ArrayList와 LinkedList 적절하게 사용하기(Java의 동적 배열)

실제 프로그래밍 언어에서 가장 많이 사용되는 자료구조는 바로 리스트이다. Java에서 제공하는 리스트 인터페이스로 구현된 ArrayList와 LinkedList를 알아보고 적절하게 사용하는 방법을 알아보도록 하자. [Java]컬렉션(Collection)의 개념과 구조 파악 하기 📌컬렉션(Collection)의 개념과 구조 파악 하기 JAVA의 컬렉션(collection>이란 데이터의 집합을 의미하며 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고과적으로 처리할 수 있는 표준화 mooonstar.tistory.com 일반 배열과의 다른 점은? ArrayList는 일반적으로 배열을 사용한다. 하지만 Array를 사용하지 않고 ArrayList를 사용하는 이유가 있다. 그 이유..

Languages/Java 2023.07.06

[Java]do while, while문은 어떤 상황에서 사용할까?

프로그래밍을 하다 보면 코드가 반복하여 실행되는 경우가 있다. 이런 경우에 사용하는 여러 가지 방법이 있는데 이번 포스팅에서는 사용 방법이 유사한 while문과 do while 문의 차이를 알아보고 어떤 상황에 사용을 해야 하는지에 대해 알아보도록 하겠습니다. 가장 자주 사용되는 for문 [Java]일반적인 for문과 이후의 등장한 향상된 for문 알아보기 프로그래밍을 하면서 일반적으로 사용하는 for문은 초기값, 조건식, 증감식을 사용하여 다음과 같이 사용을 합니다. 초기화 : 반복문에서 사용될 변수를 초기화 조건식 : 조건식의 값이 참이어야 mooonstar.tistory.com 반복문 하면 가장 바로 떠오르는 구문은 바로 for문일 것입니다. 하지만 정해진 횟수만큼 반복하는 for문과 다르게 어떠한..

Languages/Java 2023.07.02

[Java]Stream 살펴보기_(2)Filter를 사용한 데이터 추출하기

[Java]stream 살펴보기_(1)등장 배경, 컬렉션과의 차이 2023.03.29 - [Languages/Java] - [Java] 컬렉션(Collection)의 개념과 구조 파악 하기 [Java]컬렉션(Collection)의 개념과 구조 파악 하기 📌컬렉션(Collection)의 개념과 구조 파악 하기 JAVA의 컬렉션(collection>이란 데 mooonstar.tistory.com 이전 포스팅에서 Java 8 이후에 등장한 스트림(Stream)에 대하여 알아보았습니다. Stream API는 생성, 중개, 종료의 구조로 사용되는데 이번 포스팅에서는 중개연산 방법 중 하나인 Stream Filter를 사용하여 생성된 스트림에서 데이터를 추출해 보도록 하겠습니다. Stream Filter란? Jav..

Languages/Java 2023.06.24

[Java]다형성을 지원하는 방법 오버로딩과 오버라이딩 개념 잡기

객체지향 언어 Java의 중요 개념 중 하나인 '다형성'을 지원하는 방법으로 오버로딩과 오버라이딩이 있습니다. 개념은 다르지만 이름부터 비슷한 이 두 개의 단어를 이번 포스팅에서 예제를 통해 확실히 구분하도록 하겠습니다. Java의 다형성이란? 다형성의 사전적 의미는 다음과 같습니다. 다형성이란, 그 자체의 의미를 표준 국어사전에서 찾아보면, '같은 종의 생물이면서도 어떤 형태나 형질이 다양하게 나타나는 현상' 이라 정의함 위의 내용을 프로그래밍 관점으로 실제 예시를 들어보도록 하겠습니다. 위의 이미지를 보면, 세 개의 차량 모두 차라는 공통점을 가지고 있지만, 모양과 기능은 제각각이고 그에 따라 차량의 가격도 상이합니다. 코드를 보겠습니다. //공통 class CAR { void light_On() {..

Languages/Java 2023.06.24

[Java]Static의 사용을 지양해야하는 이유(정적 변수, 정적 메서드)

처음 Java에 대해 배울 때 코드에서 자주 볼 수 있는 단어는 바로 Static이다. Java에서의 static이라는 키워드를 사용해서 정적 필드와, 정적 메서드를 만들 수 있다. 이 둘을 합쳐 클래스 멤버라고 표현된다. 이렇게 생성된 클래스 멤버는 클래스에 고정된다. 이번 포스팅에서는 '정적'이라는 뜻을 가지고 있는 Static의 사용을 지양해야 하는 이유에 대해 알아보도록 하겠습니다. Static 사용이 메모리의 미치는 영향 Static으로 생성된 정적 멤버는 프로그램의 실행됨과 동시에 메모리에 올라간다. 이러한 이유로 인해 사용되지 않음에도 불구하고 메모리를 차지하고 있기 때문에 불필요한 자원이 낭비되고 있는 셈이다. 또한 Static을 사용해 만들어진 변수와 클래스는 앞에 '전역'이라는 의미가 ..

Languages/Java 2023.06.18

[Javascript]join 함수를 사용하여 배열의 원소 합치기

📌Array.join() join 함수를 사용하여 배열 안에 있는 모든 원소를 하나로 연결할 수 있다. 또한 구분자를 지정하여 연결도 가능하다. 📌Array.join() 사용 예시 var arr = ['테', '스', '트', '입', '니', '다']; var arrTest1 = arr.join(); console.log(arrTest1); //테,스,트,입,니,다 var arrTest2 = arr.join(''); console.log(arrTest2); //테스트입니다. var arrTest3 = arr.join('-'); console.log(arrTest3); //테-스-트-입-니-다 구분자 없이 join 함수를 사용하는 경우 기본 구분자는 ", " 지정된다. 구분자로 ' '를 넣어주는 경우에는..

[Java]일반적인 for문과 이후의 등장한 향상된 for문 알아보기

프로그래밍을 하면서 일반적으로 사용하는 for문은 초기값, 조건식, 증감식을 사용하여 다음과 같이 사용을 합니다. 초기화 : 반복문에서 사용될 변수를 초기화 조건식 : 조건식의 값이 참이어야만 반복, 거짓일 경우 for문 종료 증감식 : 반복문에 사용되는 변수를 증가, 감소하며 제어 📌일반적인 for문 //i는 0부터 10이하의 수까지 1씩 증가하며 출력한다. for(int i=0; i

Languages/Java 2023.06.06

[Javascript]스프레드 문법의 다양한 사용 방법(배열 합치기, 배열 복사, 배열 연결)

📌Spread Operator(스프레드 연산자)란? ES6에서부터 등장한 Javascript의 Spread Operator에 대해서 알아보자. 처음 코드를 보았을 때는 누군가의 오타인 줄 알 만큼 문법의 형태가 특이했다. 이 스프레드 연산자를 사용하면 배열이나 문자열을 이용한 복잡한 연산을 단순하게 할 수 있고, 원본(배열, 객체)에 영향 없이 새로운 형태의 배열을 생성할 수 있다. 한번 알아보도록 하자. 📌기본 배열 const a = [1, 2, 3]; const b = [4, 5, 6]; const c = [7, 8, 9]; console.log(a); console.log(b); console.log(c); //result [1, 2, 3] [4, 5, 6] [7, 8, 9] 📌배열 복사(전개 연산..