Book

· Book
1장. 웹 성능이란 무엇인가? 웹이란? 전 셰계 사람들이 인터넷에 연결된 컴퓨터를 통해 수 많은 정보를 공유 할 수 있는 인터넷의 대표적인 서비스 물리학자들 간의 공동 연구를 진행하고 결과를 공유하기 위해 팀 버너스 리 등이 개발 이전에도 TCP/IP 또는 UDP를 통해 클라이언트-서버 간 네트워크 통신 또는 소켓 네트워크 기술을 통해 데이터 교환이 가능했지만, 웹은 페이지 기반으로 문서 읽듯 브라우저를 통해 정보를 교환하는 방법 즉, 하이퍼텍스트를 바탕으로 관련 있는 문서들을 연결한 집합체 따라서 사용자는 서로 연관되어 있는 페이지를 연결해 웹 페이지의 하이퍼링크를 통해 다른 페이지로 이동하거나 사용자 정보를 입력할 수 있음. 웹의 대표적인 요소 URL(Uniform Resource Locator) 인..
· Book
2장. 운영 서버 환경의 구성 2.1. 운영 서버 아키텍처의 이해 단일 서버 요청을 보내는 클라이언트와 요청을 처리하는 서버가 한 대가 있다. 데이터베이스와 애플리케이션이 하나의 서버에서 실행되고 있다. 따라서 별도의 네트워크설정을 할 필요가 없다는 장점이 있다. 단점 전체 서비스에 장애가 생길 확률이 높다 데이터베이스와 애플리케이션이 자원을 공유하기 때문에 하나라도 자원을 모두 사용하거나 장애가 발생하면 전체 서비스의 문제가 발생한다. 서버 자원을 효율적으로 사용하기 어렵다 애플리케이션과 데이터베이스는 각 속성에 따라 더 중요한 자원의 종류나 최적화를 위해 필요한 OS 설정이 다를 수 있다. 둘다 만족하기 위해 필요 이상으로 고사양 서버를 사용해야 한다. 보안성이 떨어진다 데이터베이스는 보안상 포트나 ..
· Book
1장. 운영 서버와 AWS 소개 1.1. 운영 서버 실세 사용자들을 대상으로 서비스하는 서버 트래픽 대응, 빠른 응답 속도, 높은 가용성 보장이 중요 1.2. 운영 서버 관리의 세 단계 환경 구성 서비스할 코드를 구동시킬수 있는 서버 인프라 구축 코드 배포 구성환 환경에 최신 버전 코드를 빠르고 안전하게 배표 모니터링 안정적인 서비스 운영을 위해 서버와 코드에 어떤 이상이 없는지 바로 파악하고 대응할 수 있게 도와주는 것 1.3. AWS Amazon Web Service는 2006년 미국 기업 아마존에서 만든 클라우드 서비스 플랫폼이다. 클라우드 서비스 플랫폼을 써야 하는 이유 과거에는 아래와 같이 인프라를 운영했다 서버를 직접 구매한 후 회사나 IDC에 설치 관리 서버뿐만 아니라 수많은 인프라(DB, ..
· Book
[리뷰] 당당한 디자인 결정을 위한 9가지 방법 한 줄 요약 : 기획자와 디자이너가 이런 UI/UX를 선택했는지 알 수 있는 책 개발자이지만, 이 책을 신청한 이유는 프론트, 백엔드 둘다 개발을 하면서 해당 기능에 대한 UI/UX를 왜 이렇게 선택하는지?에 대한 이유가 궁금해서 였다. 그러나 이책을 읽고 그것뿐만 아니라 많은걸 배우게 되었다. 그 중 가장 인상깊은게, 기록에 대한 내용이였는데 이번 리뷰에서는 기록에 대한 내용을 초점으로 써보려고 한다. 보다 효과적으로 기록하기 찾아보기 쉬워야 한다. 깔끔하게 정리해야 한다. 구체적이여야 한다. 확실해야 한다. 실행 가능해야 한다 참고자료를 더하자 앞을 내다보며 기록해야 한다. 이 책에서 나오는 7가지 모두 굉장히 공감되는 부분이였지만, 가장 공감햇던 내용..
· Book
11. 의식적으로 지름길 사용하기 왜 지름길은 깨진 창문 같을까? 깨진 유리창 하나를 방치해 두면, 그 지점을 중심으로 범죄가 확산되기 시작한다는 이론으로, 사소한 무질서를 방치하면 큰 문제로 이어질 가능성이 높다는 의미를 담고 있다 품질이 떨어진 코드에서 작업할 때 더 낮은 품질의 코드를 추가하기가 쉽다. 코딩 규칙을 많이 어긴 코드에서 작업할 때 또 다른 규칙을 어기기도 쉽다. 지름길을 많이 사용한 코드에서 작업할 때 또 다른 지름길을 추가하기도 쉽다. 유스케이스 간 모델 공유하기 유스케이스 간에 입출력 모델을 공유하게 되면 유스케이스들 사이에 결함이 생긴다. 단일 책임 원칙에서 이야기하는 변경할 이유를 공유하는 것이다. 출력 모델을 공유하는 경우에도 마찬가지다. 유스케이스 간 입출력 모델을 공유하는..
· Book
10. 아키텍처 경계 강제하기 경계와 의존성 아키텍처 경계를 강제한다는 것은 의존성이 올바른 방향을 향하도록 강제하는 것을 의미한다. 아키텍처에서 허용되지 않은 의존성을 점선 화살표로 표시했다. 접근 제한자 자바의 접근제어자(public, protected, private, private-package) package-private 제한자가 왜 중요한가? 자바 패키지를 통해 클래스들을 응집적인 모듈로 만들어 주기 때문이다. 이러한 모듈 내에 있는 클래스들은 서로 접근가능하지만, 패키지 바깥에서는 접근할 수 없다. 그럼 모듈의 진입점으로 활용될 클래스들만 골라서 public으로 만들면 된다. 이렇게 하면 의존성이 잘못된 방향을 가리켜서 의존성 규칙을 위반할 위험이 줄어든다. 컴파일 후 체크 의존성 규칙을 ..
· Book
9. 애플리케이션 조립하기 왜 조립까지 신경 써야 할까? 코드의 의존성이 올바른 방향을 가리키게 하기 위해서다. 모든 의존성은 안쪽으로, 애플리케이션의 도메인 코드 방향으로 향해야 도메인 코드가 바깥 계층의 변경으로부터 안전하다는 점을 기억하자. 우리의 객체 인스턴스를 생성할 책임은 누구에게 있을까? 그리고 어떻게 의존성 규칙을 어기지 않으면서 그렇게 할 수 있을까? 아키텍처에 대해 중립적이고 인스턴스 생성을 위해 모든 클래스에 대한 의존성을 가지는 설정 컴포넌트(configuration component)가 있어야 한다는 것이다. 중립적인 설정 컴포넌트는 인스턴스 생성을 위해 모든 클래스에 접근할 수 있다. 설정 컴포넌트의 역할 웹 어댑터 인스턴스 생성 HTTP 요청이 실제로 웹 어댑터로 전달되도록 보..
· Book
8. 경계 간 매핑하기 “매핑하지 않기” 전략 장점 CRUD와 같은 단순 작업에서는 좋다. 모든 계층이 정확히 같은 구조의, 정확히 같은 정보를 필요로 한다면 완벽한 선택지이다. 문제점 웹, 애플리케이션, 영속성 계층과 관련된 이유로 인해 변경돼야 하기 때문에 단일 책임 원칙을 위반한다. 각 계층이 특정 커스텀 필드를 두도록 요구할 수 있다. 그 결과, 오로지 한 계층에서만 필요한 필드들을 포함하는 파편화된 도메인 모델로 이어질 수 있다. “양방향” 매핑 전략 장점 각 계층이 전용 모델을 가지고 있는 덕분에 각 계층이 전용 모델을 변경하더라도 다른 계층에 영향이 없다. 그래서 웹 모델은 데이터를 최적으로 표현할 수 있는 구조를 가질 수 있고, 도메인 모델은 유스케이스를 제일 잘 구현할 수 있는 구조를 가..
· Book
7. 아키텍처 요소 테스트하기 테스트 피라미드 비용이 많이 드는 테스트는 지양하고 비용이 적게 드는 테스트를 많이 만들어야 한다. 만드는 비용이 적고, 유지보수하기 쉽고, 빨리 실행되고, 안정적인 작은 크기의 테스트들에 대해 높은 커버리지를 유지해야 한다는 것이다. 💡 좋은 테스트의 속성(FIRST) F(Fast) : 빠르게 동작해라. I(Isolated) : 고립시켜라. R(Repeatable): 반복 가능해야 한다. S(Self-validating) : 스스로 검증 가능해야 한다. T(Timely): 적시에 사용해야 한다. 단위 테스트(Unit) 하나의 클래스를 인스턴스화하고 해당 클래스의 인터페이스를 통해 기능들을 테스트한다. 테스트 중인 클래스가 다른 클래스에 의존한다면 의존되는 클래스들은 moc..
· Book
6. 영속성 어댑터 구현하기 의존성 역전 코어의 서비스가 영속성 어댑터에 접근하기 위해 포트를 사용한다. 애플리케이션에 의해 호출될 뿐, 애플리케이션을 호출하지 않는다. 여기서 포트는 사실상 애플리케이션 서비스와 영속성 코드 사이의 간접적인 계증이다. 자연스럽게 런타임에도 의존성을 애플리케이션 코어에서 영속성 어댑터로 향한다. 영속성 어댑터의 책임 입력을 받는다. 입력을 데이터베이스 포맷으로 매핑한다. 입력을 데이터베이스로 보낸다. 데이터베이스 출력을 애플리케이션 포맷으로 매핑한다. 출력을 반환한다. 핵심은 영속성 어댑터의 입력 모델이 영속성 어댑터 내부에 있는 것이 아니라 애플리케이션 코어에 있기 떄문에 영속성 어댑터 내부를 변경하는 것이 코어에 영향을 미치지 않는다는 것이다. 포트 인터페이스 나누기 ..
Seyun(Marco)
'Book' 카테고리의 글 목록