본문 바로가기

CATEGORY88

제네릭(generic) 제네릭이란 무엇일까? 제네릭(Generic)은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미합니다. 특정(Specific) 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입입니다. Generic(제네릭)의 장점 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있습니다. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없습니다. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아집니다. Generic(제네릭) 사용방법 보통은 아래 표의 타입들이 많이 사용됩니다. 타입 설명 Type Element Key Value Number Generic(제네릭)의 사용 1. 클래스.. 2022. 9. 24.
JAVA8 Optional 사용법 java8 버전부터 Optional 클래스가 지원되기 시작했습니다. Optional 내용을 알아볼까요? Java NPE 예방 자바 프로그램을 작성하다보면 null처리를 해야 할 경우가 많습니다. null 값을 제대로 처리하지 않으면 NullPointerException을 자주 만나게 됩니다. 안정적인 실행을 위해 NPE이 발생하지 않도록 중간중간 null 체크를 해줘야 하는데 if문이 반복적으로 들어가기 때문에 코드가 더러워집니다. 아래와 같은 상황에서 NPE가 발생합니다. List strs = null; strs.get(0).toString(); 위 코드를 아래와 같이 수정해야 합니다. List strs = null; strs.get(0).toString(); if(strs!=null) { //다음 로.. 2022. 9. 17.
제어자(modifier) 제어자(modifier) 제어자는 클래스, 변수, 메서드의 선언부와 함께 사용되며 부가적인 의미를 부여한다. 제어자의 종류는 접근 제어자와 그 외의 제어자로 나눌 수 있습니다. 접근 제어자(access modifier) 접근 제어자의 멤버 또는 클래스에 사용되어, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제어하는 역할을 합니다. private : 같은 클래스 내에서만 접근이 가능 default : 같은 패키지 내에서만 접근이 가능 protected : 같은 패키지 내, 그리고 다른 패키지의 자손 클래스에서 접근이 가능 public : 접근 제한이 없다 대상 사용 가능한 접근 제어자 클래스 public, default 메서드 public, protected, default, private 멤.. 2022. 9. 10.
REST API란? REST API의 탄생 REST는 Representational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었습니다. 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 합니다. REST 구성 자원 (RESOURCE) - URI 행위 (Verb) - HTTP METHOD 표현 (Representations) REST 의 특징 1. Uniform (유니폼 인터페이스) Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이.. 2022. 9. 3.
람다식(Lambda) 람다식(Lambda Expression)이란 함수를 하나의 식(expression)으로 표현한 것입니다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수(Anonymous Function)의 한 종류라고 볼 수 있습니다. 익명함수(Anonymous Function)란 함수의 이름이 없는 함수로, 익명함수들은 모두 일급 객체입니다. 일급 객체인 함수는 변수처럼 사용가능하며 매개 변수로 전달이 가능하는 등의 특징을 가지고 있습니다. 람다 방식으로는 위와 같이 메소드 명이 불필요하며, 다음과 같이 괄호() 와 화살표-> 를 이용해 함수를 선언하게 된다. // 람다 방식 (매개변수, ... ) -> { 실행문 ... } // 예시 () -> "Hello World!"; 람다식이.. 2022. 8. 30.
JAVA 8 interface 변경사항 등장 배경 인터페이스에 새로운 메서드를 구현하는 경우, 인터페이스를 구현한 구현체가 수십개라면 어떻게 해야 될까요? 아마 모든 구현체에 새로 추가한 메서드를 구현해야 할 것 입니다. 기존의 구현되어 있는 코드를 고치지 않고도 이미 공개된 인터페이스를 변경할 방법은 없을까? 라는 아이디어에서 default method가 등장하게 되었습니다. Java에서 기존의 interface는 추상 메서드만 멤버로 가질 수 있었습니다. 하지만 Java 8 부터 default 키워드를 사용해 interface에 메서드를 선언할 수 있게 되었습니다. default 키워드 public interface Interface1 { int add(int x, int y); default int mul(int x, int y) { r.. 2022. 8. 27.