전체 글 65

+32 Entity 연관관계 1 대 1 관계

더보기 @OneToOne :: 1 대 1 관계를 맺어주는 역할 단방향 관계 먼저 외래키 (FK)를 정해야 한다 1 대 1 관계에서는 외래 키의 주인을 직접 정해야함 ※ 외래 키 주인만이 외래 키를 등록, 수정 , 삭제 할 수 있으며 주인이 아닌 쪽은 오직 외래키를 읽기만 가능 @JoinColumn() :: 외래키의 주인이 활용하는 애너테이션 ex) 컬럼명, null여부, unique 여부 등 지정 가능 ● 고객 Entity가 외래 키의 주인인 경우 (단방향) 양방향 관계 양방향 관계에서는 외래 키의 주인을 지정해 줄때 mappedBy 옵션을 사용 mappedBy의 속성값은 외래 키의 주인인 상대 Entity 필드명을 의미 양방향에서는 외래 키의 주인은 상대 Entity 타입의 필드를 가지면서 @JoinC..

TIL 2023.07.18

+31 Entity 연관 관계

연결 안했을 때(기본) food_id / user_id컬럼추가 ALTER TABLE users ADD food_id bigint; ALTER TABLE food ADD user_id bigint; user 테이블 food 테이블 하지만 이런식으로 하면 위의 테이블 처럼 중복한 값이 들어가있음 참고(일반적으로 이런 방식으로 넣으면 안됨) 예외도 있음 중간역할을 해줄 주문테이블 생성 create table orders ( id bigint not null auto_increment, user_id bigint, food_id bigint, order_date date, primary key (id) ); 중간 테이블을 생성하게 되면 중복도 제거할 수있으며 주문 테이블ID값으로 조회 가능 이렇게 되면 고객:음..

TIL 2023.07.17

+29 RestTemplate의 exchange

RestTemplate의 exchange 개발자가 RestTemplate으로 요청을 보낼 때 Header에 특정 정보를 같이 전달할 때 사용 클라이언트 입장의 서버 - service public List exchangeCall(String token) { // 요청 URL 만들기 URI uri = UriComponentsBuilder .fromUriString("http://localhost:7070") .path("/api/server/exchange-call") .encode() .build() .toUri(); log.info("uri = " + uri); User user = new User("Robbie", "1234"); RequestEntity requestEntity = RequestEnt..

TIL 2023.07.14

+28 RestTemplate Get요청

private final RestTemplate restTemplate; public RestTemplateService(RestTemplateBuilder builder) { this.restTemplate = builder.build(); } RestTemplate builder를 등록 후 .build() 메서드를 호출하면서 RestTemplate를 주입받는다. Query String 방식으로 server to server로 RestTemplate를 사용 Query String 방식 ex) : http://host:port/path?querystring query parameters( 물음표 뒤에 = 로 연결된 key value pair 부분)을 url 뒤에 덧붙여서 추가적인 정보를 서버 측에 전달하..

TIL 2023.07.13

+27 Spring Security 로그인

Security 적용 전 Security 적용 후 ▶ 인증 인가 성공 시 Controller로 사용자정보 요청 전달 (UserDetails) ▶ 인증 인가 실패 시 요청 전달 x / client에게 Error Response 보냄 ☞Security 적용 후 이미지의 노란박스 상세 먼저 ① 로그인시도 (username, password)정보를 HTTP body로 전달(POST요청) ② Authentication Manager(인증관리자) UserDetailsService에게 username을 전달하고 회원상세 정보 요청 ③ UserDetailsService에서 요청한 정보(username)를 회원DB에 회원상세정보 요청 ㄴ 요청한 정보가 없을 땐 Error 발생 User user = userReposito..

TIL 2023.07.12

+26 RestTemplate이란 무엇일까?

● RestTemplate이란? 스프링 프레임워크에서 제공하는 HTTP통신을 위한 클라이언트 라이브러리 ( RESTful 웹서비스와 상호작용하기 위한 편리한 방법 제공 ) 즉, 서버에서 다른 서버로 간편하게 요청할 수 있음! ● RestTemplate 특징 스프링 3.0부터 지원 HTTP 요청 후 JSON , XML, string 과 같은 응답을 받을 수 있는 템플릿 Header, Content-Type 등을 설정하여 외부 api 호출 Server to Server 통신에 사용 기계적이고 반복적인 코드를 최대한 줄여줌 응답의 컨텐츠 타입 따라 별도 로직을 구현해서 작동함 RestTemplate는 spring3부터지원한 동기 방식인 템플릿 spring 4때 추가된 AsyncRestTemplate는 Rest..

TIL 2023.07.11

+4 WIL ORM / SQL / MVC

ORM ( Object-Relational Mapper ) :: 객체 - 관계 매퍼 (객체와 RDBMS의 데이터를 자동으로 매핑해주는 것) 객체지향 과 RDMS의 데이터(관계지향)을 매핑 RDB의 관계를 객체에 반영 객체를 통해서 간접적으로 DB데이터를 다룸 객체와 DB데이터를 자동으로 매핑해줌 ORM이 객체와 관계 사이에서 sql을 자동으로 생성 메소드로 DB데이터 조작 = 객체지향 OOP언어를 그대로 쓰면서 객체와 RDMS의 데이터를 매핑 SQL SQL 은 관계형데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어 관계형 데이터베이스는 정보를 표 형식으로 저장 행과 열은 다양한 데이터 속성과 데이터값 간의 다양한 관계를 나타냄 SQL 문을 사용해서 데이터베이스에서 정보를 저장, 업데이트 제거,..

WIL 2023.07.10

+25 Spring Security : JWT로그인

보안 용어 정리 Principal (접근주체) : 보호된 리로스에 접근하는 대상 인증(Authentication) : 누구인지 , / 보호된 리소스에 접근한 대상에 대해 이 유저가 누구인지 / 주체확인 / 인가(Authorize) : 어떤것을 할 수 있는지 / 해당 리소스에 대한 접근 가능한 권한을 확인하는 과정 (인증 이후) ● JWT인증 처리 ● JwtAuthenticationFilter 로그인 진행 및 JWT생성 package com.sparta.springauth.jwt; import com.fasterxml.jackson.databind.ObjectMapper; import com.sparta.springauth.dto.LoginRequestDto; import com.sparta.springa..

TIL 2023.07.09

+24 Spring Security 프레임워크

Spring Security는 Filter 기반으로 동작함 인증 인가처리를 쉽게 도와줌 @EnableWebSecurity Spring Security 지원을 가능하게함 securityFilterChain() 이 메서드는 개발자가 security를 사용할 때 어떤 url은 인가하고 어떤 url은 인가하지 않은 설정해주고 "어떤 기능을 사용하겠다. " , "어떤 기능은 사용하지 않겠다." 설정들을 수행 ● WebSecurityConfig package com.sparta.springauth.config; import org.springframework.boot.autoconfigure.security.servlet.PathRequest; import org.springframework.context.anno..

TIL 2023.07.08