스터디-공부62 5장 목과 테스트 취약성 (4) 3 목과 테스트 취약성과의 관계 이번 절에서 알아 볼 것 - 육각형 아키텍처 (hexagonal architecture) - 내부 통신과 외부 통신의 차이점 - 목과 테스트 취약성 관의 관계 3.1 육각형 아키텍처 정의 육각형 아키텍처는 앨리스터 코오번(Alistair Cockburn) 에 의해 처음 소개되었다. 전형적인 애플리케이션은 도메인(비지니스 로직)과 애플리케이션 서비스라는 두 계층으로 구성된다. 도메인 계층은 애플리케이션의 중심부이기 때문에 도표의 중앙에 위치한다. 도메인 계층은 필수 기능으로 비즈니스 로직이 포함되어 있다. 애플리케이션 서비스 계층은 도메인 계층 위에 있으며 외부 환경과의 통신을 조정한다. 애플리케이션의 API에 대한 모든 요청이 먼저 애플리케이션 서비스 계층에 도달한다. 애.. 2023. 7. 5. 테스트용 크롬 (Chrome for Testing) 원문 Chrome for Testing: reliable downloads for browser automation https://developer.chrome.com/blog/chrome-for-testing/ 23년 6월 12일 글 정리 크롬은 현시점 기준 사용자 점유율이 가장 높은 브라우저이다. 브라우저 테스트를 하면서 번거로웠던 점 중 하나는 브라우저 테스트 환경을 맞춰줘야 한다는 것인데 크롬의 경우에는 자동 업데이트를 권장한다. 이는 글에도 적혀있지만 사용자에게는 좋지만 테스트 개발자에게는 고통이다. 특히 크롬의 경우에는 특정 버전의 Chrome 바이너리 / 이에 맞는 Chrome Driver 를 찾기 어려운 부분이 있었는데 Google 에서는 의도적으로 사용자로 하여금 가능한 최신 버전으로 업.. 2023. 7. 2. 10장 알림 시스템 설계 책에서는 iOS 푸시, 안드로이드 푸시, SMS 메시지, 이메일 에 대해서 다룬다. 한국 기준으로는 알림톡도 적용할 수 있을 것이며 요즘에는 웹 푸시에 점차 활성화 되어가고 있기 때문에 해당 부분도 고려하면 좋을 것이다. 서드파티를 이용하다보면 별별 일이 다 발생된다. 따라서 본문에서 나온대로 오류시 재시도를 할 수 있게 시스템을 구성하거나 오류 발생 시 업무 담당자가 수동으로 트리거 하여 발송할 수 있도록 처리를 해주는 것이 좋을 것이다. 또한 기기 변경 / 연락처 정보 변경 이 발생되었을 경우 어떻게 처리할지에 대한 부분도 고려하면 좋을 것이다. 1단계 문제 이해 및 설계 범위 확정 질문 예시 - 어떤 종류의 알림을 지원해야 하나요? - 실시간 시스템이어야 하나요? - 어떤 종류의 단말을 지원해야 하.. 2023. 6. 29. 9장 웹 크롤러 설계 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 개인적으로 크롤러를 이용해서 자동화 하는 것을 좋아한다고 생각하고 있었는데 이번 챕터를 읽으면서 이런 대규모 크롤러도 만들 수 있다는 것을 알게 된 것 같다. 가볍게 읽을 수 있을 것이라 기대했는데 생각보다 고려할 부분이 많았다. 개요 웹 크롤러의 복잡도는 웹 크롤러가 처리해야 하는 데이터의 규모에 따라 달라진다. 몇 시간이면 끝낼 수 있는 작은 학급 프로젝트 수준일 수도 있고, 별도의 엔지니어링 팀을 꾸려서 지속적으로 관리하고 새선해야 하는 초대형 프로젝트가 될 수도 있다. 1단계 문제 이해 및 설계 범위 확정 웹 크롤러의 기본 알고리즘은 간단하다. 1. URL 집합이 입력으로 주어지면, 해당 URL들이 가.. 2023. 6. 22. 8장 URL 단축기 설계 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 개인적으로 URL 단축기를 만들어 쓰고 있는데 (공개할만한 수준은 아니기에 개인적인 용도로만 사용하고 있다.) 내가 만든 단축기의 경우, Firebase에서 제공하는 hosting에 Firebase의 database 기능을 이용해서 사용하고 있다보니 고려해야 할 부분이 적었다. unique 한 id 생성에 대한 부분도 firebase 자체 기능을 이용해서 크게 신경 쓸 부분이 없었는데 이 책에서는 베이스부터 어떻게 설계해야 하는지에 대해서 설명해줘서 개인적으로 재밌게 보았다. tinyurl 같은 url 단축기를 설계해보자. 1단계 문제 이해 및 설계 범위 확정 시스템 설계 면접 문제는 의도적으로 어떤 정해진 .. 2023. 6. 15. 1장 최신 자바 소개 (4) – HTTP/2 소개 Well-Grounded Java Developer - 2nd edition 1.5.3 HTTP/2 (Java 11) HTTP 표준의 새로운 버전인 HTTP/2가 출시되었습니다. (글 작성 시점 기준 현재는 HTTP/3도 나왔습니다. 2022년 6월 6일, IETF RFC 9114로 표준화되었다고 함) HTTP 1.1(1997년) 에서 업데이트가 된 이유에 대해서 알아보고 Java 11에서 어떻게 HTTP/2를 제공하는지 알아보겠습니다. HTTP 1.1은 오래된 표준이기 때문에 최신 웹 어플리케이션에서 요구하는 성능에 비해 노후화 되었습니다. 이로 인해 아래와 같은 문제가 있었습니다. Head-of-line 블로킹 단일 사이트에 대한 연결 제한 HTTP 컨트롤 헤더의 성능 오버헤드 * 각각의 문제점에 대.. 2023. 6. 11. 이전 1 ··· 3 4 5 6 7 8 9 ··· 11 다음