본문 바로가기

멀티캠퍼스 풀스택 과정170

프론트엔드1-1. 웹서버, 아파치 톰캣, 환경변수 설정하기 [1. Apache Tomcat 설치하기] Apache Apache HTTP Server(아파치 소프트웨어 재단에서 만든 웹서버 프로그램) 클라이언트에서 요청하는 HTTP 요청을 처리하는 정적인 데이터를 처리하는 웹서버 웹서버(Web Server) 1) 웹 서버 소프트웨어와 웹 사이트의 구성 요소 파일을 저장하는 컴퓨터(HTML 문서, 이미지, CSS 스타일 시트 및 JavaScript파일) 2) 소프트웨어 보통 HTTP 서버를 의미함 URL(웹 주소) 및 HTTP(프로토콜 주소)를 이해하는 소프트웨어 저장하는 웹 사이트의 도메인 이름을 통해 액세스 할 수 있고 이러한 호스팅 된 웹 사이트의 콘텐츠를 최종 사용자의 장치로 전달한다. - HTTP란? 클라이언트와 서버가 웹에서 웹 페이지를 주고받기 위해 지.. 2022. 2. 4.
자바의 정석11-6 스트림의 그룹화와 분할(groupingBy, partitioningBy) 그룹화(groupingBy)는 스트림의 요소를 특정 기준으로 그룹화 하는 것을 의미한다. 분할(partitioningBy)은 스트림의 요소를 두 가지, 즉 지정된 조건에 일치하는 그룹과 일치하지 않는 그룹으로의 분할을 의미한다. partitioningBy( )는 Predicate로, groupingBy( )는 스트림의 요소를 Function으로 분류한다. partitioningBy( )는 스트림을 2분할 하고, groupingBy( )는 스트림을 n분할 한다. (둘 다 Collectors 클래스 안에 있다.) 1. 스트림의 분할 - paritioningBy() -> 2분할을 할 때는 groupingBy( )보다는 partitioningBy( ) Comparator생략! (import static java.. 2022. 2. 2.
자바의 정석11-5 스트림의 연산(최종연산) 스트림의 연산(중간연산, 최종연산) 중간연산 최종연산 n번 1번 Stream을 반환 결과를 반환(int, Boolean ..) 스트림의 요소를 소모해서 최종연산 후에는 스트림이 닫히게 되고 더이상 사용 불가 최종 연산 설명 void forEach(Consumer 2022. 2. 2.
알고리즘2-2. 이진탐색알고리즘 순차 탐색 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법 이진 탐색 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 (이진탐색은 시작점, 끝점, 중간점을 이용해 탐색 범위를 설정한다.) 단계마다 탐색 범위를 2로 나누는 것과 동일하기 때문에 연산횟수는 log2N에 비례하고, 시간 복잡도는 O(logN)을 보장한다. // 이진 탐색 소스코드 구현(반복문) public static int binarySearch(int[] arr, int target, int start, int end) { while(start0) { // 양수이면 point.getKey()가 크고, 매개변수 key가 작다. point = point.left; // 왼쪽 서.. 2022. 1. 29.
소수판별 알고리즘 소수(Prime Number) - 소수(prime)란 1보다 큰 자연수 중에서 1과 자기자신 이외의 수로는 나누어 떨어지지 않는 수 - 소수의 반대말: 합성수(세 개 이상의 양의 약수를 갖는 자연수) - 6은 1, 2, 3, 6으로 나누어떨어져서 소수가 아니다. - 7은 1과 7을 제외하고는 나누어떨어지지 않아서 소수이다. 소수 판별기 1) 2부터 주어진 수 n-1까지의 모든 수를 순회하면서 이 중에서 n의 약수가 있는지 확인하고, 약수가 없다면 소수 하나의 수에 대해서 소수인지 아닌지 판별하는 방법 2부터 n-1까지 모든 수를 다 확인하기 때문에 시간이 많이 걸린다. 알고리즘의 시간 복잡도는 O(N) class Main { public static boolean isPrimeNumber(int num).. 2022. 1. 28.
알고리즘2-1. 선형리스트(LinkedList 연결리스트) LinkedList 연결리스트 - 자료들을 연속적으로 배열시키지 않고 임의의 기억공간에 기억시키지만, 자료 순서에 따라 노드의 포인터 부분을 이용해 연결시킨 자료구조 노드의 삽입, 삭제 작업이 용이하다. 기억공간이 연속적으로 놓여있지 않아도 저장이 가능하다. 연결을 위한 포인터가 필요하기 때문에 기억공간이용 효율이 좋지 않다. 연결을 위한 포인터를 찾는 시간이 필요하기 때문에 접근속도가 느리다. 중간 노드 연결이 끊어지면 그 다음 노드를 찾기 힘들다. 노드 구조를 사용하는 트리 등을 표현할 때 가장 적합한 자료구조이다. 리스트의 데이터는 노드(node) 또는 요소(element)라고 한다. 각각의 노드는 데이터와 다음 노드를 가리키는 포인터를 가지고 있다. 처음에 있는 노드: 머리 노드(head node.. 2022. 1. 27.