EntityManager? EntityManager는 말그대로 Entity를 관리하는 역할을 하며, 영속성 컨텍스트에 접근하여 Entity에 대한 데이터베이스 상에서의 작업을 제공하는 역할을 한다. EntityManager는 데이터베이스에 대한 작업요청이 발생하면 EntityManagerFactory를 통해 생성되고 JDBC가 제공하는 커넥션 풀(...
JPA? JPA(Java Persistence API)는 자바의 ORM 기술 표준으로 사용되는 인터페이스의 모음을 의미한다. 말 그대로 인터페이스이기 때문에 구현된 것이 아닌 구현된 클래스와 데이터베이스의 테이블을 매핑하기 위한 프레임워크이며 JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. ORM(Object-Relational ...
프로젝트 정리 시작하게된 계기 올해에 복학을 하게 되면서 여러 사람들과 협업하면서 서비스를 만들어보는 경험을 하고싶어서 멋쟁이 사자처럼 대학 연합 동아리에 백엔드 포지션으로 가입하게 되었다. 여름 방학에 멋쟁이 사자처럼의 모든 학교들이 모여 해커톤을 하게 되어 참가하게 되었는데, ‘현대인들의 건강관리를 위한 IT서비스’라는 주제로 프로젝트를 시작하...
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...