분류 전체보기
-
[Spring Boot] request, response 로그 남기기1 - Console개발기록 2022. 9. 13. 16:15
※ 트러블슈팅 - 문제 발생: 파라미터가 로깅에 사용되어 사라짐 - 문제 발생 예상 파일: RequestResponseWrapperFilter.java - 해결(미봉책): https://jeongwoo.tistory.com/59 개요 api로 들어오는 request와 response에 대해 로그를 남기기 위해 코드를 작성하던 중 기록을 남긴다. 위 이미지는 Request와 Response의 흐름도이다. Filter를 거친 후 Dispatcher Servlet을 통과하게 된다. Filter ~ Dispatcher Servlet ~ Interceptor 순으로 실행되는 것을 알아두고 시작하도록 하자. 참고 및 출처: https://www.baeldung.com/spring-http-logging https:..
-
[자료구조] 4. 스택(Stack)CS/자료구조 2022. 9. 11. 16:07
Stack의 특징 LIFO(Last In First Out) 구조로 나중에 들어온 데이터가 먼저 나가는 구조를 갖는다(ex) 접시쌓기). push()와 pop()을 통해서 데이터를 넣고 꺼낸다. Stack은 일반적으로 미리 데이터 최대 개수를 정해야한다. 따라서 저장 공간의 낭비가 발생할 수 있다. => Stack의 size를 가변적으로 가져가도록 구현하여 해결할 수도 있다. Stack 선언과 메소드 - Stack strStack = new Stack(); - push(obj) - String.join("구분자", iterable obj) - pop() Stack 선언과 값 추가, 크기 확인, 값 확인, 값 출력(각각 push(), size(), toString(), String.join()) impor..
-
[자료구조] 3-1. 큐(Queue)CS/자료구조 2022. 9. 10. 16:33
자료구조도 이 글에서는 Queue에 대해서만 알아보고, 우선순위 큐(Priority Queue)는 다음에 알아보도록 하자. Queue의 특징 FIFO(First In First Out) 구조로 먼저 들어온 데이터가 먼저 나가는 구조를 갖는다(ex) 줄서기). 이는 스택(Stack)의 FILO(First In Last Out)와 반대되는 구조이다. Enqueue는 큐에 데이터를 넣는 기능을 뜻하고, Dequeue는 데이터를 꺼내는 기능을 뜻한다. Queue 선언과 메소드 Queue 클래스를 쓰기 위해선 LinkedList 클래스도 같이 사용해야한다. LinkedList는 다음에 알아보도록 하자. - Queue strQueue = new LinkedList(); - add(obj) / offer(obj) -..
-
[자료구조] 2-1. 리스트(List) - ArrayListCS/자료구조 2022. 9. 10. 00:18
배열과 리스트의 차이점 배열과 리스트의 가장 큰 차이점은 크기가 고정되어있냐, 동적이냐로 볼 수 있다. 배열은 크기가 고정되어 있는 반면, 리스트는 크기가 정해져있지 않고 동적으로 변한다. 또한 배열은 식별자인 index가 존재하고 리스트는 존재하지 않는다. 리스트는 인터페이스이다. 이 리스트를 구현한 자료형으로 ArrayList, LinkedList 등이 있다. 그 중에서 ArrayList는 배열(index)과 리스트(가변 길이)의 장점을 합친 자료구조이다. 위 이미지와 같은 구조이기 때문에 ArrayList를 선언할 때 List로 변수를 선언할 수도 있다. ArrayList 선언과 해당 메소드 - ArrayList arrayList = new ArrayList(); - add(obj) / add(id..
-
[자료구조] 1. 배열(Array)CS/자료구조 2022. 9. 9. 23:19
배열(Array)의 특징 배열은 고정된 길이의 자료(데이터)들을 갖는다. 따라서 배열 선언 시 길이를 같이 선언해줘야한다. import java.util.Arrays; public class Array { public static void main(String[] args) { // 배열 선언 방법1 String[] weeks = new String[7]; // 값 할당 weeks[0] = "월"; weeks[1] = "화"; weeks[2] = "수"; weeks[3] = "목"; weeks[4] = "금"; weeks[5] = "토"; weeks[6] = "일"; // 배열 선언 방법2 String[] weeks2 = {"월", "화", "수", "목", "금", "토", "일"}; // 배열의 길이..
-
자료구조와 알고리즘이란?CS 2022. 9. 9. 16:18
자료구조와 알고리즘 비전공자인 나는 자료구조와 알고리즘이라는 단어를 거의 매일 들었지만 정확히 어떤 뜻인지는 몰랐던 것 같다. 따라서 이 둘의 개념을 다시 재적립하고 자료구조와 알고리즘에 대해서 정리하고자 한다. 1. 자료구조란? 코드상에서 효율적으로 데이터를 처리하기 위해서 (데이터) 구조로 만든 것을 의미한다. 자료구조, 데이터구조, data structure는 모두 같은 의미를 지닌다. cf) 현실세계에서 대표적인 자료구조로는 사전, 우편번호(5자리 우편번호로 지역 표기) 등이 있다. 2. 대표적인 자료구조 배열, 스택, 큐, 링크드 리스트, 해쉬 테이블, 힙 등 3. 알고리즘이란? 어떤 문제를 풀기 위한 절차 또는 방법을 의미한다. cf) 현실 세계의 가장 대표적인 알고리즘으로는 백종원 레시피 등..
-
[Spring Boot] application.properties에서 *.java로 property 가져오기개발기록 2022. 9. 6. 19:49
개요 구글링을 하면서 프로퍼티를 java파일로 가져오기위해 상당히 많은 삽질을 했다,, 다음엔 안 그러기 위해 지금부터 기록을 남긴다. 문제점 application.properties에 key와 value를 선언하고 ## 토큰 secretkey & 만료기간 # App Properties , expire 1day jwtSecret= TEST_JwtSecretKey accJwtExpirationMs= 1000 * 60 * 30 refJwtExpirationMs= 1000 * 60 * 60 * 24 * 14 ※ cf) 1000 * 60 * 30처럼 수식으로 쓸 경우 int가 아닌 String 으로 인식한다. 따라서 1800000처럼 계산하여 작성해야한다. *.java에서 @Value를 사용하려 했으나 null..