[Spring] WebClient를 통한 공공데이터 Open API 호출
·
Back-end/Spring
공공데이터 Open API를 사용하는 서비스의 흐름을 알기 위해 공부를 하면서 알게 된 내용들을 기록하는 글입니다. 오류나 고쳐야 할 사항들이 있다면 피드백 부탁드리겠습니다!WebFlux 라이브러리를 사용한 이유Spring에서 외부 API를 사용할 수 있는 종류는 다음과 같다.HttpURLConnectionRestTemplateWebClientHttpURIConnection은 URLBuilder를 사용하여 코드를 작성한 것으로, 생각보다 코드가 길고 장황하다.RestTemplate은 Spring에서 지원하는 객체로, 동기식으로 Rest 방식 API를 호출할 수 있는 Spring 내장 클래스이다.동기적으로 동작하기 때문에 요청/응답 동안 스레드가 차단되는 문제점이 있을 뿐더러, Spring boot 5...
[Nest.js] 3. Testing
·
Back-end/Nest.js
[Nest.js] 2. Nest.js로 REST API 만들기이전 글을 읽고 Nest.js 설정을 하는 게 좋음. [Nest.js] 1. Nest.js 프로젝트 구조 파악하기노마드 코더님의 nest.js 기초 강의를 토대로 필기한 것입니다.nest.js란node.js의 웹 프레임워크로, express위에서sksmsfbrjs51.tistory.comIntroduction of Testing in Nestpackage.json 파일에는 테스팅과 관련된 스크립트가 5개가 있다. 테스트 시에는 jest 사용 (js를 쉽게 테스팅하는 npm 패키지)testtest:watchnpm run test:watch (모든 테스트파일을 관찰해서 무슨 일이 일어나는 지 관찰)test:covcoverage modetest:de..
[Nest.js] 2. Nest.js로 REST API 만들기
·
Back-end/Nest.js
이전 글을 읽고 Nest.js 설정을 하는 게 좋음. [Nest.js] 1. Nest.js 프로젝트 구조 파악하기노마드 코더님의 nest.js 기초 강의를 토대로 필기한 것입니다.nest.js란node.js의 웹 프레임워크로, express위에서 작동하는 프레임워크이다. express와 fastify 두 가지가 전부 호환되므로 매우 실용적인sksmsfbrjs51.tistory.com Nest.js로 영화 REST API를 만들어보자Movies controller우리는 @nestjs/cli 를 설치했기 때문에 커맨드 라인으로 모든 것을 생성할 수 있다. 여기서 새로운 컨트롤러를 생성해보자nest generate(g) co 이후 사용하고자 하는 controller 이름을 생성하면 다음과 같이 폴더가 생성된다..
[Nest.js] 1. Nest.js 프로젝트 구조 파악하기
·
Back-end/Nest.js
노마드 코더님의 nest.js 기초 강의를 토대로 필기한 것입니다.nest.js란node.js의 웹 프레임워크로, express위에서 작동하는 프레임워크이다. express와 fastify 두 가지가 전부 호환되므로 매우 실용적인 프레임워크라고도 할 수 있다. 프로젝트 구조nestjs는 Spring과 유사하게 비즈니스 로직을 담당하는 service와 엔드포인트에 매핑되는 controller가 분리 되어있다.src 안에는 main, app.controller, app.service, app.module이 존재한다.main.tsimport { NestFactory } from '@nestjs/core';import { AppModule } from './app.module';async function boo..
[Java] 큰 정수 타입 다루기
·
Java
Java에서 int타입의 범위는 -2,147,483,648 ~ 2,147,483,647이고Long 타입의 범위는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807이다. 자바에서는 그 범위를 넘어서게 되면 모두 0으로 출력이 된다. 만약 이보다 더 큰 숫자를 다루게 된다면 BigInteger 클래스를 활용해보자!BigInteger 사용법선언BigInteger bigNumber = new BigInteger("0");BigInteger[] memo = new BigInteger[10]; BigInteger을 초기화하기 위해서는 문자열을 인자 값으로 넘겨주어야 한다사용법BigInteger a = new BigInteger("1000");BigInteger b =..
[Spring] H2 DataBase 사용법
·
Back-end/Spring
1. H2 DataBase란?H2 데이터베이스는 설치가 필요 없고 용량이 가벼우며 개발용 로컬 DB로 사용하기 좋은 DBMS이다.자바 기반의 오픈소스 관계형 데이터베이스 관리 시스템(DBMS).서버(Server) 모드와 임베디드(Embedded) 모드의 인메모리 DB 기능을 지원.브라우저 기반의 콘솔 모드를 이용할 수 있음.별도 설치과정이 없고 2.5MB 이하의 저용량 DB.표준 SQL의 대부분을 지원로컬 및 테스트 환경에서 많이 사용됨.2. 설치 후 사용법1. http://h2database.com/html/main.html 에서 다운로드.2. C:\Program Files(x86)\H2\bin 위치에서 h2 window 파일 실행하기. H2 DBH2 DB에는 3가지 모드가 있다.- Server Mod..
[Spring] Spring만의 유효성 검사 @Valid, @Validated 정리
·
Back-end/Spring
실행 환경build.gradleimplementation 'org.springframework.boot:spring-boot-starter-validation:3.2.2'  1. @ValidValid 어노테이션은 주로 request body를 검증하는데 많이 사용된다.다음 UserDto를 보자public class UserDto { @Email private String email; @NotBlank private String password; @Valid // @NotNull 대신 @Valid를 사용해야함 private Address address; // 생성자 및 getter 함수}public class Address { @NotBlank priv..
[Express.js] Passport 모듈을 활용한 카카오 소셜 로그인 구현
·
Back-end/Node.js
Passport란?Passport는 이름 그대로 서비스를 사용할 수 있게끔 해주는 여권 같은 역할을 하는 모듈이다.회원가입과 로그인은 직접 구현할 수도 있지만, 세션과 쿠키 처리 등 복잡한 작업이 많으므로 검증된 모듈을 사용하는 것이 좋다.그런 방면에서, Passport는 사용하기 좋은 검증된 모듈이다. 특히 facebook이나 kakao, google 같은 소셜 로그인 시에  passport 모듈이 사용된다. 1. Kakao Developers에서 애플리케이션 생성카카오 디벨로퍼에서 내 애플리케이션 -> 추가하기를 눌러 앱을 생성한다 이렇게 애플리케이션을 생성하면 앱 설정 -> 앱 키에서 REST API 키를 확인할 수 있는데, 추후에 kakao Strategy에 사용될 API KEY이므로 env 파..