1. 모놀리식 (Monolithic)모놀리식은 시스템의 모든 비즈니스 로직이 하나의 서버에 의해 처리되는 방식으로 배포가쉽고 시스템을 빠르게 만들 수 있다는 장점이 있어 초기 서비스를 만들 때 유용한 방식이다. 하지만 시스템 규모가 커짐에 따라 다음과 같은 단점이 발생할 수 있다. 단일장애지점 : 하나의 장애가 발생하면 시스템 전체에 영향을 미침트래픽 대응 : 특정 서비스의 트래픽 증가시 대응하기 위해 모든 서비스(시스템 전체) 리소스 스케일링 필요기술에 종속적 : 작은 기능을 수정 해도 전체 배포를 하기 때문에 테스트 시간이 많이 필요하고 오류가 자주 발생하여 신기술 도입 어려움2. MSA (Micro Service Architecture)모놀리식 아키텍처를 Microservice 단위로 쪼갠 후 독립..
메일전송 과정 화면의 HTML(스트링)을 gmail로 전송했을 때 텍스트는 보이지만 이미지는 보이지 않는 현상이 발생했다. Java의 SMTP를 이용해 전송했으며, 콘솔창을 통해 태그의 내용(메일의 body )이 정상적으로 생성된걸 확인했지만, 정작 메일을 수신했을 때 이미지만 보이지 않았다. 개발자 도구를 통해 메일을 확인해보니 이미지 영역의 태그는 존재하지만 로 비어있는 상태였다. 알고보니 gmail 뿐만 아니라 대부분의 메일 서비스에서는 Base64를 통한 이미지 표시를 지원하지 않는다고 한다. Base64 이미지를 담은 html 파일을 첨부파일로 보내도 브라우저에서는 확인 불가능하며 사용자의 PC에 해당 html 파일을 직접 다운로드 해야만 확인할 수 있었다. Gmail doesn't suppor..
1. 브라우저 주소창에 www.naver.com을 입력 2. 캐시탐색 DNS를 이용해 호스트네임(naver.com)의 서버로 접근하기 위한 IP주소를 얻을 수 있다. 그 전에 클라이언트 측에 저장된 캐시를 탐색한다. 만약 캐시에 IP 정보가 있다면 DNS로 요청을 하지 않아도 되므로 로딩속도 향상을 기대할 수 있다. 캐시 탐색은 (브라우저 캐시 → OS 캐시 → 라우터캐시 → ISP캐시) 순으로 순차적으로 이루어진다. 브라우저 캐시: 이미 방문한 웹 페이지의 데이터를 저장한 캐시이다. 캐시가 존재하면 서버로부터 데이터를 다운로드하지 않고 바로 표시할 수 있다. OS 캐시: 운영체제 수준에서 캐시가 구성되어 있는 캐시이다. 라우터 캐시: 라우터(공유기)에 저장된 캐시로 DNS 정보 및 웹 페이지 데이터의 ..
인덱스 테이블에 저장되어있는 데이터를 스캔할 때 table full scan을 수행하면 O(n)만큼의 시간복잡도를 가진다. 저장된 데이터가 많아질 수록 검색속도가 느려지게 되는데, 이 때 인덱스를 이용하면 검색속도를 향상시킬 수 있다. 인덱스 생성 인덱스는 자동으로 생성되는 인덱스와 사용자가 수동으로 생성하는 인덱스가 있다. 대부분의 RDBMS에서는 테이블 정의에서 PRIMARY KEY 또는 UNIQUE 제약 조건을 정의하면 인덱스가 자동으로 생성되는데 이를 고유 인덱스라고 하며, 사용자가 직접 생성한 인덱스를 비고유 인덱스라고한다. 생성쿼리 CREATE [UNIQUE][BITMAP]INDEX 인덱스이름 ON 테이블 (column[, column]...) 인덱스가 기반으로 하는 열의 값이 고유해야 함을 ..
배치(Batch) 데이터가 생성 또는 요청될 때마다 실시간으로 처리하는 것이 아니라 저장해두었다가 대량의 데이터를 일괄적으로 처리하는 프로세스이다. 백업, 필터링, 정렬과 같이 개별 요청을 트랜잭션에서 처리하기 비효율적인 경우 또는 유사한 업무를 한 번에 일괄처리해 자원을 효율적으로 사용할 수 있다. 배치의 특징 1. 대량의 데이터를 처리한다 2. 특정 시간에 처리한다. 3. 일괄적으로 처리한다. 대량의 데이터를 일괄처리하는 것이 배치의 핵심이다. 이 때 배치가 실행되는 시간은 시스템 부하가 발생할 수 있는 시간을 피하는 것이 좋다. 배치를 사용해야하는가 배치를 적용하면 요청을 실시간으로 반영하지 않아도 되기 때문에 웹/클라우드 상에서 자원을 효율적으로 사용할 수 있다. 그러나 배치 프로세스가 적용되면 ..
IP 네트워크에서 통신을 위해 서로를 식별하는데 IP 주소를 이용한다. 그러나 우리는 대부분 IP주소를 이용해 웹사이트에 접근하지 않는다. 사용자가 사이트마다 IP주소를 기억하기 힘들고, 서버 IP가 변경된다면 새로운 IP주소를 받아와야하기 때문에 대부분 도메인 네임(www.naver.com 등)을 이용해 접근한다. 하지만 가변길이의 문자로 구성된 도메인네임을 라우터가 처리하기에는 어려움이 있는데, 이 때 사용자가 요청한 도메인네임을 라우터가 처리할 수 있는 IP 주소로 변환시켜주는 시스템이 DNS(Domain Name System)다. DNS 호스트네임을 IP 주소로 변환해주는 서비스를 제공하는 분산형 데이터베이스 디렉터리 서비스이다. 애플리케이션 계층에서 동작하며 프로토콜은 UDP, 포트는 53을 이..
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런... www.inflearn.com 인프런 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 수강한 뒤 정리한 글입니다. 목차 • 인터넷 네트워크 • URI와 웹 브라우저 요청 흐름 • HTTP 기본 • HTTP 메소드 • HTTP 메소드 활용 • HTTP 상태코드 • HTTP 헤더1(일반헤더) • HTTP 헤더2 : 캐시와 조건부 요청 캐시의 기본동작 설명 데이터가 변경되지 않았음에도 계속 네트워크로부터 데이터를 받는 것은 비효율적이다. 캐시를 활용하면 이러한 점을 해결할 수 있다. 캐시가 없는 경우 웹 브라우저에서..
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런... www.inflearn.com 인프런 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 수강한 뒤 정리한 글입니다. 목차 • 인터넷 네트워크 • URI와 웹 브라우저 요청 흐름 • HTTP 기본 • HTTP 메소드 • HTTP 메소드 활용 • HTTP 상태코드 • HTTP 헤더1(일반헤더) • HTTP 헤더2 : 캐시와 조건부 요청 1. HTTP 헤더 개요 header-filed 문법 filed-name ":" OWS field-value OWS (OWS : 띄어쓰기 허용, filed-name은 대소문자구분이 없다..
- Total
- Today
- Yesterday
- 프로그래머스
- Open API
- 개발용어
- HeidiSQL
- 오라클
- JVM
- 스프링
- C++
- 환경설정
- 국비교육
- 부트스트랩
- 데이터베이스
- Thymeleaf
- 오류
- 백준
- Java
- C
- CS
- 스프링부트
- 넥사크로
- 인턴
- 네트워크
- svn
- CSS
- JSP
- SQL
- 이클립스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |