반응형

프로그래밍 언어 27

JAVA Exception 개념 (Checked Exception/UnChecked Exception/Error)

1. 자바 예외(Exception) 종류 예외(Exception) 체크 예외(Checked Exception) 언체크 예외(Unchecked Exception) 에러(Error) 자바에서 예외는 크게 Trowable 클래스를 상속받은 Error와 Exception으로 나눌 수 있다. Error는 개발자가 제어할 수 없는 시스템 레벨 예외이다. Java에서의 Exception은 Runtime Exception과 Exception으로 나눌 수 있고, 언체크 예외는 Runtime Exception로, 체크 예외는 Exception으로 구분한다. 2. Checked Exception, Unchecked Exception, Error 특징 체크예외(Checked Exception) java.lang.Excepti..

[자바/java] Optional<T> 클래스란?

개요 JAVA 8 버전부터 등장한 Optional은 "T타입의 객체"를 감싸는 래퍼클래스다 Optional타입의 객체는 모든 타입의 참조변수를 담을 수 있다 특징 연산의 결과를 Optional객체에 담아서 반환 Optional객체에 담아서 반환하면, 반환된 결과가 null인지를 if문으로 체크하지 않고 Optional의 메서드를 통해 처리할 수 있다 NPE(NullPointerException)이 발생하지 않는 보다 간결하고 안전한 코드를 작성하는 것이 가능하다 *NPE : NullPointerException Optional 객체 생성 1. Optional.of() : 값을 저장. 저장하는 값이 Null이면 NPE를 발생시킨다. 2. Optional.ofNullable() : 값을 저장. 저장하는 값이..

[자바/java] 자바 문자열 배열을 문자열로 변환하기/바꾸기 (반대 과정 포함)

자바에서 문자열 배열을 문자열로, 문자열을 문자열 배열로 바꾸는 방법을 알아보자 문자열 배열에서 문자열로 기본 public static void main(String[] args) { String[] strArr = {"A", "B", "C"}; String str = String.join("", strArr); System.out.println(str); } // ABC - join 메서드는 첫 번째 인수("")를 기준으로 문자열 배열을 문자열로 만드는 String의 메서드다. 응용 public static void main(String[] args) { String[] strArr = {"A", "B", "C"}; str = String.join("/", strArr); System.out.print..

[자바/java] 람다식(Lambda) 정리하기 (4. 메서드 참조)

람다식의 메서드 참조 람다식이 단 하나의 메서드만 호출하는 경우, 메서드 참조(method reference)라는 방법으로 람다식을 간략히 할 수 있다. Function f = s -> Integer.parseInt(s); 위 기능을 풀어서 쓰면 아래와 같다. public Integer parseInt(String s) { return Integer.parseInt(s); } parseInt 메서드는 그냥 자바의 문법이고, 그냥 Integer.parseInt 메서드를 반환할 뿐이다. 이 기능은 람다식에서는 아래와 같이 간단히 작성할 수 있다. Function f = Integer::parseInt; 람다식의 일부가 생략되었지만, 컴파일러는 생략된 부분을 우변의 parseInt 메서드의 선언부로부터, 또는..

[자바/java] 람다식(Lambda) 정리하기 (3. 람다식의 다양한 형태)

기본형을 사용하는 함수형 인터페이스 람다식은 매개변수와 반환 값이 제네릭 타입뿐만 아니라 기본형을 사용할 수 있는 함수형 인터페이스들을 제공한다. 함수형 인터페이스 형식 메서드 설 명 DoubleToIntFunction DoubleToLongFunction IntToDoubleFunction IntToLongFunction LongToDoubleFunction LongToIntFunction AToBFunction double -> applyAsInt(double b) -> int (A) -> applyAsB(A) -> B 입력 : A타입 출력 : B타입 ToIntFunction ToDoubleFunction ToLongFunction ToBFuntion T -> applyAsInt(T t) -> int..

[Javascript/자바스크립트] nextSibling #text

