분류 전체보기 175

[탐색] 이진 탐색(Binary Search)

👉 특징 데이터가 정렬되어 있는 상테에서 원하는 값을 찾아내는 알고리즘 대 상 데이터의 중앙값과 찾고자 하는 값을 비교해 데이터의 크기를 절반씩 줄이면서 대상을 찾는다. 👉 코드 현재 데이터셋의 중앙값(median)을 선택한다. 중앙값 > 타깃 데이터(target data)일 때, 중앙 값 기준으로 왼쪽 데이터셋을 선택한다. 중앙값 < 타깃 데이터일 때, 중앙값 기준으로 오른쪽 데이터셋을 선택한다. 과정 1~3을 반복하다가 중앙값 == 타깃 데이터일 때 탐색을 종료한다. public class test { static int[] arr; public static void main(String[] args) { arr = new int[]{5, 7, 8, 15, 20, 38, 52, 58, 77}; bin..

[정렬] 병합 정렬(merge sort)

참고 영상 사이트는 여기 입니다. 👉 특징 👉 코드 전체 어떤 느낌인지는 알겠지만, 코드적으로 확 와닿지는 않는다!! public class Test { private static void mergeSort(int[] arr) { int[] tmp = new int[arr.length]; mergeSort(arr, tmp, 0, arr.length - 1); } private static void mergeSort(int[] arr, int[] tmp, int start, int mid, int end) { if (start < end) { int mid = (start + end) / 2; mergeSort(arr, tmp, start, mid); mergeSort(arr, tmp, mid + 1, m..

[브라우저] PNA CORS(formerly known as CORS-RFC1918)

💡 내용이 틀린 부분이 있을 수 있습니다. 업무를 하면서 PNA CORS를 접하게 되어 작성하게 되었습니다. 👉 PNA CORS? Chrome is deprecating access to private network endpoints from non-secure websites as part of the Private Network Access specification. The aim is to protect users from cross-site request forgery (CSRF) attacks targeting routers and other devices on private networks. 즉, 의역을 하면 크롬은 안전하지 않는 웹사이트에서 Private Network Access 사양으로 ..

회사 업무 2023.08.01

[탐색] 너비 우선 탐색(BFS)

💡 먼저 부족하지만 저의 글을 읽어주셔서 감사드립니다!!! 참고 정도로 해주셨으면 좋겠습니다. 해당 강의는 여기 사이트 입니다. 너비 우선 탐색(Breadth First Search) 시작 노드에서 인접 노드를 모두 방문하고, 방문한 노드에서 인접 노드를 모두 방문하는 것을 반복 그래프 순회 방법 중 하나 간선에 가중치를 줄 수 있다? 👉 큐(Queue) 보통 Queue는 LinkedList 로 만든다. public class App { static final int MAX_N = 10; // 문제에 따라서 최대 노드 개수를 정해줘야 한다. // 어떤 기준으로 정할까? static int vertex, line; static int[][] Graph = new int[MAX_N][MAX_N]; // 인접..

[탐색] 깊이 우선 탐색(DFS)

💡 먼저 부족하지만 저의 글을 읽어주셔서 감사드립니다!!! 참고 정도로 해주셨으면 좋겠습니다. 해당 강의는 여기 사이트 입니다. 깊이 우선 탐색(Depth-First Search) 하나의 노드에서 시작해 마지막 지점까지 계속 그래프를 탐색 미로찾기, 당신을 알 수 있는 친구 찾기 등 내가 강의를 들으면서 생각한 중요한 부분은 노드(node)라고 불리는 각 지점들과 지점들을 연결하는 간선(edge) 이다. 인접행렬의 1과 0 즉, 연결이 되어있으면 1 아니면 0을 이해하면 된다.! 이미지에서와 같이 0부터시작하여 1번 → 3번 → 4번 → 2번 순서대로 간다. 여기서 어떻게 우리는 1번에서 3번 4번으로 갈 수 있을까 생각하는데 코드를 한 번 봤으면 좋겠다. if (!visited[next] && Grap..

[정렬] 삽입정렬(Insertion Sort)

💡 해당 글은 여기 블로그 를 참고하여 작성했습니다. 👉 특징 해당 배열 안에서 교환하는 방식으로, 다른 메모리 공간이 필요하지 않다. ⇒ 제자리 정렬(in-place sorting) 👉 나만의 코드 해석 해당 코드에서 중요하다고 생각 되는 변수는 prev 이다. Process 두 개의 인덱스 값을 기준으로 움직안다. prev, index for 문의 index 값을 기준으로 이전 값들을 비교한다. int temp = arr[index]; arr[prev] > temp 만약, 이전 값(prev)이 큰 경우에는 prev + 1 의 인덱스 위치에 prev 인덱스의 값을 넣어준다. arr[prev + 1] = arr[prev]; 그리고 prev--; 를 해줘서 한 칸 이전으로 움직인다. 마지막으로 prev +..

[자바 문법] Java Collection Framework(JCF)

Hierarchy of Collection Framework (계층적 콜렉션 프레임워크) 인터페이스는 List / Set / Map / Queue List ArrayList, LinkedList (구현) 순서가 있고, 중복을 허용 O Set SortedSet(상속) 순서가 없고, 중복을 허용 X Queue Deque(상속) FIFO(First In First Out) Map HashTable LinkedHashMap Key의 순서 보장이 필요한 경우 HashMap Key의 순서 보장이 필요없는 경우 SortedMap(Extends) TreeMap 여러 특징 중 일단, 저장과 동시에 자동 오름차순으로 정렬이 된다. Iterator (작성필요) 참고 사이트 https://testingpool.com/coll..

[Java] 큐(Queue)

★내용 추가 필요★ 참고 사이트 https://st-lab.tistory.com/181 큐(Queue) 자바에서 제공하 큐는 인터페이스 가장 큰 특징은 ⭐FIFO(First In First Out) ⭐이다. 👉 큐 인터페이스를 구현한 클래스 PriorityQueue(우선순위 큐) ArrayDeque(배열 양방향 큐) LinkedList(연결리스트) ⇒ List, Deque, Queue 로 상속 받을 수 있다. ArrayList 랑 헷갈릴 수는데 그 외, 👉 큐 인터페이스의 메서드 인텔리제이 등의 IDE에 들어가서 인터페이스 클릭을 해보자! add offer 마지막에 요소를 추가, 가득 차면 에러 던짐 ⇒ add 마지막에 요소를 추가, 가득 차면 에러 안 던짐 ⇒ offer remove pool 첫 번째 ..

스프링 부트 인터뷰 질문 - 기본편

커리어리 글에서 가져왔습니다. 출처 https://careerly.co.kr/comments/86923 📌 스프링 부트의 장점은 어떤 게 있을까요? - 개발 속도 향상 - 간편한 구성 - 확장성 향상 - 생산성 향상 📌 스프링 부트의 주요 구성 요소에는 어떤 게 있나요? - Spring Boot auto-configuration - Spring Boot CLI - Spring Boot starter POMS - Spring Boot Acutators 📌 스프링이 아닌 스프링 부트를 사용하는 이유가 뭐가 있을까요? - Auto Configuration - Component Scanning - 서버 내장 - InMemory DB - Actuators 📌 스프링 부트 starter dependency에는 어떤..

면접준비 2023.07.17

주니어 자바 개발자를 위한 100가지 질문

조서희, 주니어 자바 개발자를 위한 100가지 질문 Java Web jsp와 servlet의 차이점은 무엇인가요? jsp를 기본 제공하는 객체는 무엇이 있나요? 4개의 jsp scope에는 무엇이 있나요? 세션과 쿠키의 차이는 무엇인가요? 세션 과정을 설명해주세요 쿠키를 사용할 수 없을 때 세션을 대신 사용할 수 있을까요? 스프링 MVC와 struts의 차이는 무엇인가요? SQL Injection을 피할 수 있는 방법을 설명해주세요. XSS 공격이 무엇이고, 어떻게 피할 수 있는지 설명해주세요. CSRF 공격이 무엇이고, 어떻게 피할 수 있는지 설명해주세요. reflection reflection이란 무엇인가요? 자바 직렬화란 무엇인가요? 어떤 상황에서 필요한가요? 동적 프록시란 무엇인가요? 동적 프록시..

면접준비 2023.07.17