전체 글

전체 글

    [Spring Data JPA] - 정렬과 페이징 처리

    정렬 처리단순 오름차 내림차 정렬// Acs : 오름차순, Desc : 내림차순 List findByNameOrderByNumberAsc(String name); // name인 Product를 찾되, Number기준으로 오름차순 정렬한다. List findByNameOrderByNumberDesc(String name); // name인 Product를 찾되, Number기준으로 내림차순 정렬한다.다중 오름차 내림차 정렬조건절에서 And, Or 붙이는 것과 다르게 여기서는 And, Or을 붙이지 않는다.// And를 붙이지 않음 List findByNameOrderByPriceAscStockDesc(String name); // name 인 Product 를 찾되, Price 기준으로 오름차순, Sto..

    분할 정복 알고리즘

    도입분할 정복과 일반적 재귀 호출의 차이일반적 재귀 호출문제를 한 조각과 나머지 전체로 나눔분할정복문제를 항상 거의 같은 크기로 나눔 일반적 재귀 호출분할 정복분할 정복의 구성 요소divide문제를 더 작은 문제로 분할하는 과정merge각 문제에 대해 구한 답을 원래 답으로 병합하는 과정base case매우 작은 문제의 해법예제: 수열의 빠른 합과 행렬의 빠른 제곱가장 간단한 방법은 수식을 이용하여 바로 계산하는 것이다.하지만, 우리는 분할 정복 알고리즘에 익숙해지기 위해 이를 이용하여 계산해보자 1+2+…+n 의 합을 분할 정복을 이용하여 계산해보자 문제를 반으로 나눠보기1부터 n2n\over22n​까지의 합과 n2+1{n\over2}+12n​+1부터 n까지의 합을 구하는 문제로 나눠보자sum(n)..

    Spring Data JPA 활용하기

    JPQL (JPA Query Language)💡JPA에서 사용할 수 있는 쿼리테이블이나 컬럼의 이름을 사용하는 것과 달리, Entity 객체를 대상으로 수행하는 쿼리 매핑된 Entity의 이름과 필드의 이름을 사용한다.SELECT p FROM Product p WHERE p.number=?1;SELECT \;p\;FROM\;Product\;p\;WHERE\;p.number=?1;SELECTpFROMProductpWHEREp.number=?1;위는 JPQL 쿼리의 기본구조이다.Product는 Entity 타입을 의미한다.p는 Entity를 의미한다.p.number는 Entity의 속성을 의미한다.쿼리 메서드JpaRepository로 단순 CRUD 연산은 가능했다.하지만, 좀 더 복잡한 쿼리의 경우 사용자가..

    [Spring Data JPA] - 쿼리 메서드의 주제(Subject) 키워드

    쿼리 메서드 주제에서 사용할 수 있는 키워드는 다음과 같다.find…Byread…Byget…Byquery…Bysearch…Bystream…By find…By 를 이용한 메서드// find...By // 특정 데이터 조회 Optional findByNumber(Long number); List findAllByName(String name); Product queryByNumber(Long number);exists…By 를 이용한 메서드// exists...By // 특정 데이터가 존재하는지 확인 boolean existsByNumber(Long number);count…By 를 이용한 메서드// count...By // 쿼리 결과 후 나온 레코드의 수 long countByName(String name..

    [Spring Data JPA] - 쿼리 메서드의 조건자 키워드

    서술어(Predicate) 부분에서 사용할 수 있는 몇가지 조건자 키워드이다.Is보통 생략하는 키워드값의 일치를 조건으로 사용한다.// Is, Equals 키워드를 사용한 쿼리 메서드 Product findByNumberIs(Long number); // findByNumber 과 똑같다. Product findByNumberEquals(Long number); // findByNumber 과 똑같다.(Is)Not값의 불일치를 사용하는 키워드 Not만 사용해도 무방// Not 키워드를 사용한 쿼리 메서드 Product findByNumberIsNot(Long number); // number 가 아닌 데이터 조회 Product findByNumberNot(Long number); // Is 생략이 가능하..

    [BOJ/JAVA] 1701번: Cubeditor

    1701번: Cubeditorhttps://www.acmicpc.net/problem/1701키워드어떤 문자열 내에서 부분 문자열이 두 번 이상 나오는 문자열을 찾는 기능이러한 부분 문자열 중에서 가장 길이가 긴 것을 구하는 프로그램구현kmp 알고리즘을 이용하여 구현한다.문자열 알고리즘용어 정리 |S| 문자열 S의 길이 S = “abcde” 라면 |S| = 5 S[i] (0 ≤ i < |S|) 문자열 S의 i번 글자 S = “abcde” 라면 S[3] = d S[i…j] 문자열 S[i] 부터 S[j] 까지 부분 문자열 S = “abcde” 라면 S[1…3] = bcd S[…a] 문자열 S[0] 부터 S[a] 까지 부분 문자열 S = “abcde” 라면 S[…3] = abcd S[b…] 문자열 S[b] 부..

    [BOJ/JAVA] 1599번: 민식어

    1599번: 민식어https://www.acmicpc.net/problem/1599키워드민식어는 a b k d e g h i l m n ng o p r s t u w y의 순서ng는 n과 o사이에 오는 하나의 알파벳민식어의 순서대로 정렬하는 프로그램구현다음 3가지를 구현하면 된다.민식어의 우선순위를 처리하는 방법ng를 판단하는 방법문자열을 특정 조건으로 정렬하는 방법 1. 민식어의 우선순위 처리하는 방법final static Map minsikMap민식어는 a b k d e g h i l m n ng o p r s t u w y의 순서대로 우선순위를 가진다.따라서 해당 문자가 몇 번째 우선순위인지 map에 저장해두도록 하자ng는 문자열이므로 -라는 문자로 치환하여 저장하자.2. ng를 판단하는 방법민식어..

    [BOJ/JAVA] 17609번: 회문

    17609번: 회문https://www.acmicpc.net/problem/17609키워드회문(回文) 또는 팰린드롬(palindrome)은 앞 뒤 방향으로 볼 때 같은 순서의 문자로 구성된 문자열회문이 아니지만 한 문자를 삭제하여 회문으로 만들 수 있는 문자열이라면 우리는 이런 문자열을 “유사회문”(pseudo palindrome)문자열 그 자체로 회문이면 0, 유사회문이면 1, 그 외는 2를 출력구현문자열이 회문인지 판단하는 알고리즘문자열이 유사회문인지 판단하는 알고리즘그 외는 둘 다 아님 → 2출력 유사회문인지 판단하는 알고리즘문자 하나를 삭제해서 회문이 되는지 판단하기 위해 2개의 포인터를 사용한다.firstIndex: 문자열 맨앞에서 중앙까지 가는 포인터lastIndex: 문자열 맨뒤에서 중앙까지..

    [BOJ/JAVA] 1958번: LCS 3

    1958번: LCS 3https://www.acmicpc.net/problem/1958키워드LCS(Longest Common Subsequence)문자열 3개의 LCS를 구하는 프로그램구현LCS가 무엇인가?[BOJ/JAVA] 5582번: 공통 부분 문자열5582번: 공통 부분 문자열 5582번: 공통 부분 문자열 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들 www.acmicpc.net 키워드 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 구현 대표적인 LCS문제. 두 문자열 중 공통 부분 문..

    OSI 7계층

    OSI 모델💡서로 다른 두 가지 시스템이 하위 구조에 상관없이 통신을 할 수 있도록 만든 국제 표준 모델호스트 간 연결 방식을 표준화했다.7계층각 계층은 서로 간에 독립적이다.어느 한 계층의 변경이 다른 계층에 영향을 미치지 않는다.1. 물리계층전송매체로 비트를 전송하는 기능전송 방식Simplex한 방향으로만 전송이 가능한 통신 형태단방향 통신, 수신측은 송신측에 응답 불가Half Duplex반이중 전송방식통신하는 두 단말이 양방향으로 통신이 가능하나 동시에 전송은 불가능Full Duplex전이중 전송방전송매체대역폭전송매체를 지나는 신호의 최대 주파수와 최저 주파수의 차이대역폭이 높을수록 단위 시간 당 더 많은 데이터 전송 가능꼬임선두 가닥의 구리선을 나선으로 꼬아서 만든 전송매체동축케이블광섬유2. 데이..