목록JAVA/Concept (5)
개발 공부 기록
본 포스팅은 [이것이 자바다]를 참고하여 작성하였습니다. . . . ☑️ 예외란? 예외는 사용자의 잘못된 조작 혹은 개발자의 잘못된 코딩으로 발생하는 프로그램 오류를 말합니다. 우리는 예외가 발생하면 예외 처리를 통해 프로그램을 곧바로 종료시키지 않고 정상적으로 실행되도록 할 수 있습니다. 예외에는 Exception(일반 예외)과 RuntimeException(실행 예외)이 있습니다. Exception은 컴파일러 체크 예외로 불리기도 하며, 예외 처리 코드가 없다면 컴파일 오류가 발생하게 됩니다. 반면 RuntimeException은 컴파일 과정에서 예외 처리 코드를 검사하지 않습니다. 이 둘은 컴파일 시 예외 처리를 확인하는데 있어선 차이가 있지만, 결국 둘 모두 예외 처리가 필요합니다. JVM은 프로..
- 비트마스크(Bit mask)란? 비트마스크란 비트(bit) 단위로 데이터를 조작하고 검사하는 방법입니다. 주로 특정 비트 위치에 Flag를 설정하거나 상태를 나타내는데 사용되며, 이러한 Flag를 검사하여 코드 동작을 제어하거나 데이터를 표현할 수 있습니다. 비트 마스크는 비트 단위 연산을 사용하여 만들거나 조작할 수 있습니다. 비트마스크의 장점은 아래와 같습니다. 비트 연산인 만큼 메모리를 효율적으로 사용 가능하며 수행 시간이 빠릅니다. Dynamic Programming이나 순열 등 일반적인 배열만으로 해결하기 어려운 문제에 유용합니다. 집합을 배열의 인덱스로 표현이 가능합니다. 각 비트는 집합의 요소를 나타내며, 해당 비트가 1이면 해당 요소가 집합에 속하는 것으로 간주됩니다. 비트 마스크는 주..

스프링부트 프로젝트를 만들 때마다 JAVA의 대표적인 빌드 관리 도구인 Maven과 Gradle을 선택해야하는 상황이 옵니다. 여태까지지 Gradle을 사용하는 것이 트렌드라고 하여 별다른 생각없이 Gradle을 사용하였지만, "스프링부트 쇼핑몰 프로젝트 with JPA"란 책에서 Maven을 사용하는 것을 보고 둘의 개념과 차이점을 명확히 알고 넘어가야겠다는 생각이 들어서 글을 작성하게 되었습니다. 🔨빌드 관리 도구란? 빌드 관리 도구는 대표적으로 아래와 같은 작업을 수행합니다. 프로젝트에서 필요한 xml, properties, jar 파일들과 우리가 작성한 java 코드를 JVM이나 WAS가 인식할 수 있도록 빌드 소스 코드의 컴파일, 테스트 실행, 문서 생성, 패키징, 배포 등의 작업을 담당하며 실..

프로그래밍에서 그래프는 크게 인접 행렬과 인접 리스트로 표현할 수 있습니다. 이 두 방식은 서로 정반대의 특징을 가지고 있기 때문에 알고리즘 및 그래프의 종류에 따라 적절히 사용하여야 합니다. - 인접 행렬(Adjacency Matrix) 인접 행렬 방식은 2차원 배열에 각 노드가 연결된 형태를 기록하는 방식입니다. 아래와 같은 테스트 케이스를 봅시다. 0 2 1 3 2 3 3 0 무방향 그래프의 경우에는 아래와 같은 그림으로 나타낼 수 있습니다. 파란색으로 표시된 부분은 자신을 나타내고, 이때 무방향 그래프는 자신을 기점으로 대칭입니다. 노드 0과 노드 2를 잇는 간선이 있을 경우 행렬(0, 2)과 (2, 0)에 1을 표기해주는 방식입니다. (참고로, 방향 그래프의 경우에는 방향에 맞는 간선만 표기합니..
BufferedReader란? Java에서 텍스트를 읽을 때 사용하는 클래스로, 버퍼링 기능을 제공합니다. 이 클래스는 Reader 클래스를 확장하며, 버퍼를 사용해 한 번에 여러 문자를 읽어 오는 것이 가능하여 큰 파일이나 스트림에서 효율적인 읽기 작업이 가능합니다. StringTokenizer란? Java에서 어떠한 문자열을 특정 구분자를 기준으로 여러 토큰으로 분할할 때 사용됩니다. 이 클래스는 문자열을 처리하고 각 토큰을 순차적으로 가져오는 방법을 제공합니다. 알고리즘 문제를 풀 때, BufferedReader과 StringTokenizer를 같이 사용하는 경우가 많습니다. BufferedReader로 라인을 읽고, 해당 라인에서 특정 문자열을 읽을 경우 StringTokenizer를 사용합니다...