목록분류 전체보기 (138)
공부하는 스누피
Nginx란? nginx는 경량 웹 서버로 비동기 이벤트 기반 구조이다. 쓰레드 기반의 Apache보다 성능이 좋아 2021년 기준 점유율이 상승세에 있다. HTTP 서버, 리버스 프록시 서버 등으로 활용되는데, 응답 속도나 캐싱 성능 덕분에 주로 리버스 프록시 서버로 사용된다. Nginx가 요청을 처리하는 방법 (아래 공식 docs를 의/번역하였음) http://nginx.org/en/docs/http/request_processing.html How nginx processes a request How nginx processes a request Name-based virtual servers nginx first decides which server should process the request..
SSL (Secure Socket Layer) SSL은 클라이언트와 서버가 주고 받는 데이터의 보안을 제공하는 프로토콜입니다. 클라이언트와 서버 사이의 링크(연결)를 암호화하여 이를 지나는 모든 데이터가 공격받지 않고 노출되지도 않게 합니다. SSL 프로토콜 SSL은 Application Layer와 Transport Layer 사이의 독립적인 계층에 해당되며, 클라이언트가 받은 메시지를 복호화하여 Application data를 넘겨줍니다. Application Layer에서 다루는 메시지 데이터는 SSL에서 여러 조각으로 나뉘어집니다. 각 조각은 압축되고, MAC(Message Authentication Code)가 붙여지며, SHA나 MD5같은 알고리즘으로 암호화됩니다. 이 과정이 끝나면 SSL 헤..
시험에 자주 나오는 유형1. EBS vs EFS vs S3 Instance Store(속도)S3 < EFS < EBSEBS vs EFS vs S3특징EBSEFSS3ColumnStorage TypeBlock StorageFile StorageObject StoragePricingPay for provisioned capacityPay as you UsePay as you UseStorage Size 제한됨무제한 무제한Scalability확장, 축소 가능하긴 한데 새 volume을 만들어서 이전시켜야 함.무제한무제한Availability99.99%No SLAsStandard 쓰면 최대 99.99%SecurityRest 지원 및 Transit 암호화Rest 지원 및 Transit 암호화Rest 지원 및 Tra..
JUnit5란? JUnit은 자바 Unit Testing 프레임워크로, JUnit5는 이전 버전과는 다르게 3개의 서브 프로젝트로 구성되어 있습니다. JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform JVM에 테스트용 프레임워크를 실행시키는 기반 역할을 하며, JUnit4 베이스의 테스트 환경(Test Engine)을 제공한다. JUnit Jupiter JUnit5에서 쓰이는 프로그래밍 모델과 확장 모델을 제공합니다. Jupiter 베이스의 테스트 환경(Test Engine)을 제공한다. JUnit Vintage JUnit3, JUnit4 베이스의 테스트를 지원한다. 환경 요구사항 Java 8 이상 (테스트 대상이 되는 코드는..
1. 개요 Testcontainers는 JUnit test를 지원하는 Java 라이브러리로, Docker로 작동시킬 수 있는 일반 DB, 셀레니움같은 인스턴스들을 간편하게 테스트용으로 사용할 수 있게 한다. Testcontainers의 장점은 다음과 같다. * 데이터 액세스 레이어 통합 테스트: MySQL, PostgreSQL, Oracle 데이터베이스의 컨테이너화된 인스턴스를 사용해 데이터 액세스 레이어 부분의 코드를 테스트할 수 있다. * 통합 테스트 : 데이터 액세스 레이어뿐만 아니라 전체 애플리케이션 통합 테스트를 지원한다. * UI/인수 테스트 : 셀레니움을 지원해 각 테스트가 독립된 인스턴스의 브라우저에서 실행된다. dev 데이터베이스는 주로 테스트용으로 쓰이지만, 테스트 데이터가 격리되지 않..
API 통합 테스트 JUnit에서 제공하는 mockMvc는 api 호출을 통해 테스트를 수행합니다. 예상되는 응답을 설정할 수 있고, 실제 응답이 예상과 다를 경우 assert를 던져 테스트가 실패하도록 합니다. Test Context 설정 @ExtendWith(SpringExtension.class) @SpringBootTest(classes = SpringApplication.class, properties = { ".../application-test.yaml", ".../application.yaml" }) @ActiveProfiles("test") public abstract class TestSupport{ } - 테스트 클래스가 이 클래스를 상속 받게 하면 클래스 별로 Test Context..
Gradle 설정 // https://mvnrepository.com/artifact/mysql/mysql-connector-java implementation 'mysql:mysql-connector-java:8.0.16'application.properties 설정 # datasource config spring.datasource.url=jdbc:mysql://localhost/tobyspring spring.datasource.username=integer spring.datasource.password=1234 spring.datasource.driver-class-name=com.mysql.cj.jdbc.DriverDao에 DataSource import import javax...
1. 클라우드 컴퓨팅 모델 - IaaS (Infra as a Service) : 가상 or 분산 HW, 데이터 스토리지 제공 - PaaS (Platform as a Service) : infra 관리를 대신해주고 사용자가 배포와 app 관리까지만 신경써도 되게끔 함 - SaaS (Software as a Service) : End-User App을 의미. 이메일 프로그램이 대표적인 예. 2. 클라우드 컴퓨팅 배포 모델 - 클라우드 기반 : app의 모든 부분을 클라우드에서 실행 => 기존 app -> 클라우드 마이그레이션 많이 함 - 온프레미스 : 가상화 및 리소스 관리 도구를 사용하여 리소스 배포 => 프라이빗 클라우드 배포, 별도 IDC 인프라 사용 - 하이브리드 : 클라우드 기반 리소스를 온프레미스..