'15단계로 배우는 도커와 쿠버네티스'를 참조하여 작성하였습니다. 클라우드 클라우드란? -클라우드 컴퓨팅 또는 클라우드 서비스를 줄인 말 -클라우드 컴퓨팅은 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 기술 -인터넷을 구성하는 서버들과 네트워크 장비들을 나타내기 위해 구름 심볼을 사용하던 것에서 유래 사용자와 기업은 클라우드 컴퓨팅을 사용하여 직접 물리적 서버를 관리하거나 자체 서버에서 스프트웨어 애플리케이션을 실행하지 않아도 됨. 클라우드의 장점 비용 절감 관리편이 사용량의 유연성 업무장소의 유연성 클라우드 서비스 제공업체 AWS(아마존) Azure (마이크로소프트) Google Cloud(구글) 네이버, 카카오 등 클라우드의 종류 온프레미스(..
분류 전체보기
1. 애플리게이션 개발 객체 매핑을 완료하고 persistence.xml로 JPA설정을 완료했다. 이제 JPA 애플리케이션을 개발하자. package jpabook.start; import javax.persistence.*; import java.util.List; /** * @author holyeye */ public class JpaMain { public static void main(String[] args) { //엔티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); EntityManager em = emf.createEntityManager(); //엔티티 매니저 생성 Entit..
1. 프로젝트 만들기 IntelliJ로 Maven 프로젝트를 만들었따. 2. Mysql 테이블 생성 책에서는 H2 데이터베이스를 사용하지만 여기서는 Mysql을 사용할 것이다. create table 'member'( ID VARCHAR(255) NOT NULL, NAME VARCHAR(255), AGE INTEGER NOT NULL, PRIMARY KEY(ID) ); 3. 라이브러리와 프로젝트 구조 JPA 구현체로 하이버네이트를 사용한다. JPA를 구현체로 하이버네이트를 사용하기 위한 핵심 라이브러리는 다음과 같다. hibernate-core : 하이버네이트 라이브러리 hibernate-entitymanager : 하이버네이트가 JPA 구현체로 동작하도록 JPA 표준을 구현한 라이브러리( 이것을 라이브..
JPA란 무엇인가? -JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준이다. JPA는 애플리케이션과 JDBC 사이에서 동작한다. -자바 ORM 기술에 대한 API 표준 명세다.(인터페이스를 모아둔 것) -JPA 사용하기 위해서는 JPA를 구현한 하이버네이트,EclipseLink, DataNucleus인 ORM 프레임워크를 선택한다. -ORM이란 무엇일까? ORM(object-Relational Mapping)은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 대신 해결해준다. 예를 들어 ORM 프레임워크를 사용하면 객체를 데이터베이스에 저장할 때 INSERT SQL을 직접 작성하는 것이 아니라 ..
HashMap 클래스 HashMap 클래스는 Map 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나이다. JDK 1.2부터 제공된 HashMap 클래스는 해시 알고리즘(hash algorithm)을 사용하여 검색 속도가 매우 빠르다. HashMap 클래스는 Map 인터페이스를 구현하므로, 중복된 키로는 값을 저장할 수 없다. 하지만 같은 값을 다른 키로 저장하는 것은 가능하다. HashMap 클래스는 키와 값의 쌍을 저장하는 데 사용되는 "Map" 기반의 컬렉션 클래스로, HashMap 로 표시된다. 이 클래스는 맵의 순서를 보증하지 않는다. 이 클래스는 비동기(unsynchronized)이며 null 키/값을 허용한다는 점을 제외하면 Hashtable 클래스와 유사하다. HashTable 클래스 ..
해시(Hash)란? 데이터를 다루는 기법 중 하나이며, 키(key)와 값(value)으로 매핑되는 과정 자체를 해싱(Hashing)이라고 한다. 해싱이 왜 필요할까? 선형 탐색 또는 이진 탐색은 찾는 키가 자료구조에 들어있는지 반복적 비교가 필요 -> 아무리 빨라도 O(logn) ->더 빠른 알고리즘 필요 ->O(1)을 보장하는 탐색 예로는 키를 그대로 1차원 배열의 인덱스로 사용 ->하지만 단순히 키를 배열의 인덱스로 그대로 사용하면 메모리 낭비가 심해질 수 있음. ∴ O(1) 시간 안에 탐색을 끝내면서 키를 변환하여 배열의 인덱스로 사용하는 방법인 "해싱" 키(key) 고유한 값이며, 해시 함수의 input이 된다. 다양한 길이의 값이 될 수 있다. 이 상태로 최종 저장소에 저장이 되면 다양한 길이 ..
문제 설명 : 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 : 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 comput..
문제 설명: 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 : 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 입출력 예 : triangle result [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 풀이 :..
Disjoint Set DisJoint Set이란? 서로 중복되지 않는 부분 집합들로 나눠진 원소들에 대한 정보를 저장하고 조작하는 자료구조 - 즉, 공통 원소가 없는 "상호 배타적"인 부분집합들로 나눠진 원소들에 대한 자료구조 - Disjoint Set=서로소 집합 자료구조 Union-Find Union-Find란? Disjoint Set을 표현할 때 사용하는 알고리즘 -집합을 구현하는 데는 비트 벡터, 배열, 연결 리스트를 이용할 수 있으나 그 중 가장 효율적인 트리 구조를 이용하여 구현 -아래의 세가지 연산을 이용하여 Disjoint Set을 표현 Union-Find의 연산 - make-set(x) 초기화 x를 유일한 원소로 하는 새로운 집합을 만든다. - union(x,y) x가 속한 집합과 y가..
탐색이란? 여러개의 가죠 중에서 원하는 자료를 찾는 작업 -탐색을 효율적으로 수행하는 것은 매우 중요 -탐색키(search key) 항목과 항목을 구별해주는 키(key) -탐색을 위하여 사용되는 자료구조 배열, 연결리스트, 트리, 그래프 등 순차탐색 -탐색 방법 중에서 가장 간단하고 직접적인 탐색 방법 : 정렬되지 않은 배열을 처음부터 마지막까지 하나씩 검사 -평균 비교 횟수 탐색 성공 : (n+1)/2번 비교 탐색 실패 : n번 비교 -구현 int sequentialSearch(int list[], int key, int low, int high) { for (int i = low; i 원소들을 모두 이동시켜야 함. 이진 탐색 트리는 매우 빠르게 삽입/삭제 수행 삽입,삭제가 빈번히 이루어진다면 이진탐색..