본문 바로가기

분류 전체보기

(187)
[인프라 구축] AWS EC2 백엔드 API 서버 배포 배포(Deployment)- 다른 사용자들이 인터넷을 통해 사용할 수 있게 만드는 것- 우리가 개발을 할 때는 localhost로 개발하게 되나, 다른 컴퓨터에서는 접근이 불가하다 EC2(Elastic Compute Cloud)란?- 컴퓨터를 원격으로 접속해 사용하는 서비스- 서버를 배포하기 위해서는 컴퓨터가 필요하나, 시간적 경제적 비용이 막대하다.- 따라서 AWS EC2라는 컴퓨터를 빌려 사용하는 것- 주로 백엔드 서버 배포에 사용 EC2 배포 - Region 설정: 리전이란 인프라를 지리적으로 나누어 배포한 데이터 센터: EC2는 원격으로 컴퓨터를 빌리는 것이다.: 어디에 있는 컴퓨터를 빌릴 것인가? 에 대한 설정이 region: 사용자의 위치와 지리적으로 가까울수록 전송 속도가 빠르다 ec2 기본..
[DB 핵심원리] 커넥션 풀 & DataSource 보호되어 있는 글입니다.
MockRestServiceServer : 외부 API 호출 테스트 하기 문제 상황 우테코 Lv2 3번째 미션에서는 토스 API 연동을 통해 결제 기능을 구현해야 했다. 이는 우리가 요청에 대한 응답만을 주었던 서버로의 역할 뿐만 아니라, 결제 관련 정보를 토스 측에 전해주고, 토스 측으로 받은 응답을 통해 서비스를 이어가는 클라이언트로의 위치를 겸하게 되었음을 의미한다. 즉, 이제 외부 서버로부터 정보를 받아야 한다. 토스 API 문서가 워낙 친절해서 이것저것 찾아보며 구현은 완성했다.그러나, 페어였던 제제와 함께 찾아나가지 못한 질문이 있었는데외부 API 호출을 사용하는 서비스를 어떻게 테스트해야하는가? 에 대한 고민이다. 고민을 구체화 해보면 다음과 같다.문제1. 외부 API 응답에 대한 제어권이 개발자에게 있지 않다.개발자는 토스 API에 맞춘 요청을 전하고, 예측하고..
우테코 미션으로 찍먹한 QueryDsl : 동적쿼리 문제 상황JPA와 Spring Data Jpa를 처음 접한 날은 신세계의 연속이었다. 그러나, named쿼리가 아닌 JPQL을 작성하면서 JdbcTemplate에서 느꼈던 몇가지 공통된 불편함이 있었다. 문제1) String 쿼리 관리의 불편함 예를 들어 다음 쿼리를 보자@Query(" select r" + "from Reservation r " + "where r.reservationSlot.date = :date " + "and r.reservationSlot.theme.id =:themeId " + "and r.reservationSlot.time.id = :timeId")Optional findByDateAndThemeIdAndTimeId(Lo..
[우테코- Lv3] 아이디어 기획본1 보호되어 있는 글입니다.
[Rest Docs vs Swagger] 2편 : Swagger Spring docs적용기 지난 글에서는 Spring Rest Docs를 활용해 Api 문서를 자동화해보았다.하지만 Rest Docs에 비해 상대적으로 오래전부터 Api 문서화에 쓰였던 툴이 있으니 바로 Swagger이다. 이번 글에서는 Swagger로 Api문서를 작성해보면서어떤 점이 Rest Docs에 비해 좋았고, 또 아쉬웠는지 적어보고자 한다. 먼저 Swagger에 대해 이해하기 위해서는 OpenAPI에 대해 이해할 필요가 있다.- OpenApI란?: RESTful API의 표준 명세 작성 방식: RESTful API가 API 그 자체의 표준 규정이라면, : OpenApI Specification(OAS)는 그 API를 어떻게 문서로 명세해야하는지 표준 구조를 명시 OpenAPI를 지켜 문서를 작성한다면- 코드 사용자가 코..
[Rest Docs vs Swagger] 1편 : Rest Docs로 API 문서 자동화해보기 우테코 선배들이 캠퍼스에 방문했을 때, 프론트 개발자이신 분에게 질문을 한 적이 있다. - 프로젝트를 할 때 백엔드가 프론트를 위해 가장 중요하게 생각해야할 점이 무엇일까요? 답을 주셨다.- API 문서만 잘 뽑아주면 됩니다. 이렇듯 코드협업에 있어 API 문서화는 프로그래밍의 중요한 부분 중 하나이다.이 글은 개인 학습의 목적으로 작성된 글이다. API 자동화 도구인 Swagger와 RestDocs를 공식문서를 참고해 한번씩 실습해보고,이를 통해 내가 느낀 장단을 비교해보고자 한다. API문서란?웹은 정보를 원하는 클라이언트와 그 정보를 제공하는 서버로 나뉜다. 클라이언트들은 서버에게 자신이 원하는 정보를 요청한다.- 클라이언트1 : 정보를 주세요- 클라이언트2 : give me information-..
[Spring] 유효성 검사 목차 유효성 검사비즈니스 로직이 올바르게 작동하려면 데이터 사전 검증작업이 필요하다. 이것을 유효성 검사라고 한다. 자바에서는 2009년부터 Bean Validation이라는 데이터 유효성 검사 프레임 워크를 제공한다. Bean Validation을 사용한다는 것을 유효성 검사를 위한 로직을 도메인 모델과 묶어 각 계층에 사용하겠다는 의미이다.스프링 부트에서의 유효성 검사스프링 부트에서는 각 계층으로 데이터가 넘어오는 시점에 데이터 검사를 실시한다.스프링 부트 프로젝트는 계층간 데이터 전달을 담당하는 DTO 객체를 활용하기에 일반적으로 DTO에서 유효성 검사가 실시된다.스프링 부트 유효성 검사를 위한 의존성 추가스프링 부트 유효성 검사 기능은 spring-boot-starter-web에 포함되어있다. b..