일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring
- JDBC
- 자바의정석
- sql
- data structure
- Java
- cloud computing
- 크루스칼
- jsp
- 가상컴퓨팅
- BFS
- dfs
- Queue
- 코테
- Stack
- DB
- 알고리즘
- Algorithm
- 암호학
- javascript
- 클라우드 컴퓨팅
- JPA
- dbms
- MVC
- 자료구조
- generic class
- 생성자
- 코딩테스트
- 공개키 암호화
- python
- Today
- Total
목록분류 전체보기 (128)
PLOD
kubernetes그리스어로 조타수라는 뜻 → Docker Container를 제어하는 조타수2014년 구글이 만든 오픈 소스 프로젝트 현재는 CNCF(Cloud Native Computing Foundation)에서 관리서버의 증설 + 다중 서비스 → 여러개의 서버를 똑같은 형상으로 관리하기 위해 쿠버네티스 필요 쿠버네티스 구성 요컨테이너: 쿠버네티스는 컨테이너화된 애플리케이션을 관리합니다. 컨테이너는 애플리케이션을 격리된 환경에서 실행하며, Docker 같은 도구로 생성된 가상화된 애플리케이션 패키지입니다.노드(Node): 쿠버네티스 클러스터의 구성 요소로, 워커 노드는 컨테이너가 실제로 실행되는 물리적 혹은 가상 서버입니다.파드(Pod): 쿠버네티스에서 컨테이너가 실행되는 최소 단위로, 하나 이상의..
※ 이 글은 '스프링 부트 쇼핑몰 프로젝트 with JPA' 책을 참고하여 적은 글입니다.지금처럼 이커머스를 기준으로 프로젝트를 진행할 때 장바구니(위시리스트)와 상품과 회원은 무조건 존재해야 될 엔티티이다.연관관계객체 지향 프로그래밍의 세계와 관계형 데이터베이스의 세계를 연결해주는 개념객체 간의 관계를 데이터베이스의 테이블과 매핑하기 위한 규칙과 방법을 제공연관관계 매핑의 종류는 다음과 같다일대일(1:1) : @OneToOne일대다(1:N) : @OneToMany다대일(N:1) : @ManyToOne다대다(N:M) : @ManyToMany엔티티를 매핑할 때는 방향성을 고려해야 한다. 테이블에서의 관계는 항상 양방향이지만, 객체에서는 단방향과 양방향이 존재한다.1. 단방향 연관관계단방향 연관관계는 한쪽에..
Redis를 사용해서 상품 정보 조회 성능 향상해보았다.상품 아이디 번호(Key)를 통한 상품 정보 캐싱 JMeter를 통해 부하테스트를 해보았다 조건은 다음과 같이 하였다.Thread 개수 : 10000Ramp-up : 30Loop Count : 1접근 페이지 : [GET] http://localhost:8082/product-service/product/2 10000명의 동시 접근 실시 캐싱 전(DB select query를 통한 직접 접근)과 비교하여 인메모리 DB Redis를 사용한 후 속도가 약 99% 정도 증가 되었다.참고https://seowoolog.tistory.com/74 [Spring] Redis로 조회 성능 개선 (Feat. Ngrinder)들어가며 캐시에 저장을 했지만 자주 히트..
현업에서 이커머스 관련 프로젝트를 진행하려면 대규모 트래픽 대응, 마이크로서비스 운영, 캐시, 배치 작업 등 다양한 기술을 활용하여 상품의 선착순 구매를 효과적으로 지원하는 서비스를 만들어야 하는 상황이 생길 것이다.상품의 선착순 구매 페이지는 많은 트래픽이 예상되며, 예상치를 상회하는 트래픽이 몰리는 상황을 가정한다.실제 대규모 트래픽 자체를 다루는 기술은 클라우드 기술을 활용한 경우가 많아 이번 프로그램에서 다루기 어려워서, 이번에 내가 진행한 프로젝트에서는 대규모 트래픽과 분산서버 운영을 고려한 설계능력을 주로 다루고자 한다. 먼저 동시성 문제란, 동일한 하나의 데이터에 2 이상의 스레드, 혹은 세션에서 가변 데이터를 동시에 제어할 때 나타는 문제로,하나의 세션이 데이터를 수정 중일때, 다른 세션에..
캐싱(Caching)캐시는 데이터나 연산 결과를 임시로 저장하여 나중에 동일한 요청에 빠르게 응답할 수 있는 메모리 또는 저장공간을 의미한다.대규모 트래픽 처리에서 캐시는 반복적으로 요청되는 데이터나 연산을 캐싱하여 서버의 부하를 감소시키고 응답시간을 단축시킨다. → 효율적인 자원 활용 + 높은 확장성 , 높은 성능 제공 RedisRemote Dictionary Storage모든 데이터를 메모리에 저장하고 조회하는 in-memory DBkey-value 구조의 데이터 관리 시스템No-SQL실시간 처리가 요구되는 응용 프로그램에서 사용Redis 장점빠른 I/O 처리레디스는 데이터를 메모리에 저장하여 빠른 읽기와 쓰기 작업을 가능하게 한다캐싱, 세션 저장, 실시간 분석등에서 높은 처리 속도가 요구 되는 ..
MSA작고 독립적으로 배포 가능한 각각의 기능을 하는 서비스들로 구성된 아키텍쳐모놀리식 서비스에서 각각의 비즈니스 로직을 분리하여 개별 프로젝트로 생성한 뒤 가장 앞단에 API Gateway와 같은 분배기를 통해 각 서비스 서버에 요청을 분산하여 관리 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 자향 아키텍쳐서비스는 기능별로 구분서비스의 교체가 쉽다각 서비스의 최적인 개발언어 DB, HW , 소프트웨어 환경을 사용하여 구현각 서비스는 독립적인 배포가 가능MSA 장단점장점서비스별 스케일링 가능서비스별 다른 프레임워크 사용 가능 (서비스 별 독자적 운영)하나의 서비스가 off 되더라도 나머지 동작 가능부분적으로 로직 업데이트 가능단점초기 구성의 난이도시스템이 돌아가지만 특정 서비스가 o..