목차

신규 Web 서비스시 고려해 볼 사항

그 동안 웹서비스를 개발해오면서 많은 실수들을 했고 그럴 때마다 다시 처음 부터 시작한다면 이렇게 해보는게 좋을 것 같아…라고 생각 했던 것을 정리해 본다. Back-End 위주의 정리이다.

나의 생각은 경험이 증가하고 기술 환경이 변화함에 따라 함께 계속 변화한다.

프로그래밍 언어의 선택

신기술 선택

용어 통일

영웅 의존 금지

몽키 패치 금지

프로젝트 구성과 Microservices Architecture

Team 이 아닌 Project 단위 구성

API Gateway

약한 결합도 높은 응집도의 Inteface 기반 개발

계층간 침범을 하지 말것

하위 계층(Layer)에서 상위 계층을 사용하지 말라. 대략 다음과 같은 레이어가 있다고 할 때(위에 있을 수록 상위 레이어) 상위 레이어는 하위 레이어를 사용할 수 있지만 하위 레이어는 상위 레이어의 존재를 몰라야 한다.

항상 의존성은 위에서 아래로 흘러야 한다.

Web Context 를 비즈니스까지 끌고가지 말 것

웹 서비스 모듈의 분화

SSL(https)과 Domain

안정성

확장성 고려

Primary Key는 처음부터 Long으로

운영체제 OS

Database / 저장소

사용자에게 전달하는 메시징 솔루션

최적화

Excel Download / 통계 제공 / bulk 작업

Backend 캐시

Schemaless 저장소

이미지와 정적 리소스 서빙 시스템 image, static resources

HTML

데이터와 View 대한 독립성 - 특히 HTML escape

보안

서버 운영

설정

서버 모니터링

Logging

Production Server ACL

배포

배포 Profile 통합

Mobile App

Code 품질 관리 - 정적 분석도구 도입 (Static code analysis)

Load Balancer 설정 확인

API 설계

MQ 등을 통한 비동기 처리 / event driven

Event PayLoad 정책

ᅟZero Payload

Full Payload

Single Page Application?

예외

Batch Job

날짜 / 시간

기타

부하 예상상황

전사 가이드

마이그레이션

프로젝트 관리 : 기본적으로 애자일

외부 연결 정보와 인증서 관리

Test 환경

신규 개발 조직 구축시 먼저 할 일

git push force 금지

지속적인 업그레이드

참조