Stack & Queue
·
CS/Data Structure
1.Stack 가장 마지막으로 들어간 데이터가 가장 첫 번 째로 나오는 성질을 가진 자료 구조 LIFO(Last in First Out) 구조 삽입 및 삭제에 O(1), 탐색에 O(n)의 시간 복잡도를 가진다. 한 쪽 방향에만 자료를 추가, 삭제 할 수 있으며 가장 마지막에 삽입된 자료의 위치를 `top`이라 한다. Stakc은 `top`에만 접근이 가능하기 때문에 그 외의 위치에 대한 데이터 추가 및 삭제가 불가능하다. 웹 브라우저 방문 기록, 실행 취소, 역순 문자열 만들기, 후위 표기법 계산 등에 쓰인다. Push : 데이터를 스택의 맨 위에 추가. Pop : 스택의 맨 위에 있는 데이터를 제거. + 장점 top 위치의 데이터에 바로 접근하므로 데이터 삽입, 삭제의 시간 복잡도가 O(1)로 빠르다...
LinkedList
·
CS/Data Structure
연결리스트는 데이터 요소가 순서대로 연결된 데이터 구조이다. 각 요소는 자신의 데이터와 다음 요소를 가리키는 포인터(참조)로 이루어져 있다. 이러한 구조로 배열과 달리 연결리스트는 각 요소의 위치가 연속적이지 않을 수 있다. Singly Linked List (단일 연결 리스트) 각 요소가 데이터와 다음 요소를 가리키는 포인터로 이루어져 있다. 맨 끝 요소는 다음 요소를 가리키는 포인터가 null이다. Doubly Linked List (이중 연결 리스트) 각 요소가 데이터와 이전 요소를 가리키는 포인터, 다음 요소를 가리키는 포인터로 이루어져 있다. 양방향으로 순회가 가능하다. [단일 연결 리스트 Code] public class LinkedList { private Node head; public L..
Array
·
CS/Data Structure
같은 타입의 변수들로 이루어져 있으며, 순서대로 나열한 선형 자료구조 각 원소는 배열에서 고유한 인덱스를 가진다. 인덱스를 사용하여 특정 위치의 원소에 접근할 수 있다. O(1)의 시간복잡도를 가진다. 고정된 크기(정적)를 가지며, 각 원소에 메모리상 연속적으로 저장된다. [Code] 정수형 배열 선언과 초기화 int[] numbers = new int[5]; // 크기가 5인 정수형 배열 생성 // 문자열 배열 선언과 초기화 String[] names = new String[3]; // 크기가 3인 문자열 배열 생성 public class Main { public static void main(String[] args) { // 정수형 배열 선언과 초기화 int[] numbers = new int[5]..
Dto
·
카테고리 없음
소스 분석을 하면서 보기 어려웠던 것은 전달받는 데이터를 request.getParameter로 하나하나 코딩한 부분이다. 심한 건 메서드 하나에 파라미터로 받고 전달하는 코드만 몇십 줄이 넘는다. 디버거로 값을 일일히 확인하는 것도 쉽지 않았고 비효율적이라 생각. form에서 받은 값들을 Dto에 담는다면 코드량은 당연히 줄 것이고 Dto 클래스명만 봐도 어떤 데이터가 전송, 전달되는 지 쉽게 확인이 가능할 것... 이라고 말은 했지만 소스가 너무 방대하고 그것을 리팩토링할 실력은 없다.. 여기서 내가 가져가야 할 것은 Dto가 무엇이고 왜 사용해야하는 지, 사용했을 때의 장점, 그리고 간단한 예제를 만들어봄으로써 Dto 사용 습관이다. DTO란? Domain Transfer Object. 데이터 전송..
RestTemplate
·
카테고리 없음
RestTemplate이란? 스프링에서 HTTP 통신 기능을 손쉽게 사용하도록 설계된 템플릿 기본적으로 동기 방식을 처리 RESTful 원칙 -> RESTful원칙을 지키면서 외부 API를 사용할 수 있게 해주는 도구. 두 개의 프로젝트 서버포트를 다르게 해서 가동. port1 : 9090 -> 데이터를 가져올 수 있는 외부 API port2 : 8080 -> RestTemplate을 사용하여 8080의 데이터를 Get 먼저 port1의 Dto와 Controller Port1 - MemberDto @Getter @Setter @ToString public class MemberDto { private String name; private String email; private String organiza..
서버 중복 오류
·
오류 모음집
문제 Identify and stop the process that's listening on port 8350 or configure this application to listen on another port. 서버가 켜져있는 상태로 강제 종료하게 되면 프로그램만 종료되고 서버는 계속 켜져있는 상태. 해결방법 netstat -ano | findstr 포트번호 taskkill /f /pid 포트번호의 프로세스아이디(맨 오른쪽) 명령 프롬포트로 위의 코드를 입력하면 서버 종료해줌.