전체 글
-
[묘공단] 코딩 테스트 합격자 되기 4주차[묘공단] 코딩 테스트 합격자 되기 책 정리 2024. 5. 6. 22:14
이 글은 책 코딩테스트 합격자 되기 - 자바편 (골든래빗 - 김희성저)의 내용이 포함되어있습니다. 해시- 해시는 해시 함수를 사용하여 변환한 값을 인덱스로 삼아 키와 값을 저장해서 빠른 데이터 탐색을 제공하는 자료구조 이다- 해시는 키를 이용해서 데이터 탐색에서 빠르다는 장점이 있다 특징 - 키 자체가 해시 함수에 의해 값이 있는 인덱스가 되므로 값을 찾기 위한 탐색 과정이 없다- 단방향으로만 검색할 수 있는 대신 빠르게 원하는 값을 검색 할 수 있다- O(1)으로 동작- 값을 적절하게 변환해야 인덱스로 사용 가능 해시 함수 우선 해시 함수를 구현할 때 고려할 사항 1. 해시 함수가 변환한 값은 인덱스로 활용해야 하므로 해시 테이블의 크기를 넘으면 안된다2. 해시 함수가 변환한 값의 충돌은 최대한 ..
-
RestFul 하다?카테고리 없음 2024. 5. 4. 15:44
이 글은RestFul 하다 라는게 뭔지 설명하기 앞서서 Rest api가 뭔지 알아 보자REST APIRepresentational State Transfer의 약자소프트웨어 프로그램 아키텍처의 한 형식이다www 와 같은 분산 하이퍼미디어 시스템을 위한 스포트웨어 개발 아키텍처의 한 형식기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일 이다HTTP URI를 통해 자원을 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD OPERATION을 적용하는 것을 의미한다REST는 자원 기반의 구조 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다HTTP Me..
-
SOLID 원칙Spring Core 2024. 4. 30. 00:08
- 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것 SRP 단일 책임 원칙- 한 클래스는 하나의 책임만 가져야 한다- 하지만 하나의 책임이라는 것은 모호하다- 클 수 있고, 작을 수 있다- 문맥과 상황에 따라 다르다- 여기에서 중요한 기준은 변경이다 -> 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 OCP 개방 - 폐쇄 원칙- 소프트웨어 요소는 확장에는 열려 있고 변경에는 닫혀 있어야 한다- 다형성을 활용하면 된다- 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현문제점- 구현 객체를 변경하려면 클라이언트 코드를 변경해야 한다- 객체를 생성하고 연관관계를 맺어주는 별도의 조립, 설정자가 필요하다-> 이걸 스프링 컨테이너가 해준다 LSP 리스코프 치..
-
[묘공단] 코딩 테스트 합격자 되기 3주차[묘공단] 코딩 테스트 합격자 되기 책 정리 2024. 4. 29. 01:14
이 글은 책 코딩테스트 합격자 되기 - 자바편 (골든래빗 - 김희성저)의 내용이 포함되어있습니다. 1. 큐1) 개념큐는 줄을 서다 라는 뜻을 가지고 있다선입 선출 즉, 먼저 들어간 데이터가 먼저 나오는 자료구조 이다 - FIFO- 삽입하는 연산은 Enqueue, 꺼내는 연산을 Dequeue 라고 한다- 큐의 동작방식은 작업 대기열, 이벤트 처리 등등 많이 활용한다 2) 과정 1. 빈 큐 하나 선언Queue queue = new LinkedList(); 2. 데이터 삽입 queue.add(3);queue.add(2);queue.add(4);queue.add(1); -삽입을 하면 3부터 순서대로 삽입을 한다.- 위 코드 처럼 순서는 3, 2, 4, 1 이 되겠다 3. 데이터 삭제queue.poll(); -..
-
[자료구조] Queue의 구현체 (우선순위 큐)자료구조 2024. 4. 28. 20:11
- 말하기에 앞서 Queue는 interface 형태로 Collection 클래스를 상속하고 있다 - 자료구조 중에서 선형구조인 큐는 일반 큐와 우선순위 큐로 나뉘어진다 선형구조(Linear Structure), 큐(Queue)💡 선형 구조 - 데이터를 저장하기 위한 기본적인 형태로 데이터가 일렬로 나열 되어 있을 뿐만 아니라 데이터 간에 순서가 있고 논리적으로 이어져 있는 구조를 의미한다 💡 큐 - 큐는 선입선출의 특성을 가지고 있다큐에 대해서 좀 더 자세하게 알고 싶으면 아래 포스팅을 확인하면 된다 https://hyeonni.tistory.com/24 Queue란? from javaQueue 란? Queue란? 사전적 의미로는 대기줄이다이러한 사전 적 의미 처럼 queue는 차례대로 처리된..
-
[자료구조] Deque란? from Java자료구조 2024. 4. 27. 15:37
Deque란?- Double-Ended Queue의 줄임말로 큐의 양쪽에서 데이터를 넣고 뺄 수 있는 형태의 자료구조를 의미한다- 다시 말해 기존의 Queue는 한쪽에서 데이터를 넣고 다른 한쪽에서 데이터를 빼는 형태인데 Deque는 둘다 데이터를 넣고 뺄 수 있다는 것이다- Queue와 Stack 을 합쳐 놓은 자료구조라고 생각 하면 된다 - Deque를 이해하려면 일단 Queue를 알아야 한다 - 아래는 Queue를 정리한 포스팅이다 https://hyeonni.tistory.com/24 Queue란? from javaQueue 란? Queue란? 사전적 의미로는 대기줄이다이러한 사전 적 의미 처럼 queue는 차례대로 처리된다큐는 후입선출(LIFO)인 스택과 다르게 선입선출(FIFO)의 형태를..
-
[자료구조] Queue란? from java자료구조 2024. 4. 27. 00:40
Queue 란? Queue란? 사전적 의미로는 대기줄이다이러한 사전 적 의미 처럼 queue는 차례대로 처리된다큐는 후입선출(LIFO)인 스택과 다르게 선입선출(FIFO)의 형태를 가진다선입선출 말 그대로 먼저 들어오면 먼저 나가는 구조이다 특징- FIFO (First In First Out) 구조 - 큐의 한 쪽 끝은 front (앞)로 정하여 삭제 연산만 수행- 다른 한 쪽 끝은 rear 로 정하여 삽입 연산만 수행- 예를 들어 빨대 형태이다 한쪽으로 들어오고 다른 한쪽으로 나간다 사용법, 예제import java.util.Queue;import java.util.LinkedList;Queue queue = new LinkedList(); // T 타입 queue 선언- 일단 java.util.Q..
-
[알고리즘] 이분 탐색 / 이진 탐색 Java알고리즘 2024. 4. 22. 19:22
이분 탐색 / 이진 탐색 - 데이터가 정렬돼 있는 상태에서 값을 찾아내는 알고리즘 이다- 데이터의 중앙값과 찾고 하는 값을 비교해서 데이터의 탐색 범위를 절반씩 좁혀가며 탐색하는 방법이다- 데이터가 정렬되어 있어야만 사용할 수 있다 기능특징 시간 복잡도타깃 데이터 탐색중앙값 비교를 통한 대상 탐색 축소 방식O(logN) 탐색 과정1) 현재 데이터셋의 중앙값을 선택한다 2) 중앙값 > 타깃 데이터 일때 중앙값 기준으로 왼쪽 데이터셋을 선택한다3) 중앙값 4) 과정 1~3 을 반복하여 중앙값 == 타깃 데이터일때 탐색을 종료한다 Java로 하는 이분 탐색 구현 1. 반복문 구현public boolean searchBinary (int[] array, int n) { int left = 0; in..