본문 바로가기

728x90
반응형

전체 글

(187)
1장-2. Spring 라이브러리, Dependencies Spring에서 Web 을 만들기 위해서는 이정도의 library의 양은 기본적이다 내가 import 하지않은 것들에 대해서는 내가 필요한 라이브러리가 필요한걸 import, 또 import하는 방식으로 불러온다. Dependencies는 의존도를 보여준다. 기존에는 tomcat과 같은 라이브러리들을 import해서 java코드를 밀어넣는 형식으로 Spring을 사용했지만 현재는 이미 내장되어있어 편하게 개발할 수 있게되었다. Logging 이란? [출처: https://velog.io/@woply/spring-SLF4J와-Logback을-이용해-로그-사용하기] - 운영 시스템에서는 System.out.println(); 같은 시스템 콘솔로 필요한 정보를 출력하지 않는다고 한다. - 따라서, ,slf4 ..
인터넷 인터넷은 어떻게 동작할까? 네트워크란 ? - 여러대의 컴퓨터가 서로 통신을 할 수 있게 도와줌 네트워크의 집합체를 우리는 "인터넷"이라고 함 https://developer.mozilla.org/ko/docs/Learn/Common_questions/Web_mechanics/How_does_the_Internet_work 인터넷은 어떻게 동작하는가? - Web 개발 학습하기 | MDN 이 글에서는 인터넷의 개념과 작동 원리에 대해 설명합니다. developer.mozilla.org 여러대의 컴퓨터를 연결시키기에는 너무 많은 케이블이 필요해지기 때문에 라우터를 이용하여 단순한 구조로 만들 수 있음 라우터 끼리 연결이 가능하기 때문에 여러 네트워크를 연결해주는 것도 가능함 인터넷을 제공하는 "모뎀" 이라는 ..
Mac M1 Spring 시작하기 + 스프링 입문 [프로젝트 생성] 1. Intellij 설치하기 먼저 터미널을 열고 brew install --cask intellij-idea 2. JDK 설치하기 Intellij를 설치하고 나면 brew search zulu 를 통해 버젼 검색 (만약 버젼들이 안뜬다면 brew tap homebrew/cask-version - Zulu 란? openJDK 빌드 라고 합니다. http://www.opennaru.com/java/openjdk-oracle-redhat-ibm-azul/ brew install --cask zulu11 java -version 설치 후 버전 확인 (Zulu 11은 openJDK 버젼 11을 다운받겠다 라는 뜻입니다.) (저도 11을 다운 받았음) 3. JAVA 환경변수 설정 vi ~/.zshrc 터미널에서 ..
알고리즘 분석 7 - Introduction To Algorithms ch 13 Red-Black Tree Red-Black Tree red - black tree 란 - 균형이 잡힌 이진 트리 with color - 이진 트리들 중에서 Search tree인 경우 노드가 한쪽으로 치우쳐져 있는 균형을 잃은 tree 형식이 되는 경우가 많은데 잃은 균형을 찾게 해주는 것이 바로 Red - Black Tree 이다. Red-Black Tree Properties - 성립 조건 Red - Black tree 는 각 노드의 색깔을 Red, Balck 중 선택하고 properties들을 다 만족 시켜야 성립 할 수 있다. 모든 노드는 빨강 혹은 검정이다. 모든 Leaf Node (가장 끝에 있는 NULL은) 항상 Black 이다. (다르게 말하면 값이 있는 노드 들은 꼭 2개의 child node 를 가지게 된다) ..
알고리즘6.5 - Stable & In Place sort Stable & UnStable sort - 안정 정렬(stable) 은 정렬할 Input안의 중복된 키(값)들이 정렬이 되었을 때, 그 순서가 그대로 정렬 되는 것을 말한다. - Unstable은 같은 중복된 키(값)들이 순서 그대로 정렬 되지 않는 것을 말한다. 예를 들어) 3(1), 3(2), 2, 1 이 4개의 input을 정렬 한다고 했을 때 Stable : 1, 2, 3(1), 3(2) Unstable: 1, 2, 3(2), 3(1) 이렇게 정리 할 수 있다. Stable 에는 Insertion sort Bubble sort Merge sort Bucket sort Radix sort unstable에는 Quick sort Heap sort 이렇게 나눌 수 있다. In Place sort - ..
알고리즘분석6 - Introduction to Algorithms ch8 Sorting in Linear-Time Sorting in Linear - Time - 말 그대로 Array안에 있는 값을 정렬하는데 liner 한 time complexity를 가진다는 뜻 (n 만큼의 시간복잡도) 지금까지 정리한 Merge sort, Heap sort는 시간복잡도 N log N을 가진다. 지금까지 정리한 sorting 들은 다 "비교" 를 통한 실행을 하는데, 비교를 통한 정렬을 하게 되면 최소한 N log N 만큼의 시간 복잡도가 필요하다는 Theorem이 있다. 그렇다면 어떻게 해야 더 빠르게 정렬할 수 있을까? Counting Sort - 계수 정렬 Counting sort의 경우 heap 이나 merge sort처럼 비교를 하지 않는다. 이름 그대로 숫자를 세서 정렬하는 방식 시간복잡도 Θ(N)을 가진다. Count..
알고리듬분석5 - Introduction to Algorithms ch7 Quick Sort Quick Sort Quick Sort 란 - 분할 정복 ( Divide and Conquer) 방법 사용한다. Divide : sorting 할 배열에서 pivot(임의의 수)를 기준으로 오른쪽 왼쪽으로 나누게 된다. 이때 왼쪽 과 오른쪽의 배열가 동일 하지 않아도 된다. Conquer : pivot을 통해 나뉘어진 두개의 배열을 sorting 한다. Combine : sorting 이 완료된 두개의 배열을 합친다. 2,8,7,1,3,5,6,4 의 배열을 Quick Sort를 이용하여 정렬하는 것을 예시로 보여주고자 한다. A) pivot을 맨 마지막 데이터로 설정 ( 어디든 상관없음), pivot은 4 B) index j가 가르키는 값(2)이 pivot보다 작음으로 index i 의 값이 늘어남 C)..
알고리즘분석4 - Introduction to Algorithm ch6 Heapsort Heap 이란? Heap이란 자료구조 해당하며 이를 이용한 Heap Sort 알고리즘의 Efficiency에 대해서 알아보고자 한다. Heap 은 마지막 level을 제외한 모든 level에서 node 들이 다 채워진 완전 이진 트리(Complete Binary Tree) 이어야 한다. Heap 은 주로 array로 구현하게 된다. Root에 있는 값은 array애서 첫번째에 있는 값으로 생각한다. 어떤 Node 의 이름 i의 값은 A[i] 라고 표현하며, 그 노드의 부모 인 Node 의 값은 A[i/2] 가 된다. 같은 Node i 에서의 왼쪽 자식의 값은 A[2i] 이며 오른쪽은 A[2i + 1] 이 된다. 예를 들어) 5 위치에 있는 값은 A[5], 그 Node의 Parent Node의 값은 A[5..

728x90
반응형