본문 바로가기

TIL

22.12.15_TIL_내배캠

보충반 수업



import java.util.*;

public class prac02 {
      
    public static void main(String[] args) {
       
       //삼항 연산자
        int h=19;
        String result1 = h<12?"오전":"오후";
        System.out.println(result1);
        
        Scanner sc = new Scanner(System.in);
        System.out.println("알파벳을 입력하세요: ");

        char alpha = sc.nextLine().charAt(0);
        //char type을 스캔으로 받고 싶으면 내장함수 charAt을 사용하여 할수 있다. ()안은 인덱스
        int ialpha = (int)alpha;

        System.out.println(ialpha); //아스키 코드값 출력.

        String str = "안녕하세요";
        System.out.println(str.charAt(1));


        int a = 10;
        int b;

        //후위 연산자
        b=a++; //우선순위가 높습니다.
        System.out.println(b); //10
        System.out.println(a+" "+b); //11 10, b의 값은 10이 들어가 있는 상태.

        //전위 연산자
        b=++a; //연산자 우선순위가 낮습니다.
        System.out.println(b); //12
        System.out.println(a+" "+b); //12 12


        //배열
        int[] num=new int[5];
        num[0]=3;
        num[1]=11;
        num[2]=22;
        num[3]=33;
        num[4]=44;

        System.out.println(num[num.length-1]);

        String[] seasons={"봄","여름","가을","겨울"};
        System.out.println(Arrays.toString(seasons));
        System.out.println(seasons[seasons.length-1]);


        //List
        //1.순서 중요
        //2.같은 자료형만
        //3.add, get, remove, size
        List<String> fruits = new ArrayList<>();
        fruits.add("감");
        fruits.add("사과");
        fruits.add("배");
        fruits.add("감");
        fruits.add("사과");

        System.out.println(fruits);

        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        fruits.remove(0);
        System.out.println(fruits.get(0));

    }
}
        //실습

        //랜덤으로 정수10개 저장
        //최소값을 찾아주세요.
        Random random = new Random();

        int[] randoms = new int[10];

        int find=0;

        for(int i=0; i<randoms.length;i++){
            randoms[i]=random.nextInt(Integer.MAX_VALUE-1); //#1
            if(find<randoms[i]){
                find=randoms[i];
            }
        }

        for(int i:randoms){
            if(i<find){
                find=i;
            }
        }

        System.out.println(Arrays.toString(randoms));
        System.out.println(find);

 

#1 :  random값이 () 안에 아무것도 입력 안 할 시, 음수가 나온다.  저거 말고 양수가 나오게 하는 방법은 없나..?


2-2 RDBMS

정보를 저장하고 관리하는 영역

RDBMS(Relational DataBase Management System)은 컴퓨터에 정보를 저장하고 관리하는 기술.

성능/관리 면에서 매우 고도화된 엑셀이라고 생각하기.

  • RDBMS의 종류
    • MySQL
    • PostgreSQL
    • Oracle Database
  • 각 제품 간 차이가 크지 않아서 사실 어떤 걸 사용하든 좋습니다. 유료인 Oracle을 제외하고 보통 MySQL, PostgreSQL 중에서 많이 고르는 편인데, 우리는 실제 배포 시 MySQL을 사용합니다.
  • 우리가 사용할 RDBMS
    • H2
      • In-memory DB의 대표 주자인 H2
      • 인메모리 DB란 서버가 작동하는 동안에만 내용을 저장하고, 서버가 작동을 멈추면 데이터가 모두 삭제되는 데이터베이스
      • 개발 시. 무거운 DB를 만들어할 시 시간낭비가 많으므로 가볍게 사용하기 좋음
    • MySQL
      • MySQL은 우리가 서비스를 배포할 때 사용할 데이터베이스
      • AWS RDS 라는 서비스를 사용
      • 스프링과 궁합이 좋음
  • H2 웹콘솔 띄워보기
    1. src > main > resources > application.propertiesjava 폴더 : 코드
    2. resources : 그 외 설정
