일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Spring
- 영속성 컨텍스트
- ORM
- CI/CD
- vm
- JPA
- 자바
- spring batch
- spring cloud
- 가상화
- 스프링 배치
- 컨테이너
- web server
- spring boot
- HTTP
- Container
- Java
- 스프링
- virtualization
- 스프링 시큐리티
- 데이터베이스
- CS
- 웹 서버
- 스프링 부트
- computer science
- 백엔드
- 배포
- mysql
- Spring Security
- 도커
- Today
- Total
목록Back-End (74)
개발 일기
Iterator iter = combSet.terator()https://creampuffy.tistory.com/124 모의면접 복기 (1) - Hash, HashMap (완주하지 못한 선수)9월 24일 금요일, 모의 면접을 진행할 기회를 갖게 되었습니다. 부족했던 부분을 복기하며 하나씩 채워가고자 합니다. 1. 첫 풀이 완주하지 못한 선수를 IDE 도움 없이 라이브 코딩으로 풀어보는creampuffy.tistory.com // map의 각 키-값 쌍에 접근for (Map.Entry entry : hm.entrySet()) { if (entry.getValue() == maxScore) { winners.add(entry.getKey()); }} Iterator란? 반복자Ite..
Array 배열에서의 정렬 - 단일 기준// 오름차순 정렬int arr[] = {5,3,2,4,1};Arrays.sort(arr); // [1,2,3,4,5]// 내림차순 정렬Integer arr[] = {5,3,2,4,1};Arrays.sort(arr, Collections.reverseOrder()); // [5,4,3,2,1]그러나 위 코드에서도 알 수 있듯이 내림차순 정렬의 Collections.reverseOrder()는 객체 형태에게만 가능하기 때문에 기본형인 int가 아닌 참조형 변수 즉, 객체 타입인 Integer배열로 선언한 것을 알 수 있다. 그래서 아래와 같이 처리할 수 있긴한데 그래도 코드가 길고 번거로워진다.int arr[] = {5,3,2,4,1};Integer[] temp = ..

스택(Stack)Stack은 LIFO(Last In First Out) 구조로 되어 있으며, 쉽게 해석하면 "후입 선출" 입니다. 즉, 마지막(최근)에 넣은 것을 먼저 뺀다는 말이다.그렇다면 어떠한 자료구조를 통해서 스택을 다룰 수 있을까? 스택은 순차적으로 데이터를 추가하고 삭제하기 때문에 ArrayList와 같은 배열기반의 컬렉션 클래스가 적합하다.java.util에서 Stack.class를 제공하고 있다. 아래는 Stack class의 관련 메소드들이다.메서드설명boolean empty()Stack이 비어있는지 알려준다.Object peek()Stack의 맨 위에 저장된 객체를 반환.pop()과는 달리 Stack에서 객체를 꺼내지는 않는다.( 비었다면 EmptyStackException발생 )Obj..

ArrayListList Interface의 구현체이기에 저장 순서가 유지되고 중복을 허용한다.연속적인 데이터의 리스트 (데이터는 연속적으로 리스트에 들어있어야 하며 중간에 빈공간이 있으면 안된다)데이터의 저장 공간으로 배열 사용(배열 기반) - Object[] 배열을 이용하여 요소를 저장: 객체 배열, 다형성(모든 종류의 객체 저장 가능) 기존의 Vector를 개선한 것으로 구현원리와 기능은 동일Vector와 달리 ArrayList는 동기화처리X배열을 이용하기 때문에 인덱스를 이용해 요소에 빠르게 접근데이터를 리스트 중간에 삽입/삭제 할 경우, 중간에 빈 공간이 생기지 않도록 요소들의 위치를 앞뒤로 자동으로 이동시키기 때문에 삽입/삭제 동작은 느리다.성능을 높이기 위해 미리 용량을 정해서 크게 잡아두..

자료구조(Data Structure)란?컴퓨터 프로그램에서 데이터를 효율적으로 저장하고 관리하기 위해 설계된 구조로 Array, List, Map 등이 대표적이다.배열(Array)배열은 인덱스와 값을 일대일 대응해 관리하는 자료구조데이터를 저장할 수 있는 모든 공간은 인덱스와 일대일 대응하므로 어떤 위치에 있는 데이터든 한 번에 접근할 수 있다.일반적으로 배열은 선언할때 크기가 고정특정 인덱스에 있는 데이터를 읽거나 변경하는 데 O(1)의 시간 복잡도데이터를 순차적으로만 접근할 수 있어 위치를 모르는 경우 효율이 떨어짐.배열에 들어가는 데이터는 모두 동일한 자료형 이어야 함.배열 중간에 값을 추가하려면 기존 데이터를 모두 이동시켜야 함.// 1차원 배열int[] arr = {0, 0, 0, 0, 0, 0..

알고리즘 문제를 풀어보면 제한 시간이 있는 것을 확인할 수 있다. 시간 복잡도 (Time Complexity)알고리즘에서 시간 복잡도는 주어진 문제를 해결하기 위한 '연산 횟수'로 잡는다. 즉, 소요되는 기본 연산 수에 의거하여 시간복잡도가 계산되는데 여기서 주요 기본 연산으로는 데이터의 비교, 덧셈, 곱셈, 나눗셈 등이 있다.일반적으로 수행 시간은 1억번의 연산을 1초로 잡는다.알고리즘의 성능을 나타내는 지표로, 입력 크기에 대한 연산 횟수의 상한을 의미합니다. 시간 복잡도는 낮으면 낮을 수록 좋다.그런데 이러한 생각이 들었다. '예를들어 1차원 배열의 경우 탐색하고자하는 배열마다 만약 찾고자하는 값이 index 0에 있냐 아님 배열의 가장 마지막 Index에 위치하냐에 따라 연산 횟수가 달라지지 않나..

코테에서 터미널에서 입력받는 로직을 처리해야하는 경우가 있다. 크게 Scanner 클래스와 BufferedReader 클래스를 통해 처리할 수 있을텐데 이 두개를 중심으로 정리해보고자 한다.ScannerScanner란 사용자로 부터 입력을 받을 수 있도록 도와주는 것으로 콘솔창에서 입력이 필요할때 사용java.util.Scanner 패키지에 포함상대적으로 BufferedReader에 비해서 사용하기 용이한 메서드들을 클래스에서 많이 제공데이터를 파싱하기 위해서 내부적으로 정규 표현식 등을 사용하여 BufferedReader에 비해 내부적으로 복잡한 과정을 거쳐 처리 시간이 더 오래 걸린다. ➜ "작은 접시를 가지고 계속 오가며 음식을 조금씩 담아요"라고 타 블로그에서 설명했다.입력량이 고정되어 있고, ..

https://github.com/TanJi-LL/Tanji-Backend해당 블로그는 위 프로젝트에서 내가 직접 구현한 Spring Boot 프로젝트에서 직접 사용한 JWT를 활용한 인가(Authorization)처리 과정을 정리해보고자 한다.지금부터 설명하고자하는 로직은 회원가입이나 로그인 과정이 아닌, 특정 API 요청을 보낸 사용자가 해당 리소스에 대한 권한이 있는지 확인하는 인가(Authorization) 과정을 처리하기 위한 로직에 대한 설명이다인가(Authorization) 처리 흐름도 및 설명우선 처음으로 JwtExceptionFilter로 들어간다. 1. JwtExceptionFilter해당 필터에서는 JWT 처리 중 발생하는 예외를 처리하며, 예외 발생 시 사용자에게 적절한 응답을 반환..