[IntelliJ] IntelliJ에서 SonarQube/SonarLint 연결방법
·
개발 Tip/IntelliJ
해당 글에서는 IntelliJ에서 구성된 SonarQube 연결하는 방법에 대해 알아봅니다. 1) 해당 작업이 필요한 이유 💡 해당 작업이 필요한 이유 - IntelliJ 내에서 SonarLint로 컴파일 시점에 문제점을 찾고 해결을 할 수 있지만 SonarLint로는 매 페이지마다 찾아서 확인을 하고 해결해야 되는 점이 있습니다. - 또한 프로젝트가 배포되기 이전에 SonarQube로 발견되는 실제 배포 이전에 Bug를 먼저 찾아서 해결한 뒤 배포를 할 수 있도록 구성할 수 있기에 해당 과정이 필요합니다. 2) 설정 과정: IntelliJ 1. Settings… 을 선택합니다. 2. plugin - SonarLint를 검색하고 설치를 합니다. 3. 플러그인 적용을 위해 IDE 다시 시작 버튼을 누릅니다..
[Java] 람다식(Lambda Expression), 함수형 인터페이스(Functional Interface) 이해하기
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 Java에서 사용되는 람다식(Lambda Expression)과 함수형 인터페이스(Functional Interface)에 대해 알아봅니다. 1) 순수 함수, 일급 함수, 고차 함수 💡 순수 함수, 일급 함수, 고차 함수 - 람다, 함수형 인터페이스를 이해하기 이전에 일반 함수, 일급 함수, 고차 함수에 대해서 이해를 하고 이후 상세히 알아봅니다. 용어 설명 예시 순수 함수(Pure function) - 매개 변수가 존재하거나 존재하지 않을 수 있고 연산을 수행한 후 결과를 반환하는 함수를 의미합니다. - 일반 함수 일급 함수(First-class function) - 함수를 변수에 할당하거나 다른 함수의 인자로 전달하거나 함수의 반환 값으로 사용할 수 있는 특성의 함수를 의미합니다. - ..
[Java/오류노트] SonarLint : "Random" objects should be reused
·
Java/오류노트
해당 글에서는 Java에서 SornarLint에서 발생하는 오류에 대한 해결방법에 대해 알아봅니다. 1) 문제점 💡 "Random" objects should be reused 문제점- 객체를 재 사용해야 한다는 의미입니다. 이는 일반적으로 프로그래밍에서 객체를 생성하고 사용할 때 발생하는 비용을 줄이기 위해 권장되는 접근 방식입니다.- 객체를 반복적으로 생성하고 버리는 것보다, 이미 생성된 객체를 재사용하여 성능을 향상시킬 수 있습니다. 이를 통해 메모리 사용량을 줄이고 시스템 리소스를 효율적으로 활용할 수 있습니다.  💡 아래와 같이 new Random()으로 객체를 생성해서 만드는 코드 부분에서 해당 Lint 오류가 발생하였습니다.      2) 해결방안💡 해결방안- new Random() 형..
[Java/오류노트] SonarLint : Use try-with-resources or close this "CloseableHttpClient" in a "finally" clause.
·
Java/오류노트
해당 글에서는 Java에서 SornarLint에서 발생하는 오류에 대한 해결방법에 대해 알아봅니다.  1) 문제점💡 Use try-with-resources or close this "CloseableHttpClient" in a "finally" clause. 문제점- 리소스 누출을 피하기 위해 "try-with-resources" 문을 사용하거나 "finally" 절에서 "CloseableHttpClient"를 닫는 것이 권장됩니다. 이렇게 하면 예외가 발생하더라도 리소스가 제대로 닫히게 됩니다.    💡 변경 이전 소스코드public Map httpPost(String url, String queryParams) { try { // HTTPClient 객체 생성 C..
[Java/오류노트] SonarLint : A "NullPointerException" could be thrown; "getBody()" can return null.
·
Java/오류노트
해당 글에서는 Java에서 SonarLint에서 발생하는 오류에 대한 해결방법에 대해 알아봅니다. 1) 문제점💡 A "NullPointerException" could be thrown; "getBody()" can return null. 문제점- "NullPointerException"라는 오류 메시지는 null 값을 접근하려고 할 때 발생합니다. 이 경우 "getBody()" 메소드가 null을 반환할 수 있으며, 이로 인해 예외가 발생할 수 있습니다. 이 오류는 일반적으로 초기화되지 않은 객체의 메소드나 속성에 접근하려고 할 때 또는 존재하지 않는 객체에 접근하려고 할 때 발생합니다.- 해당 오류에서는 ResponseEntity result 값으로 제너릭 타입 형태의 ‘result’ 값에 Null..
[Java/알고리즘] 정렬 알고리즘(Sort Algorithm) 이해하기 -1 : 기본 구조 및 종류
·
Java/알고리즘 & 자료구조
해당 글에서는 정렬 알고리즘에 대해 기본적인 구조와 종류에 대해서 알아봅니다. 💡 [참고] 전체 알고리즘 구성 중에 '정렬 알고리즘'에 대해 알아봅니다. 1) 정렬 알고리즘(Sort Algorithm) 💡 정렬 알고리즘(Sort Algorithm) - ‘데이터’를 ‘특정한 기준에 따라 순서대로 정렬’하는 알고리즘을 의미합니다. 1. 정렬 알고리즘의 특징 💡 정렬 알고리즘의 특징 - 정렬 알고리즘만이 가지고 있는 특징에 대해서 알아봅니다. 특징 설명 시간 복잡도 일부 알고리즘은 작은 데이터 집합에 대해 빠르지만, 큰 데이터 집합에 대해 느릴 수 있습니다. 알고리즘의 시간 복잡도를 고려하여 적절한 정렬 알고리즘을 선택해야 합니다. 안정성 안정적인 정렬 알고리즘은 동일한 값의 순서가 바뀌지 않는 특징을 가지고..
[Java/디자인패턴] 싱글턴 패턴(Signleton Pattern) 이해하기 -1 : 정의 및 종류
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 싱글턴 패턴(Signleton Pattern)에 대해서 이해를 돕기 위해서 공유하기 위한 목적으로 작성한 글입니다. 1) 디자인 패턴(Design Pattern)💡 디자인 패턴(Design Pattern) - 소프트웨어에서 특정 문제를 해결하기 위해 개발된 재사용성이 가능한 솔루션을 의미합니다. - 디자인 패턴을 통해 재사용성, 유지 보수성, 확장성을 향상하는데 도움이 됩니다[ 더 알아보기 ] 💡 디자인 패턴의 종류 1️⃣ 생성 패턴 (Creational Patterns) - 객체의 인스턴스화 과정을 추상화하고, 객체를 생성하는 방법을 다양화하는 패턴입니다. 이에는 Singleton, Factory Method, Abstract Factory 등이 포함됩니다. 2️⃣ 구조 패턴 (Struc..
[Java/알고리즘] 깊이 우선 탐색(DFS) / 너비 우선 탐색(BFS) 이해하기 -1 : 이론 및 구조
·
Java/알고리즘 & 자료구조
해당 글에서는 알고리즘 중에서 깊이우선탐색(DFS) / 너비우선탐색(DFS)에 대해서 알아봅니다. 1) 깊이우선탐색(DFS) / 너비우선탐색(DFS) 전체 구조 💡 깊이우선탐색(DFS) / 너비우선탐색(DFS) 전체 구조 - 해당 글에서는 알고리즘 구조에서 ‘탐색 알고리즘’ - ‘완전 탐색’ - ‘비 선형 구조 탐색’에 해당하는 깊이 우선 탐색(DFS) / 너비 우선탐색 (BFS)에 대해 알아봅니다. 💡 [참고] 깊이 우선 탐색(DFS) / 너비 우선 탐색(BFS)을 이해하기 전에 전제로 알면 좋은 알고리즘과 자료구조입니다. 분류 주제 링크 알고리즘 완전 탐색 알고리즘 https://adjh54.tistory.com/196 알고리즘 완전 탐색 알고리즘 : 종료 https://adjh54.tistory.c..
[Java/자료구조] 비선형구조 이해하기 -3 : 그래프 (방향, 무방향 그래프)
·
Java/알고리즘 & 자료구조
해당 글에서는 자료구조에서 비선형구조 중 그래프에 대해 알아봅니다. 💡 [참고] 자료구조의 전체 구조 - 해당 글에서는 자료구조 중 비선형 구조 > 그래프(방향트리/무방향 트리)에 대해 알아봅니다. 1) 비선형 구조(Non Linear) 💡 비선형 구조(Non Linear) - 데이터를 저장하기 위한 방법으로 데이터 간의 관계를 이루면서 ‘계층적인 구조‘를 가지며 ‘일렬로 나열되지 않은 자료구조’ 형태를 의미합니다. - 일련 되지 않은 자료구조는 계층적으로 데이터의 관계가 부모-자식 관계, 연결 관계, 또는 소속 관계 등을 가지고 있어서 계층적이거나 상호 연결되어 있습니다. - 대표적인 비선형 구조는 트리(Tree), 그래프(Graph)등이 이에 해당합니다. 💡 [참고] 비선형 구조에서 트리에 대해 궁금..
[Java/자료구조] 비선형구조 이해하기 - 2 : 균형 트리(AVL, 레드-블랙, B-트리)
·
Java/알고리즘 & 자료구조
해당 글에서는 비선형 구조 중 균형트리를 응용한 AVL, 레드-블랙, B-트리에 대해서 알아봅니다. 💡 [참고] 이전에 작성한 비선형 구조에 이어지는 글입니다. [Java/자료구조] 비선형구조 이해하기 - 1 : 트리(일반트리, 이진트리) 해당 글에서는 자료구조에서 비 선형 구조에 대해 이해하며, 그 종류인 일반트리/이진트리에 대해서 알아봅니다. 💡 [참고] 자료구조의 전체 구조 - 해당 글에서는 자료구조 중 비선형 구조에 adjh54.tistory.com 1) 비 선형구조(Non Linear) 💡 비 선형구조(Non Linear) - 데이터를 저장하기 위한 방법으로 데이터 간의 관계를 이루면서 계층적인 구조를 가지는 ‘일렬로 나열되지 않은 자료구조’ 형태를 의미합니다. - 일련 되지 않은 자료구조는 계..