//resources 폴더, 웹 콘솔 설정하기
spring.h2.console.enabled=true //스프링의 h2DB의 웹콘솔을 보여줘.
spring.datasource.url=jdbc:h2:mem:testdb //스프링의 데이터소스를 H2를 쓸거야.

localhost:8080 내 컴퓨터 8080방에 스프링 서버가 띄워져 있어.

에러 페이지 뜨는 것 자체가 돌아가고 있다는 것.

 

웹 콘솔 보기

localhost:8080/h2-console → Connect → 웹 콘솔 실행 완료.

 

RDBMS는 고도화된 엑셀.

엑셀 파일 = DB

시트 = 테이블

한 행 = 데이터

조회= SQL

 

 

CREATE TABLE IF NOT EXISTS courses ( 
    id bigint(5) NOT NULL AUTO_INCREMENT, 
    title varchar(255) NOT NULL,
    tutor varchar(255) NOT NULL,
    PRIMARY KEY (id)
);

/*
CREATE TABLE : 테이블을 만들어라 
IF NOT EXISTS courses : courses 의 테이블이 존재 안 하면

3개의 열로 구성 (id, title, tutor)
NOT NULL : 값이 비면 안 된다.

bigint() = Long
varchar()= String

PRIMARY KEY (id) : 구분할수 있는 키. (다른 것도 가능하나 중복되므로 id사용)
AUTO_INCREMENT : 순차적으로 자동으로 id 부여 1, 2, 3, ...
INSERT INTO courses (title, tutor) VALUES
    ('웹개발의 봄, Spring', '남병관'), ('웹개발 종합반', '이범규');

/*
INSERT INTO courses : courses 에 데이터를 넣어 달라. 
(title, tutor) : 괄호 쌍에 맞게 넣어 달라. 

VALUES ('웹개발의 봄, Spring', '남병관'), ('웹개발 종합반', '이범규');
그 값. 

값이 2개라 Updata count:2
SELECT * FROM courses;

/*
조회 
* = 전체 
*/

이런 SQL 짜는 게 따로 있지만, 실제로 사용하는 일은 별로 없고

Spring Data JPA 가 java명령어를 SQL로 번역해줌.

 

위의 건은 저녁시간 때 태훈님이랑 이야기하다가 여쭤봤었는데, MAC에서는 잘 돌아갔다.

그냥 OS차이로 그런 걸로 하고 넘어가기로..


스프링 프로젝트 만들 때마다, 빌드 시스템 관련 에러가 뜨는데.. 별 것 안 했는데.. 프로젝트 생성하는데만 1시간씩 날아가버린다. 어질어질..

지웠다 다시 만들었다를 반복하다 보니, 초기 설정할 때 5가지 개발 툴 설정을 하라는데 그게 자동으로 외워졌다 ^^ ;;.. 

물론 그것들이 정확히 무엇을 뜻하는지는 모르지만.. 

 

진짜 진도를 이렇게 나가고 있는데, 우리 팀 이번 미니 프로젝트 어떻게 될지 걱정된다. 3명은 다 같이 허우적대고 있고,

태훈님은 작은 수술이 있으셔서 병원 다녀오셔야하고, 철심 빼는 거라고 가능한 참여하신다는데 무슨 소린가 싶다.

맘 같아서는 신경쓰지 말고 푹 쉬다고 오시라고요. 소리치고 싶은데, 마음과 비례하지 않는 실력이라 죄송합니다..

 

갑신님................ 헤헤헿... 헿.. 헿...  쓰면서 생각하니 또 정신줄이 가출하려 한다. 

뭐라도 해야 하는데... 

 

 

 

'TIL' 카테고리의 다른 글

22.12.20_TIL_내배캠  (0) 2022.12.21
22.12.19_TIL_내배캠  (0) 2022.12.20
22.12.14_TIL_내배캠  (0) 2022.12.15
22.12.13_TIL_내배캠  (0) 2022.12.13
22.12.12_TIL_내배캠  (0) 2022.12.13