Posts
kymin
Cancel

REST(Representational State Transfer) REST 아키텍쳐? Roy Fielding은 REST를 웹이라는 분산 하이퍼미디어 시스템을 위한 아키텍쳐로 정의한다. 이는 소프트웨어 공학 원칙을 적용하고 적용 과정에서 발생 가능한 문제점을 해결하기 위한 제약 조건들과 방법들에 의해 구성된다. REST를 정의 하기 위한 6가지 ...

데이터 검증(Validation) 서버로 들어오는 요청에 포함된 데이터는 여러가지 이유로 정해진 형식이 있을 수 있다. 예를 들어 비밀번호의 경우 복잡성을 높이기 위해 영문과 숫자를 포함하여 7자 이상으로 입력해야 하는 등의 조건이 있을 수 있다. 보통 1차적으로 프론트엔드에서 사용자의 입력값을 검증한 뒤에 검증이 끝난 값을 요청에 포함하여 서버로...

페이지네이션(Pagination) 페이지네이션은 여러 개의 데이터를 일정한 크기로 나누어 제공하는 것을 의미한다. 사용자의 요청에 따라 데이터를 반환할 때 데이터의 양이 많은 경우에는 서버의 부하가 커지고 전달 시간이 오래걸리기 때문에 여러 개의 데이터를 나누어 전송한다. 클라이언트의 관점에서는 일반적인 페이지네이션과 무한 스크롤의 두 가지 방식...

누적 합(sum)과 구간 합(Prefix sum) 누적 합 누적 합은 처음부터 정해진 구간까지 더한 값을 의미하며 누적 합을 이용하여 합 배열을 생성할 수 있다. 합 배열은 주어진 배열에서 0부터 특정 인덱스까지의 데이터가 더해진 값(누적 합)이 배열에 저장된 형태이다. 배열 : [1,2,3,4,5,6,7] 합 배열 : [1,3,6,10,15,...

배열(Array)과 리스트(List) 배열 메모리의 연속된 공간에 값이 채워져있는 형태의 자료구조를 의미하며 각 원소들은 인덱스를 이용하여 참조할 수 있다. 메모리의 연속된 공간에 값이 존재하기 때문에 특정 인덱스의 값을 삭제하거나 삽입할 때에 나머지 값들이 메모리 상에서 이동해야 한다. 배열의 크기는 선언 시에 결정하며 선언이 끝나면 해당 배...

시간 복잡도 활용 시간 복잡도란? 시간 복잡도(Time complexity)는 주어진 문제를 해결하기 위해 필요한 연산의 횟수를 의미하며, 보통 1억번의 연산을 수행시간 1초로 간주 시간 복잡도는 문제를 해결하기 위해 사용하는 알고리즘을 선택하는 기준 시간 복잡도 유형 Big-Omega : 최선인 경우의 연산 횟수를 나타내는 표기법으로 ...

상속 관계인 클래스의 매핑 데이터베이스에는 상속 관계가 존재하지 않는 대신에 상속 관계와 유사한 형태의 슈퍼타입-서브타입 관계라는 모델링 기법이 존재한다. 슈퍼타입-서브타입 여러 가지의 엔티티들에서 공통적인 부분과 그외의 나머지 부분을 나누어 관리하는 데이터베이스 모델링 기법으로 공통된 속성을 부모 클래스로, 그외의 나머지 부분을 자식 ...

영속성 전이 - cascade type cascade type는 영속성 전이에 대한 방법을 어떻게 할 것이냐를 의미한다. 즉 연관관계로 연결된 엔티티를 영속성 컨텍스트로 관리할 때 해당 엔티티와 연결된 엔티티를 어떤 상태로 처리할 것이냐를 의미한다. 영속성 전이 설정은 연관관계의 주인이 아닌 객체에 설정하며 이에 따라 양방향 연결인 경우에 설정이 ...

연관관계 엔티티 객체는 대부분 다른 엔티티와 연결되어 동작하게 된다. 이러한 엔티티의 연결을 연관관계라고 하며 엔티티의 연관관계를 데이터베이스의 테이블과 매핑하는 것을 연관관계 매핑이라고 한다. 객체는 코드상에서 참조를 통해 연관관계를 형성하고 데이터베이스에서는 다른 테이블의 키를 외래키로 설정하여 연관관계를 형성하게 된다. JPA는 객체의 참...

쿼리문의 성능 측정 문제를 해결하는 두 가지 방법 JPA를 공부하다가 예전에 했던 프로젝트를 떠올렸고 문득 성능에 관한 궁금증이 생겼다. 데이터베이스에서 쿼리문을 실행할 때, 조건이 많은 복잡한 쿼리문을 실행하면 실행 시간이 오래걸리게 된다. 그래서 최대한 단순한 쿼리문을 사용하는 것이 좋다고 생각했는데, 쿼리문 실행이 많아지게 되면 마찬가지로...