[Java] Spring Cloud 이해하기 -1 : 주요 특징으로 이해하기
·
Java/Spring Boot
해당 글에서는 Spring Cloud 공식 홈페이지에 나와 있는 주요 특징을 기반으로 Spring Cloud의 이해를 돕기 위해 작성한 글입니다. 1) Cloud Native Application💡 클라우드 네이티브 애플리케이션(Cloud Native Application)이란? - ‘클라우드 환경’에서 최적화된 방식으로 설계, 개발 및 배포된 애플리케이션을 말합니다. 이렇게 구성된 애플리케이션은 클라우드의 장점을 최대한 활용하여 높은 가용성, 확장성, 유연성 및 탄력성을 제공합니다. 1. 클라우드 네이티브 애플리케이션 특징 특징설명마이크로서비스 아키텍처애플리케이션을 작은 단위의 마이크로서비스로 분리하여 개발하고 각각의 서비스는 독립적으로 배포와 확장이 가능합니다.컨테이너화애플리케이션을 컨테이너에 담아 ..
[Java/Short] 약수를 구하는 다양한 방법 : int to divisor
·
Java/Short 개발
해당 글에서는 Java에서 약수를 구하는 다양한 방법에 대해서 확인해 봅니다. 1) 약수 💡 약수(Divisor)란? - 어떤 수를 나누어 떨어지게 하는 수를 그 수의 약수라고 합니다. - 예를 들어 10의 약수는 1, 2, 5, 10입니다. 2) 약수 구현 방법 1. 반복문을 이용하여 약수 찾기 💡 해당 방법은 ‘반복문을 순회’하면서 조건에 맞는 값의 약수를 찾는 방법입니다. 1. 파라미터로 전달받은 숫자(num)를 기반으로 1부터 해당 숫자를 반복문으로 순회합니다. 2. 순회하면서 전달받은 숫자(num)를 순차적인 값으로 나누었을 때 0인 경우 약수를 찾아서 리스트로 반환합니다. /** * 반복문(for)를 이용한 약수 리스트 반환 방법 * * @param {int} num * @return {Lis..
[Java/알고리즘] 동적 계획법(DP: Dynamic Programming) 이해하기
·
Java/알고리즘 & 자료구조
해당 글에서는 알고리즘 중 동적 계획법에 대한 이해를 돕기 위해 작성한 글입니다. 1) 동적 계획법(DP: Dynamic programming)💡 동적 계획법(DP: Dynamic programming) - 작은 문제들을 풀면서 그 결과를 저장해 나아가면서 전체 문제를 해결하는 알고리즘을 의미합니다. - 해당 알고리즘의 특징은 중복 계산을 줄여서 계산 속도를 높일 수 있으며 경우의 수가 많은 경우에도 효율적으로 계산할 수 있습니다. 일반적으로 재귀적으로 구현되며 메모이제이션(Memoization) 기법을 사용하여 중복 계산을 피합니다. [더 알아보기] 💡 재귀(Recursion)란? - 자기 자신을 호출하는 함수로 반복적으로 호출을 함으로써 원하는 결과를 도출 할 수 있습니다. 💡 메모이제이션(Memoi..
[Java] 개발 환경에 따라 각각 환경 파일 구성 방법: application.properties
·
Java/아키텍처 & 디자인 패턴
해당 글에서는 Spring Boot 기반 로컬, QA, 운영 환경에서 각각 다른 환경파일을 사용하는 방법에 대해서 공유합니다. 1) 개발환경 분류 이름 버전 언어 Java 11 프레임워크 Spring Boot 2.7.12 프레임워크 Spring Framework 6.0.9 의존성 관리 Gradle 7.6.1 개발 툴 IntelliJ IDEA 2023.1 API 테스트 툴 Postman 2) application.properties 파일 설정 💡 application.properties 란? - Spring Boot 애플리케이션의 구성 속성을 설정하는 데 사용되는 파일입니다. - 이 파일은 애플리케이션의 클래스 경로에 위치하며, 키-값 쌍의 형식으로 구성됩니다. 이 파일을 사용하면 애플리케이션의 동작을 구..
[Java/Short] 두 개의 배열을 하나의 배열로 합치는 다양한 방법
·
Java/Short 개발
해당 글에서는 두 개의 타입이 동일한 배열을 하나로 합치는 방법에 대해서 공유합니다. 1) System.arraycopy() 메서드를 이용하여 구성 💡 해당 방법은 System.arraycopy() 함수를 이용하여서 새로운 배열로 구성하는 방법입니다. 💡 이는 내부 함수 java.lang.System를 이용하여서 두 개의 배열을 하나로 조합합니다. // 두 개의 배열 생성 int[] arr1 = {1, 2, 3}; int[] arr2 = {4, 5, 6}; // 두 개의 배열을 합쳐 새로운 배열 생성 int[] arr3 = new int[arr1.length + arr2.length]; System.arraycopy(arr1, 0, arr3, 0, arr1.length); System.arraycopy(..
[Java/Short] 배열/리스트의 요소를 역순으로 재구성 방법 : forward to reverse
·
Java/Short 개발
해당 글에서는 배열/리스트를 역순으로 재구성하는 방법에 대해서 알아봅니다. 1) 배열의 요소를 역순으로 재구성 방법 1. for문 인덱스를 활용한 방법-1 💡 배열을 역순으로 순회하면서 파라미터로 전달받은 값을 새롭게 구성한 값으로 대입하는 방법입니다. 1. 배열의 길이만큼 새로운 배열을 생성합니다. 2. for문을 이용하여 역순으로 배열을 순회합니다. 이를 이용하여 전달받은 값을 새로운 배열에 대입합니다 // 1 public static int[] reverseArray(int[] arr) { // 1. 값이 존재하는 배열과 새로 넣으려는 배열을 선언합니다. int[] result = new int[arr.length]; for (int i = 0; i < arr.length; i++) { result..
[Java/알고리즘] 완전 탐색(Exhaustive Search) 이해하기 -2 : 종류 별 이해
·
Java/알고리즘 & 자료구조
해당 글에서는 탐색 알고리즘 중 탐색 알고리즘에서 완전 탐색의 종류 별로 상세하게 이해를 돕기 위해 작성한 글입니다.   💡 [참고] 이전에 작성한 글을 읽고 오시면 도움이 됩니다. [Java/알고리즘] 완전 탐색(Exhaustive Search) 이해하기 -1 : 정의 및 종류해당 글에서는 탐색 알고리즘 중에서 완전 탐색 알고리즘에 대해 이해하고 각각의 종류에 대해 이해 및 시간 복잡도에 대해 확인해 봅니다. 1) 완전 탐색(Exhaustive Search) 💡 완전 탐색(Exhaustive Searadjh54.tistory.com    1) 완전 탐색(Exhaustive Search)💡 완전 탐색(Exhaustive Search)- ‘모든 가능한 경우의 수를 탐색’하여 ‘최적의 결과를 찾는 방법..
[Java/알고리즘] 완전 탐색(Exhaustive Search) 이해하기 -1 : 정의 및 종류
·
Java/알고리즘 & 자료구조
해당 글에서는 탐색 알고리즘 중에서 완전 탐색 알고리즘에 대해 이해하고 각각의 종류에 대해 이해 및 시간 복잡도에 대해 확인해 봅니다.  1) 완전 탐색(Exhaustive Search)💡 완전 탐색(Exhaustive Search)이란?- ‘모든 가능한 경우의 수를 탐색’하여 ‘최적의 결과를 찾는 방법’을 의미합니다.- 모든 가능성을 고려하기 때문에 항상 최적의 해를 찾을 수 있지만 경우의 수가 매우 많은 경우 시간과 메모리의 부담이 커질 수 있습니다. 그렇기에 문제의 특성에 따라 다른 탐색 기법을 사용하는 것이 좋습니다.  2) 완전 탐색의 종류 💡완전 탐색의 종류- 탐색 알고리즘 중에서 '완전 탐색'에 대해 이해하고 각각의 탐색 종류에 대해서 이해합니다.알고리즘 종류설명장점단점브루트 포스‘모든 ..
[Java/자료구조] 선형 배열(Linear Array) 이해하기
·
Java/알고리즘 & 자료구조
해당 글에서는 알고리즘 중 선형 배열에 대해 이해를 돕기 위해 작성한 글입니다. 1) 선형 배열(Linear Array)💡 선형 배열(Linear Array) 이란? - 데이터 요소들이 ‘일렬로 연결되어 있는 배열’을 의미합니다. - 각 요소들은 인덱스라는 고유한 숫자로 식별되며 배열을 선언할 때 각 요소에 데이터 타입과 배열의 길이를 지정해야 합니다. [ 더 알아보기 ] 💡 비선형 배열(Non-Linear Array) - 데이터를 일렬로 나열하지 않고, 특정한 규칙에 따라 구조를 형성하는 배열을 의미합니다. - 대표적인 비선형 배열로는 트리(tree)와 그래프(graph)가 있습니다. 트리는 부모-자식 관계를 가진 노드들이 연결된 구조이며, 그래프는 노드와 간선(edge)으로 이루어진 구조입니다. 2)..
[Java/알고리즘] 재귀 함수(Recursion Function) 이해하기
·
Java/알고리즘 & 자료구조
해당 글에서는 재귀함수에 대해 이해하며 다양한 예시와 재귀함수를 이용한 알고리즘을 기반으로 이해를 돕기 위해 작성한 글입니다. 1) 재귀함수(Recursion Function)💡 재귀함수(Recursion Function)란? - 함수 내부에서 ‘자기 자신을 호출’하는 함수를 의미합니다. 이를 통해서 함수가 자신을 반복적으로 호출하면서 원하는 결과를 도출할 수 있습니다. - 단, 재귀함수를 사용하는 경우 함수 호출이 계속해서 쌓이기 때문에 호출 스택이 많아져서 성능이 저하될 수 있습니다. 따라서 재귀함수를 작성할 때는 무한루프에 빠지지 않도록 종료 조건을 명확하게 설정해주어야 합니다. [ 더 알아보기 ] 💡 호출 스택(Call Stack)이란? - 프로그램에서 함수나 메서드를 호출할 때 해당 함수나 메서..