소프트웨어 생명 주기 소프트웨어를 개발하기 위한 과정을 단계별로 나눈 것 소프트웨어 개발 단계와 각 단계별 주요 활동 그리고 활동의 결과에 대한 산출물로 표현 나선형 모형 (Spiral Model , 점진적 모형) 여러번의 소프트웨어 개발 과정을 거쳐 점진적으로 개발하는 모형 계획 수립 -> 위험 분석 -> 개발 및 검증 -> 고객 평가 폭포수 모형 (Waterfall Model) 각 단계를 확실히 매듭짓고 그 결과를 검토하여 승인 과정을 거친 후 다음 단계를 진행하는 개발 방법 가장 오래되고 전통적 , 고전적 프로토타입 모형 (Prototype Model, 원형 모형) 실제 개발될 소프트웨어에 대한 견본품을 만들어 최종 결과물을 예측하는 모형 애자일 모형 (Agile) 요구사항 변화에 유연하게 대응할 ..
스프링 부트가 기본으로 제공하는 ExceptionResolver는 다음과 같다. ExceptionHandlerExceptionResolver ResponseStatusExceptionResolver DefaultHandlerExceptionResolver -> 우선순위 가장 낮음 ExceptionHandlerExceptionResolver : @ExceptionHandler 을 처리한다. API 예외 처리는 대부분 이 기능으로 해결한다. ResponseStatusExceptionResolver : HTTP 상태 코드를 지정해준다 (ex. @ResponseStatus(value = HttpStatus.NOT_FOUND)) DefaultHandlerExceptionResolver : 스프링 내부 기본 예외를..
캐시 기본 동작 💡 캐시 미적용 데이터가 변경되지 않아도 계속 네트워크를 통해 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 캐시 적용 위 요청에 대한 응답으로 cache-control: max-age=60은 캐시 저장소에 60초간만 유효하도록 저장하겠다는 의미 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. (60초 동안은 캐시 저장소에서 가져오면 됨) 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 캐시 적용 - 캐시 시간 초과 cache-control: max-age=60 으로 캐시 저장소에 데이터를 60초간만 유효하도록 저장해놓았다. 그런데 만약 60초가 경과되고..
HTTP 헤더 HTTP 전송에 필요한 모든 부가 정보 ex) 메시지 바디 내용, 크기 , 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 ..... HTTP 헤더 (RFC2616 , 과거) 헤더 분류 General 헤더 : 메시지 전체에 적용되는 정보 (ex. Connection: close) Request 헤더 : 요청 정보 (ex. User-Agent: Mozilla/5.0 (Macintosh; ..)) Response 헤더 : 응답 정보, (ex. Server: Apache) Entity 헤더 : 엔티티 바디 정보, (ex. Content-Type:text/html, Content-Length:3423...) HTTP 표준 ( 2014년 RFC7230 ~ 7235 등장) 변화 살펴보기 ..