반응형

Spring 13

[Spring] 스프링 시큐리티 로그인 구현하기(spring boot 3.x.x 버전 - spring security 6.x)

스프링 버전 3.1.2 스프링 시큐리티 버전 6.1.2 RestController 로그인 구현하기 1. 라이브러리 추가 dependencies { ... // spring security implementation 'org.springframework.boot:spring-boot-starter-security' // jwt token implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson..

스프링 2023.08.21

[Spring] 스프링부트 RabbitMQ 연동하기

도커를 이용하여 RabbitMQ 서버가 구성되었다고 가정하고 시작함 아래 글 참조 2023.05.31 - [docker] - [docker] rabbitmq 설치 및 사용법 의존성 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-amqp' implementation 'com.fasterxml.jackson.core:jackson-databind' } application.yml 파일에 설정 정보 입력 spring: rabbitmq: host: 접속할 서버 IP 주소 port: 접속할 포트 (default: 5672) username: RabbitMQ 유저 아이디 password: RabbitMQ 유저 비밀번호 v..

스프링 2023.06.14

[에러] Non-standard token 'NaN': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow 해결방법

상황 webclient를 이용하여 API를 호출하고 응답을 Map 형태로 반환함 - 처음 에러 발생한 코드 public Map getResponse(Map params) { try { Map result = this.webClient.post() .uri("{{api 호출 url}}") .body(BodyInserters.fromValue(params)) .retrieve() .bodyToMono(Map.class) .block(); return result; } catch (Exception e) { log.error("[getResponse] Cause: {}", e.getMessage()); return null; } } 이때 api 호출 시 "Non-standard token 'NaN': enab..

에러 2023.03.08

[에러] h2 db 연동 실패 Unsupported database file version or invalid file header in file "/Users/xxx/test.mv.db"

build.gradle 의존성 추가 runtimeOnly group: 'com.h2database', name: 'h2', version: '1.3.175' application.yml 에 db 설정 spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 username: sa password: h2: console: enabled: true settings: web-allow-others: true path: /h2-console spring.datasource.url - jdbc:h2:mem:test : test DB에 In memory로 동작 ( DB_CLOSE_DELAY=-1 사용해주면 ..

에러 2023.01.12

[Spring] Spring Cloud Gateway 사용법

1. dependency 추가 org.springframework.cloud spring-cloud-starter-gateway 2-1. application.yml 파일에 route 정보 설정 server: port: 8000 spring: application: name: apigateway-service cloud: gateway: routes: - id: {route의 고유 식별자}// first-service uri: {해당 route의 주소} // http://localhost:8081/ (이동될 주소) predicates:// 해당 라우터의 조건 (사용자가 입력한 주소) (/first-service/**로 들어오는 요청은 모두 first-service route로 보낸다. - Path=/fi..

스프링 2023.01.01

[Spring] Spring Cloud Netflix Eureka 란?

Eureka란? Service Discovery: 외부에서 MSA를 검색하기 위해 사용되는 개념, client의 요청 정보에 따라서 필요한 msa의 위치를 알려주는 역할 [Service(MSA) 등록, 검색하는 기능] 동작 순서 1. MSA의 위치정보를 eureka server에 등록 2. MSA를 사용할 Client가 요청정보를 API 게이트웨이(Load balancer)에 전달 3. 요청 정보가 Service Discovery에 전달되어 Client가 필요한 정보가 어디에 있는지 Client에게 반환 4. Client의 요청 정보가 MSA를 호출하고 응답을 받음 프로젝트 생성 1. Eureka Server 프로젝트 - dependency : Eureka Server 추가 - Application에 @..

스프링 2022.12.28

[Spring] Jackson 라이브러리로 데이터 필터링하기

@JsonIgnore, @JsonIgnorePropertise - 컨트롤러와 서비스에 모든 데이터가 존재하지만 단순히 사용자에게 데이터의 노출유무만 제어 가능 사용법 - 클래스의 필드에서 숨기고 싶은 필드에 @JsonIgnore 붙여줌 - 클래스 상단에 배열 형식으로 숨기고 싶은 필드를 입력해줌 @JsonIgnoreProperties({"필드명", "필드명", ...}) @JsonFilter - 사용자에 따라 데이터를 필터링하여 json 형태로 보낼때 사용하는 어노테이션 사용법 1. 클래스 상단에 @JsonFilter("필터명") 지정해줌 -> 나중에 필터를 불러올때 지정한 이름으로 불러오게됨 @JsonFilter("UserInfo") class User{ private long id; private S..

mongo db 2022.10.19

[Spring] ServletUriComponentsBuilder 사용하여 사용자에게 URI 전달하기

사용자에게 특정한 URI를 전달할때 ServletUriComponentsBuilder 클래스를 사용한다. ServletUriComponentsBuilder 반환값은 URI로 받고, 컨트롤러에서 반환 타입은 ResponseEntity로 한다. @PostMapping("/users") public ResponseEntity createUser(@RequestBody User user){ ... URI location = ServletUriComponentsBuilder.fromCurrentRequest()//http://localhost:8088/users .path("/{id}")//http://localhost:8088/users/{id} .buildAndExpand(savedUser.getId())//..

스프링 2022.10.10

[Spring] ResponseEntity 에 대하여

ResponseEntity란 간단하게 말하면, ResponseEntity를 사용하여 컨트롤러에서 Http 요청에 대한 응답 상태코드를 원하는 상태코드로 보낼 수 있다. 1. 원하는 Status 전달 사용방법 @PostMapping("/users") public ResponseEntity createUser(@RequestBody User user){ User savedUser = userDaoService.save(user); return new ResponseEntity(HttpStatus.CREATED);//201 created 상태코드 반환 } postman API 호출 결과(응답) - Status: 201 Created 확인! 2. 원하는 Status + URI 전달 Http 요청에 대하여 사용자..

스프링 2022.10.10

ORM / JPA / Spring Data JPA 란?

1. ORM이란? - 어플리케이션의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑하는 것을 의미한다. ( Java 객체 - 관계형DB의 테이블 매핑 ) - 객체지향 프로그래밍과 관계형 데이터베이스의 차이로 발생하는 제약사항을 해결해주는 역할 - 장점: SQL 쿼리가 아닌 직관적인 코드로 테이터를 조작하고, 재사용 & 유지보수가 편리, DBMS에 대한 종속성이 줄어듬 - 단점: 복잡성이 커질 경우 ORM 만으로 구현하기 어려움(직접 쿼리를 구현하는 것이 X → 복잡한 설계가 어려움), 대형 쿼리는 튜닝이 필요할 수 있음 2. JPA란? - ORM 관련된 인터페이스가 모여있는 라이브러리 (* Java에서 표준 ORM으로 채택) (ORM은 큰 개념이고, JPA는 더 구체화 시킨 스펙) - Hibernat..

스프링 2022.08.23
반응형