분류 전체보기 328

N+1문제

1. https://jojoldu.tistory.com/165 JPA N+1 문제 및 해결방안 안녕하세요? 이번 시간엔 JPA의 N+1 문제에 대해 이야기 해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미 jojoldu.tistory.com 2. https://jojoldu.tistory.com/457 MultipleBagFetchException 발생시 해결 방법 JPA의 N+1 문제에 대한 해결책으로 Fetch Join을 사용하다보면 자주 만나는 문제가 있습니다. 바로 MultipleBagFetchException 입니다. 이 문제는 2개 이상의 OneToMany 자식 테이블에 Fetch Join을 선언..

영속성 전이 : CASCADE 와 고아객체

1. 영속성 전이가 사용되는 경우? 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장할 수 있도록 하게 하려면 영속성 전이 기능을 사용해야 한다. 예를 들어 부모 엔티티가 Order이고 자식 엔티티가 OrderDetails(or OrderLines) 일 때 1) Order의 경우 ( order- orderDetails 부분을 보자) @Entity @Table(name = "\"order\"") @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order extends BaseTimeEntity { @Id @GeneratedValue @Column(name = "order_id") private long orderId; @Enu..

LocalStorage, SessionStorage, Cookie -Jwt

1. LocalStorage vs. SessionStorage 웹 스토리지 객체인 LocalStorage와 sessionStorage는 브라우저 내에 키-값 쌍을 저장할 수 있게 해준다. 페이지 새로고침(sessionStorage)을 하더라도, 브라우저를 다시 실행해도(localStorage)데이터가 사라지지 않고 남아있다. 웹스토리지 객체는 쿠키와 다르게 웹 스토리지 객체는 네트워크 요청 시 서버로 전송되지 않는다. 웹 스토리지 객체는 도메인, 프로토콜, 포트로 정의되는 오리진에 묶여있다. 따라서 프로토콜과 서브 도메인이 다르면 데이터에 접근할 수 없다. 1) LocalStorage의 주요특징 : 오리진(도메인, 포트, 프로토콜)이 같은 경우 데이터는 모든 탭과 창에서 공유된다. 또한, 브라우저나 OS..

2. 가상 서버 사용하기 EC2

1. AMIs : 이미지화 1) Create Image : 이미지 생성하는 동안 그 인스턴스 잠깐 서버 멈춘다. 2) 이미지를 기반으로 새로운 인스턴스 만들기 3) 백업할 때 활용 4) create instance 할 때 선택하는 운영체제도 아마존에서 이미지화해서 제공하는 것이다. 사이드 바 보면 MyAMIs, AWS Marketplace(다른 사람이 만들어놓은 것) 등 있다. 4) 도커랑 어떻게 연결할 수 있나? 2. Market Place : wordpress 설치 1) instance 접근방법 : aws 콘솔에서 2) application 접근방법 : aws 설명서에 나와있음 (ex) 관리자 페이지 접근 방법 (아이디, 비밀번호) 3) database 접근 방법 : id, password도 알려줌 ..

DevOps/AWS 2021.08.24

1. AWS(아마존 웹 서비스)란?

1. 아마존 웹 서비스 개요 : 아마존 웹 서비스는 추상화된 각기 다른 계층에 컴퓨팅, 저장공간, 네트워킹 솔루션을 제공하는 웹 서비스 플랫폼이다. 가장 눈에 띄는 서비스는 가상 서버를 제공하는 EC2 와 스토리지를 제공하는 S3이다.(기존의 On-premise와 비교) 2. AWS는 조직이 관리하고 일반 대중이 사용하도록 개방된 공용 클라우드이다. 1) 서비스로서의 인프라(IaaS) : 가상 서버를 이용하여 컴퓨팅, 스토리지, 네트워킹 등과 같은 기본적인 자원을 제공한다(아마존 EC2) 2) 서비스로서의 플랫폼(PaaS) : 클라우드에 사용자 지정 애플리케이션을 배포할 수 있는 플랫폼을 제공한다(AWS 일래스틱 빈스토크) 3) 서비스로서의 소프트웨어(SaaS) : 인프라와 클라우드에서 실행되는 소프트웨..

DevOps/AWS 2021.08.21

서버 성능 테스트

