목록분류 전체보기 (141)
공부하는 스누피

토비의 스프링은 개발자 필독서로 꼽히는 책으로, 특히 스프링을 다루는 백엔드 개발자들은 많이 들어본 이름일 것이다. 유명한 책이지만 권당 880 페이지에 달하는, 전공 서적과 맞먹는 분량 덕분에 완독하기 힘들다고 소문이 나 있다. 괜히 힘들다고 할 수록 정복하고 싶어지는 욕심이 나기도 했고, 당시 이펙티브 자바를 완독해 언어 보다는 프레임워크에 대해 알고 싶어서 스터디를 꾸려 완독에 도전해 보기로 했다. 네트워크, 컴퓨터 구조같은 비슷한 분량의 책을 혼자 독파한 적은 몇 번 있었지만, 토비의 스프링은 프레임워크를 다루기 때문에 학부생 대상인 전공 서적과는 결이 다르다고 느꼈다. 어떤 기술에 대한 개념을 다루는 것은 같은데 접근하는 방식이 달랐다. 주니어 개발자가 스프링으로 작은 프로젝트를 하면서 '이건 ..

사전처럼 바로 찾아 쓰는 알고리즘은 지금까지 구매해 놓고 한 번도 완주할 생각을 못 했던 책이었다. 책장에 꽂혀 있은 지 거의 몇 년이 되어 가는데 제대로 읽어 보지 못했던 것 같아 오랜만에 알고리즘을 복습하는 겸 꺼내 봤다. 책을 보니 몇 년 전에 내가 남겼던 흔적들이 보였는데, 정확히 시간복잡도를 계산하는 부분에서 밑줄과 메모가 끊겨 있었다. 왠지 그렇게 놔 두면 찝찝함으로 남을 것 같아서 제대로 책을 펴고 읽기 시작했다. 책 두께는 제법 두꺼웠지만 종이 재질이 외국 서적의 종이와 비슷해서 가볍고, 쪽수도 403쪽으로 그렇게 내용이 많지는 않았다. 이미 알고 있는 내용도 있어서 그런지 이틀 만에 완독할 수 있었다. 이 책은 제목처럼 사전같이 모든 알고리즘을 담고 있진 않다. 대신 저자가 유용하다고 생..
프록시 : 클라이언트의 입장에서 트랜잭션을 수행하는 중개인 프록시 vs 게이트웨이 프록시는 같은 프로토콜을 사용하는 둘 이상의 App을 연결하고, 게이트웨이는 서로 다른 프로토콜을 사용하는 둘 이상의 App을 연결한다. 프록시를 쓰는 이유 모든 트래픽을 볼 수 있고, 건드릴 수 있어 부가 기능을 제공할 수 있다. 보안을 강화할 수 있다. (방화벽 프록시) 프록시의 종류 1 - 쓰임에 따른 종류 보안 방화벽 웹 캐시 대리 프록시(Surrogate, 리버스 프록시) 콘텐츠 라우터: 콘텐츠의 종류에 따라 다른 웹 서버와 연결 익명화 프록시(Anonymizer) : HTTP 메시지에서 신원을 식별할 수 있는 특성을 제거해 익명성 보장에 기여함. 프록시의 종류 2 - 배치에 따른 종류 출구(Egress) 프록시:..
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 데이터베이스는 주로 테스트용으로 쓰이지만, 테스트 데이터가 격리되지 않..