이번 포스트에서는 개인프로젝트 진행 중 nextSibling로 노드에 접근하여 데이터를 처리하는 과정에서 배운 점을 간략하게 정리한다. 자바스크립트에서 아래와 같이 노드 간의 관계를 이용하여 접근하는 방법이 있다. 1. parentNode : 부모 노드 2. childNodes : 자식 노드 리스트 3. firstChild : 첫 번째 자식 노드 4. lastChild : 마지막 자식 노드 5. nextSibling : 다음 형제 노드 6. previousSibling : 이전 형제 노드 이 중 나는 nextSibling을 사용하여 댓글의 다음 요소를 탐색해 해당 댓글의 마지막 부분에 대댓글 입력창을 넣어주는 로직을 짜고 있었다. 처음 페이지를 랜더링(처음 서버에 페이지 정보를 응답 받을 때)을 제외하고..

[자바/java] 람다식(Lambda) 정리하기 (2. 함수형 인터페이스(Functional Interface) : 응용)

java.util.function 패키지 우리가 주로 사용하는 메서드의 타입, 매개변수 개수, 반환 타입 등, java.util.function 패키지에 일반적으로 자주 쓰이는 형식의 메서드를 함수형 인터페이스로 미리 적용해 놓았다. function 패키지를 사용해서 람다식을 구현하게 된다면, 메서드 이름도 통일되고, 재사용성이나 유지보수 측면에서도 유리하기 때문에 활용하는 것을 추천한다. 함수형 인터페이스 메서드 설명 java.lang.Runnable void run() 매개변수도 없고, 반환값도 없음. Supplier T get() 매개변수가 없고, 반환값만 있음. Consumer void accept(T t) 매개변수가 있고, 반환값이 없음 Function R apply(T t) 일반적인 매개변수 ..

[자바/java] 람다식(Lambda) 정리하기 (2. 함수형 인터페이스(Functional Interface) : 기본)

함수형 인터페이스 람다식이 메서드와 동등한 것처럼 보이지만, 사실 람다식은 익명 클래스의 객체와 동등하다. * 익명 클래스 : InnerClass의 한 종류로 이름이 없는 객체를 만들 수 있다. 메서드를 호출하려면 참조변수가 있어야 한다. 람다식으로 정의된 익명 객체의 메서드는 참조변수가 있어야 호출할 수 있다. 데이터타입 f = a -> a + a; 위의 코드에서 데이터타입은 참조형이다. 참조형이 가능하단 말은 String과 같이 클래스이거나 List같이 인터페이스가 올 수 있다는 말이다. 그리고 람다식과 동등한 메서드가 정의돼있어야 한다.(Interface면 구현, 클래스라면 오버라이딩으로 가능하다) 위에서 언급한 익명클래스 객체는 아래와 같이 생성하고 동작할 수 있다. 1 2 3 4 5 6 7 8 ..

[자바/java] 람다식(Lambda) 정리하기 (1. 개념)

람다식(Lamdba expression) JDK 1.8(자바 8버전) 이후에 추가된 람다식은 자바를 객체지향언어인 동시에 함수형 언어가 되게 해줬다. 기존의 자바를 거의 변경하지 않으면서 함수형 언어의 장점을 잘 접목시키는 데 성공하였다. 람다식은 간단히 말해서 메서드를 하나의 '식(Expression)'으로 표현한 것이고, 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해줬다. 이러한 람다의 특징 때문에 메서드를 람다식으로 표현하면 메서드 이름과 반환 값이 없어지므로, 람다식을 익명 함수(anonymous function)이라고도 한다. 특징 메서드를 사용하기 위해서는 클래스를 만들어야 하고, 그 클래스 내부에 메서드를 선언한다. 그리고 그 만들어진 클래스의 인스턴스를 생성하고(new) 변수.met..

[XMLHttpRequest/비동기 통식] xmlhttprequest 객체로 비동기 통신하기

비동기 통신XMLHttpRequest자바스크립트 비동기 통신의 근간이 되는 객체 이 객체를 사용하면 웹 페이지가 전부 로딩된 후에도 서버에 데이터를 요청하거나 서버로부터 데이터를 전송받을 수 있습니다.즉, 웹 페이지 전체를 다시 로딩하지 않고 일부분만을 갱신할 수 있게 됩니다. *AJAX란, JavaScript의 라이브러리중 하나이며 Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자이다. 예제var xhr = new XMLHttpRequest(); //XMLHttpRequest 객체 var formData = new formData(); //xhr로 보내질 데이터 폼 formData.append('boardId',boardId); formData.append..

반응형