일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 썸네일 #이미지
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 스토리지 #objects storage #events #upload #알림
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #replica #복제본 #aurora #database #고가용성
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #고가용성 #테스트 #alb #application #load balancer #application
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 #스토리지 #isci #이미지 #업로드
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- aws #아키텍트 #과정 #vpc #인프라 구축 #t.g #target group #alb #application #load #balancer #web #server
- aws #아키텍트 #과정 #vpc #인프라 구축 #amazon sns #server #less #architecture
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 쓰레드 #쓰레드풀 #프로세스
- 업로드 #lambda #함수 #모바일 이미지 #썸네일 이미지
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #trigger #python3.9 #패키지 #
- aws #아키텍트 #과정 #vpc #인프라 구축 #ec2 #instance #launch #template #생성 #ami #amazone #machine #image
- aws #아키텍트 #과정 #vpc #인프라 구축 #second nat #gateway #routing table #route53 #고가용성 #private subnet #
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #round robin #process #high ability #auto scailling #app server #launch template
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #alb #application #load #balancer #security #group #igw #ec2 #vpc #virtual #private #cloud
- aws #아키텍트 #과정 #vpc #인프라 구축 #db #장애조치 #reand only #replica #events
- 프로세스 #CPU #시공유 #커널
- aws #아키텍트 #과정 #vpc #인프라 구축 #auto scailling #lauch template #ec2 instace #private #subnet
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #message #queue #sns구독
- aws #아키텍트 #과정 #vpc #인프라 구축 #alb #load balancer #t.g #target #group #haproxy #high ability #db #replica #region
- 비트 #바이트 #이진수
- aws #아키텍트 #과정 #vpc #인프라 구축 #aurora #database #rds #rdbs #load #balancer #web #page #haproxy
- aws #아키텍트 #과정 #vpc #인프라 구축
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #endpoint #cloudwatch #monitoring
- Today
- Total
목록Spring (56)
요리사에서 IT개발자로
application.yml spring: datasource: username: root url: jdbc:mysql://localhost:3306/newsfeed password: gudtjr03! application: name: NewSfeed jpa: properties: hibernate: format_sql: 'true' use_sql_comments: 'true' show_sql: 'true' hibernate: ddl-auto: updatejwt: secret: key: 7Iqk7YyM66W07YOA7L2U65Sp7YG065+9U3ByaW5n6rCV7J2Y7Yqc7YSw7LWc7JuQ67m..
회원 가입 내부 회원 가입 로직은 세션 방식과 JWT방식의 차이가 없다.로그인 (인증) 로그인 요청을 받은 후 세션 방식은 서버 세션이 유저 정보를 저장하지만JWT방식은 토큰을 생성하여 응답한다.경로 접근(인가) JWT Filter를 통해 요청의 헤더에서JWT를 찾아 검증을 하고 일시적 요청에 대한 Session을 생성한다.생성된 세션은 요청이 끝나면 소멸한다 https://docs.spring.io/spring-security/reference/servlet/architecture.html Architecture :: Spring SecurityThe Security Filters are inserted into the FilterChainProxy with the SecurityFilterChain ..
JWT(Json Web Token)란JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim기반 WebToken이다.토큰의 한 종류라고 생각하면된다.쿠키저장소를 사용하여 JWT를 저장한다. 서버가 1대인 경우에는 Session1이 모든 Client의 로그인 정보를 소유한다 서버가 2대 이상인 경우(대용량 트래픽 처리)Session마다 다른 Client 로그인 정보를 가지고 올 수 있다.Client1의 로그인정보가 Servie1에 저장이되있다는 가정하에Client1은 그런거 모르고 API를 요청한다면Server2와 Server3에도 API를 요청하게 될 수 있다. 이러한 문제의 해결방법은 Sticky Session을 이용하여 Client마다 Server에 고정한다.or세션 저장소를 따로 생성하여..
Validation 올바르지 않은 데이터를 걸러내고 보안을 유지하기 위해데이터검증 (validation)은 여러 계층에 걸쳐서 적용된다. Client의 데이터는 조작이 쉽고 모든 데이터가 정상적인 방식으로 들어오는 것도 아니기에 Client Side 뿐만 아니라 Server Side 에서도데이터 유효성을 검사 해야 할 필요가 있는데Spring Boot 프로젝트에서 @validated를 이용해서 유효성을 검증할 수 있다. 스프링의 기본적인 validation인 Bean Validation은 클래스 "필드"에 특정 어노테이션을 적용시키고 필드가 갖는 제약 조건을 정의하는 구조로 이루어진 검사이다. validator가 비즈니스적 로직에 대한 검증이 아닌, 그 클래스로 생성된 객체 자체의 필드에 대한 유효성..
CACADE의 REMOVE옵션을 적용하면 해당 Entity 객체를 삭제할 때 연관된 Entity 객체들을 자동 삭제할 수 있다.https://hs-backend.tistory.com/166 스파르타 부트캠프 Spring Master 3강 영속성 전이@Test@DisplayName("Robbie 음식 주문")void test1() { // 고객 Robbie 가 후라이드 치킨과 양념 치킨을 주문합니다. User user = new User(); user.setName("Robbie"); // 후라이드 치킨 주문 Food food = new Food(); food.setName("후라hs-backend.tistory.com REMOVE 옵션같은 경우 연관된 Entity를 제거했다해서자동으로 해당 User En..
@Test@DisplayName("Robbie 음식 주문")void test1() { // 고객 Robbie 가 후라이드 치킨과 양념 치킨을 주문합니다. User user = new User(); user.setName("Robbie"); // 후라이드 치킨 주문 Food food = new Food(); food.setName("후라이드 치킨"); food.setPrice(15000); user.addFoodList(food); Food food2 = new Food(); food2.setName("양념 치킨"); food2.setPrice(20000); user.addFoodList(food2); userRepository.save..
음식테이블과 고객 테이블이 N: 1양방향 관계일 때@Test@DisplayName("아보카도 피자 조회")void test1() { Food food = foodRepository.findById(2L).orElseThrow(NullPointerException::new); System.out.println("food.getName() = " + food.getName()); System.out.println("food.getPrice() = " + food.getPrice()); System.out.println("아보카도 피자를 주문한 회원 정보 조회"); System.out.println("food.getUser().getName() = " + food.getUser()...
@ManyToMany에너테이션은 N대 M관계를 맺어주는 역할을 한다. 단방향 관계음식 Entity가 외래키의 주인이다.N:M관계를 풀어내기 위해서중간 테이블 (orders)을 생성하여 사용한다.import jakarta.persistence.*;import java.util.ArrayList;@Entity@Table(name = "food")public class Food { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; @ManyToMany @JoinTable(name = "orders", // 중간 테이..
@OneToMany = 1 대 N 관계 단방향 관계에서외래키를 관리하는 주인은 음식 Entity이지만실제 외래키는 고객 Entity가 갖고있다. 1:N에서 N관계의 테이블이 외래키를 가질 수 있기에외래키는 N관계 users테이블에 외래키 컬럼을만들어 추가하지만 외래 키의 주인인 음식Entity를 통해 관리한다. 간단히 말하자면음식(외래키)은 하나인데 고객이 여러명이 주문을했다면(N)음식하나에 고객주문 여러명의 정보를 출력할 수 있다.1 : N 관계 그래서 Food가 외래키(1)이라면실제 주문 1의 외래키는 Food테이블에서 관리하고users에서 외래키를 담당하는것은고객 100명이면 외래키 100개까지 있는것이다. 하지만고객정보 users(N)에서 개개인을 하나씩 조회하는것보다Food는 한가지이기에 Foo..
N대 1관계 = @ManyToOne 음식 Entity가 N의 관계로 외래키의 주인@Table(name = "food")public class Food { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; @ManyToOne @JoinColumn(name = "user_id") private User user;}@Table(name = "users")public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) priv..