백엔드 개발을 하면서 Optional이 자주 쓰인다. 기능들에 대해 잘 아는 것도 좋지만, Optional에 대해 어느 정도의 이해도를 가지고 용도에 맞게 사용하는지도 중요하다는 생각이 들어서 정리해보겠다. Optional이란?Optional은 Java8 버전부터 도입되었으며, '값이 없는 경우'를 표현하기 위한 용도로 사용되는 클래스이다. Optional 클래스는 Java 제네릭을 사용하여 만들어져 있으므로, 어떤 타입의 객체라도 값이 없을 수 있는 겨우에 Optional을 사용하여 표현할 수 있다. 그러면, Optional이 왜 만들어졌고, 어떨 때 사용하면 되는지 알아보자. Optional 사용 목적API 공식 문서에 보면 Optional을 만든 의도가 다음과 같이 적혀있다. API Note :Op..
학습/Java
1. Stack(스택) 스택은 삽입과 삭제 연산이 후입선출(LIFO : Last-in first-out)로 이뤄지는 자료구조이다. 후입선출은 삽입과 삭제가 한 쪽에서만 일어나는 특징이 있다. 스택 용어 위치 top : 삽입과 삭제가 일어나는 위치 연산 push : top 위치에 새로운 데이터를 삽입하는 연산 pop : top 위치에 현재 있는 데이터를 삭제하고 확인하는 연산 peek : top 위치에 현재 있는 데이터를 단순 확인하는 연산 스택은 깊이 우선 탐색(DFS : Depth First Search), 백트래킹 종류의 코딩 테스트에 효과적이므로 반드시 알아 두어야 한다. 후입선출은 개념 자체가 재귀 함수 알고리즘 원리와 일맥상통하기 때문이다. 2. Queue(큐) 큐는 삽입과 삭제 연산이 선입선출..
1. Array(배열) : 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 배열의 값은 인덱스를 통해 참조할 수 있으며, 선언한 자료형의 값만 저장할 수 있다. 특징 인덱스를 사용하여 값에 바로 접근할 수 있다. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다. 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다. 구조가 간단하므로 코딩 테스트에서 많이 사용한다. 2. List(리스트) : 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조 특징 인덱스가 없으므로 값에 접근하려면 Head 포인터부터 순서대로 접근해야 한다. 다시 말해 값에 접근하는 속..
1. JDK 다운로드 (2023.02.15) jdk 17을 설치할거다. 17버전을 고른 이유는 다음 블로그를 참고했다. https://velog.io/@devbro/Java-업데이트-설명-어떤-Java-버전을-설치해야-하나 [Java 업데이트 설명] 어떤 Java 버전을 설치해야 하나? Java를 필요로 하는 애플리케이션 또는 최초의 자바 프로그램 개발로 어떤 Java를 설치하면 좋을지 모르겠다고 고민하는 초보 개발자나 비전공자 개발자를 대상으로 설명합니다.오래전부터 Java를 velog.io 다음 사이트 들어가서 jdk 17을 다운받는다. https://www.oracle.com/kr/java/technologies/downloads/#jdk17-windows Download the Latest Jav..