서버 성능 테스트의 목적은 최대 몇 명의 사용자를 수용할 수 있는지 확인하고, 그 결과가 최초 목표한 성능에 부합하는지 알아내기 위해서이다. 1. Throughput : 시간당 처리량으로 TPS(Transaction Per Second), RPS(Request Per Second)등으로 불리며 1초에 처리하는 단위 작업의 수 혹은 1초에 처리하는 HTTP 요청 수 등으로 해석할 수 잇다. 2. Latency : 서비스의 성능을 말할 때 Latency는 서버가 클라이언트로부터 요청을 받아서 응답을 보내주기까지 걸리는 시간을 의미한다. 직역을 하면 서버가 클라이언트의 요청을 처리하는데 발생하는 지연시간 Lactency를 개선하기 위해서는 하드웨어의 처리 성능, 애플리케이션 로직, 쿼리 인덱스 등 다양한 원인..

CS/ETC. 2021.08.11

Redis

1. 사용법, 사용이유 https://meetup.toast.com/posts/224 개발자를 위한 레디스 튜토리얼 01 : NHN Cloud Meetup 레디스는 오픈소스이고, 다양한 서비스에서 레디스를 자유롭게 사용하고 있습니다. 위의 사진에서 볼 수 있듯이 Airbnb, Uber, Instagram도 레디스를 사용하고 있네요. 핑크다이어리, 토스트파일, 두 meetup.toast.com 2. 설정 방법 및 이용방법 https://github.com/jojoldu/blog-code/tree/master/springboot-data-redis GitHub - jojoldu/blog-code: http://jojoldu.tistory.com/ 에서 제공하는 예제 code http://jojoldu.tis..

CS/DataBase 2021.08.11

MySQL 인덱스(Index) & 파티션Partition & Full-Text Search

1. 인덱스 Select시 빨리 추출 가능(수정, 변경 작업 많은 곳에 쓰면 성능 나빠질 수 있다. ) 종류 : 클러스터형 인덱스(영어사전 같은 것), 보조 인덱스(책뒤 찾아보기 기능 같은 것) 클러스터형 인덱스 : 테이블 당 한 개만 생성, 보조 인덱스는 테이블 당 여러 개 생성 가능 클러스터형 인덱스는 행 데이터를 인덱스로 지정한 열에 맞춰서 자동 정렬 primary key(클러스터형 인덱스)또는 Unique(보조 인덱스)에는 인덱스가 자동으로 생성됨( unique인데 notnull 붙이면 클러스터형 인덱스 됨, pk랑 중복 시 pk가 클러스터형 인덱스가 됨) 클러스터형 인덱스는 루트 페이지와 리프 페이지로 인덱스가 구성되어 있으며 인덱스 페이지의 리프 페이지는 데이터 그 자체이다. 보조 인덱스는 데..

CS/DataBase 2021.08.09

DB관련 익셉션 변환 처리 및 트랜잭션 처리

1. DB 관련 Exception처리 1) DB 연동 과정에서 발생 가능 한 익셉션 Access denied for user 'example'@'localhost'~~~ org.springframework.jdbc.CannotGetJdbcConnectionException : Failed to obtain JDBC Connection //DB연결정보가 DataSource에 있으니 DataSource를 잘못 설정하면 연결을 구할 수 없다는 익셉션이 뜨는 것 이 에러는 MySQL서버에 연결할 권한이 없을 경우에 발생 (비밀번호 잘못 입력했을 경우) 2) DB를 실행하지 않았거나 방화벽에 막혀서 연결할 수 없는 경우 org.springframework.jdbc.CannotGetJdbcConnectionExce..

CS/DataBase 2021.08.05

REST API

1. 의미 REST(분산 하이퍼 미디어 시스템(웹)을 위한 아키텍처 스타일) 아키텍처 스타일을 따르는 API 2. REST를 구성하는 스타일 client-server stateless cache uniform interface의 제약조건 (identification of resources, manipulationof resources through representations, self-descriptive messages, HATEOAS) layered system code-on-demand(optional) -ex) JavaScript 서버에서 클라이언트로 보낸 코드가 작동해야 3. uniform interface의 제약조건 1) self-descriptive messages (메시지는 스스로를 설명..

CS/Network 2021.07.30