반응형
프레임워크(Framwork) 이미 완성되어 있는 뼈대, 틀을 의미하며, 우리는 제공된 틀안에서 주어진 규칙을 지켜가며 사용합니다. 쉽게 예를 들면 우리가 성공해서 건물을 하나 올린다고 생각해봅시다. 건물으 세운다면 그저 우리가 원하는데로 막 지울 수 있는 것이 아니라 나라에서 정한 건축법에 따라 그 규칙에 맞게 지을 수 있습니다. Java의 Spring에서 규칙 하나를 예를 들면 정적 리소스는 resources/static 폴더에, 동적 리소스는 resources/template 폴더에 담는 규칙이 있죠. 우리는 이미 완성되어 있는 프레임워크를 정해진 규칙에 맞게 사용하여 필요한 기능을 직접 구현할 필요 없이 원하는 기능을 구현하는데 더 집중할 수 있습니다. 프레임워크 예 Java 서버 개발에 사용되는 ..
QueryDSL이란 ? SQL, JPQL 등을 코드로 작성할 수 있도록 해주는 프레임워크로 쿼리를 type-safe(컴파일시 에러 체크 가능)하게 Java 코드로 작성할 수 있습니다. QueryDSL은 동적 쿼리를 아주 편리하게 작성할 수 있어 복잡한 동적 쿼리를 사용해야 할 때 QueryDSL을 사용하고 단순한 경우에는 Spring Data JPA를 사용합니다. QueryDSL은 JPA가 제공하는 JPQL을 코드로 작성할 수 있도록 도와주는 빌더 역할을 하기 때문에 JPQL의 문법에 대한 이해가 필요합니다. SQL과 JPQL의 문제점 QueryDSL을 이해하기 전에 먼저 SQL과 JPQL의 문제점을 알아봅시다. # SQL String sql = "select id, item_name, price, qu..
문제 설명 제한사항 입출력 예 Solution.py 초항 K가 5일 때 콜라츠 추측으로 계산하면 다음과 같은 수열이 나옵니다. [5, 16, 8, 4, 2, 1] 나온 수열 대로 그래프를 그려보면 아래와 같은 그림이 나옵니다. 여기서 각 꼭지점마다 선을 그어서 사다리꼴 사각형을 만들 수 있습니다. 여기서 기억나지 않는 사람들 위해 사다리꼴 사각형이란 무엇인지에 대해 설명하자면 평행한 변이 있는 사각형, 즉 마주 보는 한 쌍의 변이 서로 평행한 사각형을사다리꼴이라고 합니다. 이제 문제의 답을 구하기 위한 각 구간의 넓이를 구해야하는데 그림을 보면 사다리꼴 넓이로 구간의 넓이를 구할 수 있어 보입니다. 각 사다리골 사각형들의 넓이를 구해 구간의 넓이를 구해 봅시다. 사다리꼴 넓이는 ((윗변+아랫변) * 높이..
JPA(Java Persistent API)란 ? ORM (Object Relational Mapping) 객체 관계 매핑 기술의 표준으로 인터페이스의 모음입니다. 따라서 실제로 동작하는 것이 아니기 때문에 구현체가 필요한데, JPA 표준을 구현한 구현체는 아래와 같이 Hibernate, EclipseLink, DataNucleus가 있으며 대표적으로 Hibernate를 사용합니다. ORM 이란 ? ORM 기술은 말 그대로 객체와 관계형 데이터 베이스를 매핑해 주는 기술으로 객체는 객체대로 설계할 수 있고 관계형 데이터베이스는 관계형 데이터베이스대로 설계가 가능하도록 ORM 프레임워크가 중간에서 매핑을 해줍니다. JPA의 동작 과정 JPA는 JAVA 애플리케이션과 JDBC 사이에서 동작하는데 JAVA 애..
문제 설명 제한사항 입출력 예 Solution.py 정답률이 낮은 문제이지만 생각보다 간단하게 풀 수 있습니다. 입출력 예제 2번 그림을 통해 설명해보겠습니다. 1. 첫 행부터 ~ 마지막 행에 있는 파일 중에 제일 처음 파일이 있는 행과 마지막에 파일이 있는 행을 찾아봅시다. 그러면 다음과 같이 표시 됩니다. 2. 첫 열부터 ~ 마지막 열에 있는 파일 중에 제일 처음 파일이 있는 열과 마지막에 파일이 있는 열을 찾아봅시다. 그러면 다음과 같이 표시 됩니다. 3. 표시된 파일을 사각형의 경계로 하여 사각형을 그려봅니다. 그러면 사각형은 다음과 같이 그릴 수 있습니다. 4. 이제 이 사각형의 시작 점 (1, 3 ) 끝나는 점(5, 8) 을 result로 반환하면 [1, 3, 5, 8] 이 됩니다. 이제 아래..
우선 Lock에 대해 알아보기 전에 트랜잭션에 대한 이해가 필요하므로 트랜잭션에 대해 모른다면 아래 포스팅을 참고하시길 바랍니다. 트랜잭션이란? 특징과 사용법에 대해 쉽게 알아보자트랜잭션(Transaction) 트랜잭션은 DB의 상태를 변경시키기 위해 수행하는 작업 단위입니다. 여기서 DB의 상태를 변경시킨다는 SELECT, UPDATE, INSERT, DELETE 와 같은 쿼리를 날려 연산을 수행하는 것입니hstory0208.tistory.com 락(Lock)이란 ?두 명의 사용자가 DB에 접근해 아래 처럼 2개의 DB 세션을 사용한다고 가정해봅시다. ( 여기서는 H2 DB 사용 )편의상 두 개의 세션을 나눠서 세션1, 세션2라고 부르겠습니다.세션1이 트랜잭션을 시작하고 데이터를 수정하는 동안 아직 커..