전체 글

우아한테크코스 5기 BE 에단 Github : https://github.com/cookienc
· AWS
[AWS] AWS EC2에 DNS 연결하기 0. 들어가기 전에 준비사항 : AWS EC2와 개인적으로 사용할 수 있는 도메인 저는 가비아에서 도메인을 구매해서 사용했습니다. 도메인 구입 사이트는 가비아, 후이즈 등 많은 판매 사이트가 있습니다. 1. 과정 Route 53에 접속한다. 호스트 영역 생성에 들어간다. 도메인은 이름은 발급 받은 도메인 이름을 사용하면 된다. 레코드를 생성한다. NS의 값은 나중에 네임서버에 입력해줄 값이다. 레코드이름은 www로 입력한 것으로 하나 만들어 주고 새롭게 만들어서 빈칸으로 만들어준다. 그러면 주소창에 www를 입력유무와 관계없이 내 서버로 연결될 수 있다. 이 때 생기는 레코드의 유형은 A유형인데, 나중에 https를 등록할 때 쓰인다. 값에 인스턴스의 EIP를 ..
· AWS
[AWS] EC2 서버에 우분투18.04 구축하기 1. AWS EC2란? 들어가기전에 AWS EC2에 대해서 설명해보겠다. EC2(Elastic Compute Cloud) : AWS에서 제공하는 클라우드 컴퓨팅 서비스 쉽게 말해서 아마존에서 빌려주는 컴퓨터(하드웨어) 아마존은 세계 곳곳에 데이터 센터가 있는데 그 곳에서 빌려쓴다. 장점 용량을 쉽게 늘리거나 줄일 수 있음(탄력성) 사용한만큼 값을 지불 사용자가 완전히 제어할 수 있음 보안 및 네트워크 구성, 스토리지 관리 효과적 일년 무료 이용권을 줌(프리티어) 1.1 인스턴스, AMI EC2를 사용하다보면 인스턴스, AMI라는 용어를 쉽게 들을 수 있다. 인스턴스 : 클라우드에서 사용하는 가상 서버로 CPU, 메인보드와 같은 하드웨어 부분을 뜻함 AMI..
· ORM/JPA
[JPA] 영속성 전이와 고아 객체 1. 영속성 전이 특정 엔티티를 영속 상태로 만들 때, 연관된 엔티티(보통 자식 엔티티)도 함께 영속 상태로 만드는 것 왜 사용할까? JPA에서 엔티티의 값을 변경할 때 엔티티가 영속상태가 되어야 한다. 따라서 부모 객체를 영속 상태로 만들때 그와 관련된 자식 객체를 영속상태로 바꾸어 간편하게 처리할 수 있도록 돕는다. 하나의 부모가 자식들을 관리할 때 쓴다. 만약 자식이 두 개 이상의 연관관계가 있으면 사용하면 안됨 1.1 사용법 @OneToMany(mappedby = "parent", cascade = CascadeType.PERSIST) private List child = new ArrayList(); @XXXtoXXX에 추가로 cascade 옵션을 붙혀주면 된..
[Algorithm] Quick Sort(퀵 정렬) 1. 정의 피벗(기준)을 하나를 정해서 피벗보다 큰 수는 오른쪽 작은수는 왼쪽으로 옮겨가며 정렬하는 기법 불안정 정렬 시간 복잡도 평균 : $O(nlogn)$ 최악 : $O(n^2)$ 2. 동작 과정 피벗을 하나 정한다. 양 끝에 포인터를 각각 두고 포인터를 움직인다. 2 - 1. 왼쪽 포인터는 피벗 보다 큰 값이 나올때까지 오른쪽으로 움직인다. 2 - 2. 오른쪽 포인터는 피벗 보다 작은 값이 나올때까지 왼쪽으로 움직인다. 2 - 3. 값을 찾으면 서로 교환한다. 2 - 4. (2 - 1) ~ (2 - 3)을 반복한다. 포인터가 서로 교차하면 2개의 구간이 생기는데, 각각의 구간 별로 1번부터 반복한다. 3. 장단점 장점 병합 정렬과는 달리 추가적인 ..
[Algorithm] Merge Sort(병합 정렬) 1. 정의 데이터 배열의 원소를 반으로 나누고, 합쳐서 정렬하는 알고리즘 분할 정복을 사용 시간 복잡도 최선 : $O(nlogn)$ 평균 : $O(nlogn)$ 최악 : $O(nlogn)$ 2. 동작 과정 배열의 원소가 2개가 남을 때까지 이등분 한다. 2개의 원소를 반으로 나누어 각각 비교하여 정렬된 배열을 얻는다. 나머지 배열들을 병합하면서 정렬한다. 3. 장단점 장점 순차적인 비교로 정렬 일정한 속도 안정 정렬 LinkedList 정렬할 때 퀵 정렬 보다 효율이 좋음 LinkedList는 순차 접근을 해야하는데 퀵 정렬은 임의 접근이기 때문 단점 추가적인 공간이 필요 4. 코드 public void mergeSort(int[] arr, int l..
[Spring] Jar vs War spring의 초기 설정에 도움을 주는 start.spring.io에서 Jar와 War를 볼 수 있고, 보통은 Jar를 선택해서 개발을 진행한다. 그렇다면 Jar는 무엇이고 또 War는 무엇일까? 1. Jar? War? Java를 사용하여 만든 소프트웨어를 배포하기전에 하는 패기징 방식 두 개의 packaging 방식 모두 Java의 jar툴을 이용하여 생성된 아카이브(압축) 파일이며 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성파일 등)들을 패키징해주는 것이 주 역할이다. 1.1 Jar(Java Archive) Class와 같은 설정 파일들을 압축해서 만들어진 하나의 어플리케이션 혹은 라이브러리 내장 톰캣(WAS)을 가지고 있음 1.2 Wa..
[Algorithm] Insertion Sort(삽입 정렬) 1. 정의 2번째 원소부터 시작하여 그 앞의 원소들과 대소비교하여 삽입할 위치를 결정하여 삽입 Selection Sort와 유사하지만, 좀 더 효율적인 알고리즘 시간복잡도 최선 : $O(n)$ → 모두 다 정렬되어 있을 경우 평균 : $O(n^2)$ 최악 : $O(n^2)$ 2. 동작 과정(오름차순) 2번째 인덱스 값을 tmp에 저장 tmp 앞에 있는 원소들과 비교하여 가장 알맞은 자리(arr[i] < arr[tmp] < arr[i + 1])에 삽입 → 삽입하는 자리는 뒤로 한칸씩 밀린다. 1번으로 돌아가 반복 3. 장단점 장점 알고리즘이 단순 정렬되어 있을 경우 매우 효율적 제자리 정렬 안정 정렬 단점 평균과 최악의 시간복잡도가 $O(n^2)..
[Algorithm] Selection Sort(선택 정렬) 1. 정의 배열에서 자리를 선택한 후 특정 값을 찾아 교환하면서 정렬하는 방법 오름차순일 경우 뒷 부분에서 가장 작은 값을 찾아서 교환한다. 시간복잡도 최선 : $O(n^2)$ 평균 : $O(n^2)$ 최악 : $O(n^2)$ 2. 동작 과정(오름차순) 주어진 배열 중에 최소값을 찾는다. 찾은 값을 첫번째 원소와 교환한다. → 첫번째 원소는 정렬되어 있는 상태가 됨 정렬된 원소를 제외하고 가장 최소값을 찾아 정렬이 안된 첫번째 원소와 교환한다. 반복 3. 장단점 장점 자료 이동 횟수가 미리 결정 됨 제자리 정렬 단점 안정성을 만족하지 않음 → 상대적 위치가 바뀜 같은 원소가 중복되어 있으면 중복된 원소의 순서를 보장하지 않음 효율성이 떨어짐 4..
쿠엔크
기러기는 기록기록