본문 바로가기

전체 글144

[Java] 📚 문자열 형변환 Object to String : Casting, valueOf, toString valueOf(Object obj) Returns the string representation of the Object argument. (Java docs) : 파라미터에 들어가는 Object (int, double ...)를 String 문자열 표현으로 바꿔서 반환한다. if the argument is null, then a string equal to "null"; otherwise, the value of obj.toString() is returned. (Java docs) : 파라미터가 null 이라면, String 문자열로 "null"이 반환되며, null 이 아니라면 toString() 함수값을 반환한다. Object.toString() In general, the toString me.. 2023. 3. 5.
[Spring] 🌱ResponseEntity란 / Spring Boot에서 Response하기 웹 서비스에서는 많은 정보를 송수신하게 된다. 각각의 다른 웹 서비스들이 대화하려면, 서로 정해진 약속에 맞게 데이터를 가공해서 보내야 한다. 보내는 형식을 우리는 HTTP(HyperText Transport Protocol)이라고 한다. Spring에서도 마찬가지로 HTTP에 맞게 데이터를 송수신해야 한다. 요청에 대한 응답을 HTTP형식으로 코드로 직접 작성하는 것은 쉬운 일이 아니다. 이를 만들어주는 ResponseEntity를 통해서, 빠르게 쉽게 규격에 맞는 HTTP응답을 생성해보자. HTTP란? HTTP는 HyperText Transfer Protocol의 약자로, Client와 Server사이에 요청과 응답을 처리하는 규약이다. 해당 규약을 지키게 된다면 살펴보는 것만으로도 어떤 요청을 하는.. 2022. 9. 4.
[MySQL]🐬GROUP BY 그룹화하여 데이터 조회 GROUP BY MySQL에서 유형별로 개수를 가져오고 싶은데, COUNT함수로 데이터를 조회하면 전체 개수만을 가지고 온다. 유형별로 개수를 알고 싶을 때는 컬럼에 데이터를 그룹화할 수 있는 GROUP BY를 사용해야 한다. GROUP BY를 사용할 때는 두가지를 기억해야 한다. 특정 컬럼을 그룹화하는 GROUP BY, 특정 컬럼을 그룹화한 결과에 조건을 거는 HAVING. ※ WHERE과 HAVING을 헷갈리는 경우가 많은데 WHERE은 그룹화하기 전이고, HAVING은 그룹화 후의 조건이다. 사용법 컬럼 그룹화 SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼; 조건 처리 후에 컬럼 그룹화 SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼; 컬럼 그룹화.. 2022. 8. 22.
[Data Structure / Java] ✒️ HashMap HashMap이란 HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션이다. Map 인터페이스를 상속하고 있기 때문에 Map의 성질을 그대로 가지고 있다. Map은 key와 value로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조이다. 여기서 key와 value는 모두 객체이다. HashMap은 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다. HashMap은 Hash function을 통해 key와 value가 저장되는 위치를 결정하므로, 사용자는 그 위치를 알 수 없고, 삽입되는 순서와 들어 있는 위치 또한 관계가 없다. HashMap 사용법 선언 HashMap map1 = new HashMap();//HashMap생성 .. 2022. 8. 18.
[Java] 📚 List에서 Array로 변환, Array에서 List로 변환 List에서 Array로 변환 toArray() 메서드 사용. import java.util.ArrayList; import java.util.List; public class ListToArray { public static void main(String[] args) { // List 생성 List list = new ArrayList(); list.add("Test1"); list.add("Test2"); list.add("Test3"); // List를 Array로 변환 String[] array = list.toArray(new String[list.size()]); // 출력 for (String value : array) System.out.println(value); } } Array에서 .. 2022. 8. 18.
[Java] 📚 배열 정렬하기 Arrays.sort() Java에서 Array나 List를 정렬하고 싶다면 java.util.Arrays 클래스의 sort()메서드를 사용하면 따로 정렬 로직을 구현하지 않더라도 정렬할 수 있다. Arrays 클래스는 Array의 복사, 항목 정렬, 검색과 같은 Array 조작 기능을 가지고 있다. 배열 오름차순 정렬 Arrays.sort()메서드의 매개값으로 기본 타입 Array나 String Array를 지정하면 자동으로 오름차순 정렬이 된다. 기본 타입 배열 오름차순 정렬 (Ascending sort) import java.util.Arrays; public class Sort { public static void main(String[] args) { int arr[] = {1,2,3,4,6,7,10}; Arrays.s.. 2022. 8. 17.
[Algorithm / Java] ✒️ Dijkstra (다익스트라) Dijkstra 알고리즘 다익스트라(Dijkstra) 알고리즘은 방향성을 가지는 그래프에서 최단거리를 구할 때 자주 쓰인다. 방향성을 가지는 그래프란 A에서 B노드로 이동은 가능하지만, B노드에서 A노드로는 이동할 수 없는 경우가 있는 그래프를 말한다. 즉, 노드 간의 연결된 간선이 방향과 거리 비용을 가지고 있고, 시작 노드에서 다른 노드들까지의 최단거리 비용을 구할 때 사용할 수 있다. Process 1. 거쳐 갈 혹은 시작할 노드를 방문 후 방문 처리한다. 2. 방문한 노드에서 이동할 수 있는 노드들을 탐색한다. 3. 탐색된 노드들의 계산된 거리 비용이 현재까지 저장된 최단거리보다 적을 경우 최단거리를 갱신한다. 4. 최단거리가 갱신된 노드들 중 가장 적은 거리를 가지는 노드로 이동 후 방문 처리한.. 2022. 8. 16.
[Data Structure / Java] ✒️ Tree(트리) Tree란? 비선형(Non-Linear)자료 구조이다. 이러한 구조는 단일 방향으로 각각의 데이터들이 연결되거나 나열된 것이 아니라 복수의 데이터들이 복수의 데이터들과 연결될 수 있는 구조로 설계될 수 있다. 선형 구조와 비-선형 구조의 차이 Point 선형 구조 비-선형 구조 데이터 저장 순차적으로 각 데이터를 순회할 수 있도록 저장 데이터들이 계층적으로 연결되어 저장 수준(Level) 단일 수준(Level)에서 모든 데이터를 저장 복수 수준(Level)에서 데이터를 저장 구현 복잡도 구현이 쉬움 구현이 어렵고 이해도 난해 순회 단일 동작으로 모든 데이터 순차적 순회 가능 데이터 순회에 복수의 동작 필요 메모리 활용 메모리 공간 활용 효율성 낮음 메모리 공간을 매우 효율적으로 활용 시간 복잡도 저장 공.. 2022. 8. 16.
[Algorithm / Java] ✒️ Quick Sort (퀵 정렬) Quick Sort란? 이름에서도 보이듯이 빠른(Quick) 정렬이다. 퀵 정렬의 메커니즘은 크게 다음과 같다. 하나의 리스트를 pivot(피벗)을 기준으로 두 개의 부분리스트로 나누어 하나는 pivot보다 작은 값들의 부분리스트, 다른 하나는 pivot보다 큰 값들의 부분리스트로 정렬한 다음, 각 부분리스트에 대해 다시 위처럼 재귀적으로 수행하여 정렬하는 방법이다. 알고리즘의 '분할 정복(Divide and Conquer)'을 기반으로 정렬되는 방식이다. 다만, Merge Sort(병합 정렬)과 다른 점은 병합정렬의 경우 하나의 리스트를 절반으로 나누어 분할 정복을 하고, Quick Sort(퀵 정렬)의 경우 pivot(피벗)의 값에 따라 pivot보다 작은 값을 갖는 부분리스트와 pivot보다 큰 값.. 2022. 8. 16.
[Algorithm / Java] ✒️ Insertion Sort(삽입 정렬) Insertion Sort란? 손 안의 카드를 정렬하는 방법과 유사하다. Insertion Sort는 Selection Sort와 유사하지만, 좀 더 효율적인 정렬 알고리즘이다. Insertion Sort는 2번째 원소부터 시작하여 그 앞(왼쪽)의 원소들과 비교하여 삽입할 위치를 지정한 후, 원소를 뒤로 옮기고 지정된 자리에 자료를 삽입 하여 정렬하는 알고리즘이다. 최선의 경우 O(N)이라는 엄청나게 빠른 효율성을 가지고 있어, 다른 정렬 알고리즘의 일부로 사용될 만큼 좋은 정렬 알고리즘이다. Process (Ascending) 정렬은 2번째 위치(index)의 값을 temp에 저장한다. temp와 이전에 있는 원소들과 비교하며 삽입해 나간다. '1'번으로 돌아가 다음 위치(index)의 값을 temp에.. 2022. 8. 16.