국비지원 11

Spring 클론코딩 프로젝트 콘텐츠 DetailPage( 비슷한 장르의 작품 추천)

🎬 MovieRespose - Containing 이용하여 유사 장르 뽑기 List findByMovGenreContaining(String genre); 🎬 MovieService @Transactional(readOnly = true) public List similarGenre(String genre, Long movieIdx){ List result = new ArrayList(); List movieIdxList = new ArrayList(16); if(genre.contains("/")){ List genreList = Arrays.stream(genre.split("/")).toList(); HashMap containMovie = new HashMap(); for(String idx: g..

Spring 클론코딩 프로젝트 콘텐츠 DetailPage( 감상 가능한 곳, 유튜브(youtube) 예고편, 겔러리)

🎬 감상가능한 곳 타임리프 tb_movie 테이블의 mov_watch 컬럼에서 해당 movieIdx 값을 통해 해당하는 링크와 이미지 이름을 주기위해 타임리프에서 splt과 삼항연산자를 이용하여 구현하였다. th:title="${#strings.contains(wat,'aHR0cHM6Ly93d3cubmV0ZmxpeC5jb20vdGl0b')} or ${#strings.contains(wat,'netflix')}? '넷플릭스' : 1. {#strings.contains(wat,'aHR0cHM6Ly93d3cubmV0ZmxpeC5jb20vdGl0b' 이 부분은 넷플릭스의 고유 주소 값이다. 2. netflix 가 포함되어도 넷플릭스인걸 알 수 있기 때문에 타임리프에서 or 조건을 사용해서 1번과 2번이 포함되면..

Spring 클론코딩 프로젝트 콘텐츠 DetailPage( 출연/제작)

✔ 출연/제작 - Controller 부분 // 인물 리스트 List peopleList = new ArrayList(); List people = new ArrayList(); List personList = new ArrayList(); if(movie.people() != null){ peopleList = List.of(movie.people().split(",")); for(String per : peopleList){ people.add(per.split("\\(")[0] + "," + per.split("\\(")[1].split("\\)")[0]); } } try{ personList = personService.personList(people); }catch (Exception e){ S..

Python 자료구조&알고리즘 - 힙(Heap)

1. 힙(Heap) 1-1. 힙 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리 : 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 1-2. 힙을 사용하는 이유 배열에 데이터를 넣고 최대값, 최소값을 찾으려면 시간이 많이 걸릴 수 있음 힙에 데이터를 넣고 최대값, 최소값을 찾으면 시간이 적게 소모됨 우선순위 큐와 같이 최대값 또는 최소값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현등에 활용됨 2. 힙(Heap) 구조 힙은 최대값을 구하기 위한 구조(최대힙, Max Heap)와 최소값을 구하기 위한 구조(최소 힙, Min Heap)로 분류할 수 있음 힙은 아래와 같이 두가지 조건을 가지고 있는 자료구조 각 노드의..

국비지원 자바 복습 8(래퍼, 추상 클래스, 인터페이스, static)

1. 래퍼 클래스(Wrapper Class) - 포장 - 기본형(primitive type) 변수 데이터를 객체로 취급해야 할 경우 객체로 포장해주는 클래스 - 자바는 객체지향 언어이지만 기본형이라는 예외를 둔 이유는 성능때문 @배열의 단점 1. 배열의 수를 미리 저장해야한다.(최댓값을 넘을 경우 새로 선언하거나 변경해야 하는 단점) 2. 배열의 타입을 상이하게 사용할 수 없다. 3. 인덱스 번호를 모를 경우 주소 값을 처음부터 일일히 대조해야한다는 단점을 가지고 있다. 래퍼 클래스가 필요한 이유 - 기본형 변수는 값을 저장하고, 첨조형 변수는 주소를 저장하기 때문 - 컬렉션 프리임워크(자료구조와 데이터를 처리하는 알고리즘)는 참조형 변수만을 다루기 때문 - 멀티쓰레딩(다수의 스레드를 동시에 이용하는 작..

Java/Java 2022.10.05

국비지원 자바 복습 7 (객체의 배열, Object, 상속, 업/다운 캐스팅)

1. 객체의 배열 클래스 이름 참조변수 = new 클래스이름[요소의 갯수]; int[] arr = new int[3]; arr[0] = 10; ​ // 아직 객체화는 아니고 배열을 만든것일 뿐 Student[] arr = new Student[3]; arr[0] = new Student(); //student 객체를 arr[]에 0번방에 저장하게 된다. arr[0].setNo(1); arr[0].setName("song"); .... ​ arr[1] = new Student();// 주소마다 객체를 다시 선언해줘야 한다. arr[1].setNo(2); arr[1].setName("hun"); .... ​ @ arr[0] = student[0];//잘못된 입력 ​ 2. object 클래스 -java.lan..

Java/Java 2022.10.04

국비지원 자바 복습 6 (메소드, 메인메소드, opp, 클래스)

1. 메소드(method) - 어떤 로직이나 기능을 만들어 내는 방법(함수) - 코드를 재활용 할 수 있도록 하여 경제적으로 코드를 작성할 수 있음 - 객체를 생성하여 참조변수를 통해 호출할 수 있는 함수 ​ 접근제어자 [static] 변환타입 메소드이름([매개변수1, 매개변수2..]) { //매개변수 : 원하는 값을 넣을 수 있다. // 반환타입이 없을 경우 void를 사용한다. 메소드이름이 호출되면 실행할 문장; ... [return 반환값] // 내가 원하는 값을 돌려준다. 메소드 호출한곳으로 // 반환값은 반환타입과 동일하게 사용한다. } ​ // static : 객체를 생성하지 않아도 코드가 실행되면 메모리에 적재된다 public static int sum(int num1, int num2){ ..

Java/Java 2022.10.04

국비지원 자바 복습 5 (2차원 배열, String 클래스, 주민등록 검증)

1. 2차원 배열 값이 행과 열로 구성된 배열 ​ 1차원 데이터타입[] 배열이름 = new 데이터타입[갯수]; int[] arr = new int[5]; arr[0] = 10; //1차원 배열에서 한번에 초기화 및 변수선언 int[] arr = {10, 20, 30}; // new int 생략 가능하다. ​ 2차원 데이터타입[][] 배열이름 = new 데이터타입[행갯수][열갯수];// |(행)-(열) int[][] arr = new int[2][3]; [0,0] [0,1] [0,2]0행 [1,0] [1,1] [1,2]1행 0열 1열 2열 ​ arr[0][0] = 10; arr[0][1] = 20; .. arr[1][2] = 60; ​ // 2차원 배열의 선언 및 초기화 int[][] arr = {{10,..

Java/Java 2022.10.04

국비지원 자바 복습 4 (반복 문, 배열)

1. 반복문 - while문 ​ while(조건식){ 조건식의 결과가 true인 동안 반복할 문장; ... } ​ int num = 10; while(num >= 10){ //밑에서 후위연산 후 올라와서 빠진다. System.out.println("num은 10보다 큽니다."); //무한루프 때문에 중괄호가 필요하다. num--; } (while)문제 1 ~ 100까지의 짝수의 총합을 구하는 프로그램을 작성 - for문 ​ for(변수의 초기화; 조건식; 증감식){ 조건식이 true인 동안 반복할 문장 } ​ for(int i=1; i random은 0.99999까지이기 때문이다. ​ 1 ~ 45의 사이에 랜덤한 값을 추출 double rn = Math.random(); (int)(rn * 45) + 1..

Java/Java 2022.10.04

국비지원 자바 3(타입변환, 제어 문, 성적프로그램)

1. 타입 변환 - 연산은 기본적으로 같은 타입의 피연산자와 수행 - 서로 다른 타입의 피연산자가 있을경우 두 피연산자 중 크기다 큰 타입으로 자동변환 EX) 10 / 3.0 = 3.3333... 실수형이 정수형보다 크기(소수)가 크기 때문이다. 정수 byte, (byte)변수명 ​ ​ ✔ Scanner 클래스 -> 조건/제어문 들어가기 전에 미리 알아보자 - 자바에서 여러가지 데이터를 입력받을 수 있도록 도와주는 대표적인 입력관련 클래스 - java.util 패키지(폴더별로 나누어 둔것이라고 생각하자)에 존재 ​ 변수 -> Stack에 저장 데이터타입 변수이름 = 값; int num = 10; 객체 -> new가 나오면 ..

Java/Java 2022.10.04

Java 국비지원 OT

2022. 9. 22 - 국비지원 Day1 ​ # 학습 순서 및 프로젝트 계획 ​ * 웹 개발 - 문법 정도로 학습 Java -> 내부요소 (로그인, 로그아웃 등) HTML/CSS/JavaScript (user interface) -> 화면구성 JSP(최근 사용X)/Spring(자바 웹 개발간 편리하고 강하게 사용) -> (Server) ----------------------------------------------------------------- 프로젝트 1차실시 ​ * AI Python - 자바로도 AI를 다룰 수 있지만 가장 대중적으로 쓰이는 언어가 Python이다. ----------------------------------------------------------------- 프로젝트 ..

Java/Java 2022.10.02