멋사 Backend 20일차 🦁

신재원·2023년 5월 15일

🛸 Java

💧 버블 정렬 (Bubble Sort)

  • 버블 정렬 이란? 두 원소의 대소를 비교하여 교환을 반복하는 것입니다.
    • 단점으로는 순회 하는 횟수가 많아, 많은 시간을 소비합니다.

int[] numbers = {35,10,50,40,20}; 이러한 배열을 오름차순 / 내림차순으로 정렬 한다는 것입니다.

import java.util.Arrays;

public class BubbleSort {
    public static void main(String[] args) {
        int[] numbers = {35, 10, 50, 40, 20};

        for (int i = 0; i < numbers.length; i++) {
            for (int j = i + 1; j < numbers.length; j++) {
                if(numbers[i] > numbers[j]){
                    int temp = numbers[i]; // 임시로 담아둘 변수
                    numbers[i] = numbers[j];
                    numbers[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(numbers));
    }
}
출력
[10, 20, 35, 40, 50]
  • 위 코드와 같이 numbers 배열이 오름차순으로 정렬되어 출력된것을 볼수있습니다.
  • 2중 for문을 사용하여
    • loop 1 : 35에서 배열 끝까지 비교 합니다.
    • loop 2 : loop1에서 [10, 20, 50,40,35] 까지 됩니다. 다시 20 부터 시작하여 배열 끝까지 비교합니다.
    • loop 3 : 이러한 순서로 반복문이 끝날때까지 비교합니다.

💯 버블 정렬 메소드 분리

import java.util.Arrays;

public class Main {
    // private static final 상수 : 대문자로 명명
    private static final int[] NUMBERS = {35, 10, 50, 40, 20};

    // 정렬 메소드
    public int[] sortNumbers(int[] number, int loop) {
        for (int j = loop + 1; j < number.length; j++) {
            compareNumbers(loop, j);
        }
        return number;
    }

    // 비교 메소드
    public void compareNumbers(int loop1, int loop2) {
        if (NUMBERS[loop1] > NUMBERS[loop2]) {
            int temp = NUMBERS[loop1];
            NUMBERS[loop1] = NUMBERS[loop2];
            NUMBERS[loop2] = temp;
        }
    }

    // 반복 메소드
    public void loop(int[] numbers) {
        for (int i = 0; i < numbers.length; i++) {
            sortNumbers(numbers, i);
        }
        System.out.println(Arrays.toString(numbers));
    }

    // 호출과 생성만
    public static void main(String[] args) {
        Main main = new Main();
        main.loop(NUMBERS);
    }
}
  • 메소드 (기능) 별로 쪼개어 코드를 작성해주는 것이 좋습니다.
    • 정렬 기능
    • 비교 기능
    • 반복 기능 으로 메소드를 분리하였습니다.

💪 Comparator (비교) 메소드

  • 파라미터 2개를 받는 메소드 이며 오버라이딩 (재정의) 하여 사용합니다.
    • 인자 o2 - o1 : 내림차순, o1 - o2 : 오름차순 입니다.
import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        Integer[] numbers = {5, 2, 8, 1, 9};

        Arrays.sort(numbers, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {

                return o2 - o1; // o2 - o1 : 내림차순, o1 - o2 : 오름차순
            }
        });
        System.out.println(Arrays.toString(numbers)); // [9, 8, 5, 2, 1]
    }
}

AWS, Docker (도커)

  • AWS
    • t3 micro로 인스턴스 생성, 스팟 인스턴스 사용, 키 생성
    • 보안 정책에서 포트(Port) 열어주기

🚢 Docker 란?

  • 대표적인 컨테이너의 기술이면서, 회사 이름입니다.
    • 컨테이너 말 그대로 격리 (분리)기술을 사용 하여 더 쉽게 실행하며, 관리할수있습니다.

❓ Docker를 왜 써야 하는가?

Docker를 사용하면 애플리케이션의 환경 일관성과 이식성을 유지하며, 빠르고 효율적인 배포를 가능하게 합니다.
(아직 까지는 무슨 말인지 모르겠다)

☕ 번외

  • git bash에서의 복사와 붙여넣기
    • 복사 : ctrl + c (x) --> 마우스로 복사할 부분 블록 지정
    • 붙여넣기 : shift + insert
  • OH MY BASH 설치 = 자동완성의 기능이 좋아짐

xShell 창에서 docker 연결후, docker ps를 입력시 실행중인 컨테이너를 알수 있습니다.

  • MysqlWorkBench 설치

0개의 댓글