Java Optional 개념 및 사용법
개발을 하다 보면 NullPointException(NPE)을 만나게 된다. 가장 많이 발생하는 에러 중 하나라고 하는데, 이를 피하기 위해선 null을 체크하는 로직이 추가되어야 한다.
Java 람다식 이중콜론 연산자 (메소드 참조 표현식)
콜론 두개 (:: – 이중 콜론 연산자)의 정식 명칭은 **메소드 참조 표현식(method reference expression)**이며, 람다식에서 파라미터를 중복해서 쓰기 싫을 때 사용합니다.
사용 방법은 [인스턴스]::[메소드명(또는 new)]으로 사용합니다. 스태틱 메소드인 경우 인스턴스 대신 클래스 이름으로 사용할 수 있습니다.
Java 아규먼트(Argument)와 파라미터(Parameter) 차이
Parameter (매개변수)
번역하면 ‘매게변수’란 뜻이다. 함수를 정의 할 때 외부로 부터 받아들이는 임의의 값을 의미한다.
Go defer 지연함수
defer 특징
defer를 호출한 함수가 종료되기 직전에 호출됨- 타 언어의
finally문과 비슷 - 주로 리소스 반환 등에 사용
- Last In First Out (LIFO)
예제
Go 맵(Map)
맵 특징
- 해시테이블, 딕셔너리(파이썬) — Key-Value로 자료 저장
- 레퍼런스 타입 (참조 값 전달)
- 비교 연산자 사용 불가 (참조 타입이므로)
- 키(Key)로 참조 타입 사용 불가, 값(Value)으로 모든 타입 사용 가능
- 순서 없음
선언 예제
Go 배열
배열 특징
- 용량(cap)과 길이(len)가 항상 같다
- 길이 고정 (vs 슬라이스: 길이 가변)
- 값 타입 — 복사 전달 (vs 슬라이스: 참조 타입)
- 전체 비교연산자 사용 가능 (vs 슬라이스: 불가)
- 대부분의 경우 슬라이스를 사용
Go 변수의 선언
Go 사용자 정의 타입 - struct
Go의 객체 지향
Go는 클래스와 상속 개념이 없다. 대신 구조체(struct) 로 객체 지향 타입을 정의하고, 구조체와 메서드를 연결하여 클래스처럼 사용한다.
- 상태와 메소드를 분리해서 정의 (결합성 없음)
- 사용자 정의 타입: 구조체, 인터페이스, 기본타입, 함수