Posts
kymin
Cancel

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

EntityManager? EntityManager는 말그대로 Entity를 관리하는 역할을 하며, 영속성 컨텍스트에 접근하여 Entity에 대한 데이터베이스 상에서의 작업을 제공하는 역할을 한다. EntityManager는 데이터베이스에 대한 작업요청이 발생하면 EntityManagerFactory를 통해 생성되고 JDBC가 제공하는 커넥션 풀(...

JPA? JPA(Java Persistence API)는 자바의 ORM 기술 표준으로 사용되는 인터페이스의 모음을 의미한다. 말 그대로 인터페이스이기 때문에 구현된 것이 아닌 구현된 클래스와 데이터베이스의 테이블을 매핑하기 위한 프레임워크이며 JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. ORM(Object-Relational ...

Amazon S3? AWS S3는 아마존이 제동하는 객체 스토리지 서비스로 데이터가 저장되는 공간을 버킷(bucket)이라고 하며, 쉽게 말해 외부 저장공간이라고 할 수 있다. 스토리지 서비스이기 때문에 ls, mv, cp, rm 등 파일과 관련된 명령어만 사용이 가능하다. 스프링에서 파일 업로드 설정 스프링에서 S3의 버킷에 파일을 업로드 ...

REST API REST(Representational State Transfer) API는 REST 아키텍쳐 스타일을 준수하는 API를 나타내는 말로 REST 아키텍쳐를 적절하게 준수한 API를 RESTful API라고도 부른다. REST 아키텍쳐는 자원(resource)를 이름으로 구분하여 해당 자원의 상태를 주고받는 것을 의미한다. 즉, HT...

crawling 크롤링(crawling)이란? 크롤링은 웹 페이지를 그대로 가져와서 데이터를 추출해 내는 행위를 말하며 크롤링을 하는 소프트웨어는 크롤러라고 한다. 크롤링이라는 용어는 스크래핑(Scraping)과 자주 혼동되지만 크롤링은 불특정 웹 사이트들을 링크를 통해 탐색하 웹 페이지나 링크를 다운로드하고, 스크래핑은 웹 뿐만 아니라 일반 문...

스프링 MVC MVC(Model-View-Controller)? MVC는 Model, View, Controller의 약자로 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있는 소프트웨어 디자인 패턴이다. Model 데이터를 가진 객체를 의미하며 컨트롤러가 받은 요청의 결과로써 뷰에게 전달된다. ...

외부 API의 테스트 코드 외부에서 제공하는 API를 사용하여 개발한 기능도 다른 기능들과 마찬가지로 테스트코드를 작성해야한다. webClient를 이용하여 외부API를 사용하는 기능을 만든 경우에 webTestClient의 인스턴스를 통해 테스트를 진행하면 외부API를 사용하는 로직의 동작을 테스트할 수 있지만 그 과정에서 실제 외부 API를 호...

외부 API 불러오기 서버는 경우에 따라서 데이터베이스 뿐만 아니라 외부 서버와 통신을 해야하는 경우가 존재한다. 외부에서 제공하는 데이터를 가져오거나 외부에서 제공하는 서비스를 사용해야 하는 경우가 대표적이다. 스프링 프레임워크에서 외부 API를 호출하는 방법은 대표적으로 RestTemplate과 WebClient가 있다. RestTempla...

디렉터리 구조란? 파일 시스템에서 파일 및 하위 디렉터리를 조직화하는 방식을 나타내며, 프로젝트나 소프트웨어 애플리케이션 등 다양한 컴퓨터 프로그램에서 사용된다. 자바에서는 디렉터리의 구분으로 패키지를 구분하기 때문에 패키지 구조라고도 불린다. 효율적인 파일 관리, 코드 구성, 자원 관리 등을 위해 다양한 디렉터리 구조가 사용되며, 디렉터리 구조...