전체 글 (8) 썸네일형 리스트형 Spring Boot 프로젝트를 WAR로 빌드하여 JBoss EAP에 배포 최근 프로젝트에서 기존처럼 java -jar 방식이 아니라 WAR 파일로 빌드한 뒤 JBoss EAP 환경에 배포하는 작업을 진행하게 되었다.평소에는 Spring Boot 내장 톰캣 방식만 사용하다 보니 외부 WAS 기반 구조는 처음에 꽤 낯설게 느껴졌다.특히 “배포 = 파일 복사”라고 단순하게 생각했는데 실제로는 서버 실행 + 감시 구조 + 로그 확인까지 포함된 흐름이라 차이가 컸다.이번 글에서는 실제 작업 흐름 기준으로 정리했다.기존 Spring Boot 실행 방식기존에는 대부분 아래처럼 실행했다.java -jar app.jarSpring Boot 내부에 내장 톰캣이 포함되어 있어서 별도의 WAS 없이 바로 실행 가능했다.하지만 JBoss 환경에서는 구조가 완전히 다르다.Spring Boot 애플리케.. [Spring] Filter 정리 Filter란?Spring Boot에서 Filter는 HTTP 요청(Request)과 응답(Response)을 가장 앞단에서 가로채는 컴포넌트이다.조금 더 정확히 말하면 Filter는 Servlet 스펙(Servlet Specification) 에 속하며, Spring MVC 이전 단계에서 동작하며 DispatcherServlet이 요청을 받기 이전에 실행된다. 요청 흐름을 간단히 표현하면 다음과 같다.Client ↓Filter (Servlet Filter) ↓DispatcherServlet ↓Interceptor ↓Controller이 구조 때문에 Filter는 다음과 같은 특징을 가진다.모든 HTTP 요청에 대해 공통적으로 동작 가능Controller 여부와 상관없이 실행됨Request / R.. 스프링 AOP(Spring AOP) 제대로 이해하기 스프링을 공부하다 보면 @Transactional, @Around, @Aspect 같은 어노테이션을 만나게 된다.이 어노테이션들의 기반이 되는 개념이 바로 AOP(Aspect-Oriented Programming) 이다.이번 글에서는AOP가 왜 필요하고, 스프링 AOP는 어디에 어떻게 적용되는지를 중심으로 정리해보려고 한다. AOP란 무엇인가?AOP는 관점 지향 프로그래밍이라고 불리며,핵심 로직과 공통 관심사(Cross-cutting Concern) 를 분리하기 위한 프로그래밍 기법이다.공통 관심사의 예로깅트랜잭션 처리보안 / 권한 검사성능 측정이런 로직들은비즈니스 로직과는 직접적인 관련은 없지만, 반드시 필요한 코드들이다.공통 로직을 비즈니스 코드에 직접 작성이런 성능 측정 로직을 비즈니스 코드에 직접.. AWS Amazon Elastic Compute Cloud (EC2) 기초 EC2란 EC2는 AWS가 제공하는 서비스중 가장 많이 사용되는것 중에 하나이며 AWS에서 EC2의 사용하는 방법을 이해해야 클라우드 작동 방식을 이해할 수 있습니다 그 이유는 클라우드는 컴퓨팅 기능을 필요에 따라 임대해서 사용하는 것인데 EC2가 그런 서비스 이기때문입니다 Elastic Compute Cloud = Instructure as a service라고 할 수 있습니다 EC2는 단순히 하나의 서비스가 아니라 여러기능을 포괄하는 개념이라고 할 수 있습니다 가상 머신 (EC2 instance) 가상 드라이브에 데이터 저장 (EBS) 여러 머신에 걸처 부하를 분산 시키는 (ELB) 자동 스케일링 그룹을 이용해 서비스 확장 (ASG) EC2 sizing & configuration option OS .. AWS IAM (Identity and Access Management) IAM 이란? AWS IAM (Identity and Access Managemen)은 AWS 리소스 액세스에 대해 안전하게 제어할 수 있게 해주는 AWS 웹 서비스이며 IAM을 사용하여 해당 유저와 그룹의 접근할 수 있는 권한을 중앙에서 관리할 수 있습니다 사용 이유 많은 인원이 하나의 계정을 사용하는 것 보단 각각의 제한되게 부여받은 계정을 가질수 있으며 그 계정들의 권한을 중앙에서 한번에 관리할 수 있어서 사용 사용법 AWS 계정을 생성하면 기본적으로 해당 계정에 모든 AWS 서비스 및 리소스에 대한 완전한 권한이 있는 단일 로그인 ID가 부여됩니다 이 ID를 root user(루트 사용자)라고 하며 일반적인 작업에 루트 사용자를 사용하지 않고 해당 서비스를 필요한 계정, 그룹을 만들어 그 계정에 .. Cookie VS LocalStorage VS SessionStorage 사용 이유 기본적으로 http 프로토콜 환경은 connectionless(비연결성), stateless(상태없음) 특징을 가지고 있어 서버는 클라이언트가 누구인지 매번 확인해야 하므로 특성이자 약점을 보안하기 위해 쿠키, 세션, 웹 스토리지를 사용합니다 - Connectionless HTTP 는 먼저 클라이언트가 요청을 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 응답을 보내고 TCP/IP 연결을 끊는 특성이다. - Stateless 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보를 유지하지 않는 특성이다. Cookie 하이퍼 텍스트의 기록서의 일종으로서 사용자가 어떠한 웹사이트를 방문할 경우 사용자의 웹 브라우저를 통해 설치되는 작은 기록 정보 특징 브라우저(클라이언트) 로컬에 저장.. Client Side Rendering(CSR) Sever Side Redering (SSR) Static Site Generation (SSG) Client Side Rendering (CSR) 클라이언트 사이드 렌더링이란 서버로부터 모든 파일을 받아 클라이언트에서 렌더링 하는 방식 CSR은 브라우저가 뼈대만 있는 HTML을 받고 JS 파일을 다운로드하고 동적으로 DOM을 생성하니 초기 로딩 속도가 느리지만 이미 다 만들어져 있기 때문에 이후 구동 속도는 빠르고 TTV (Time To View)와 TTI(Time To Interact)의 사이의 간극이 없으며 서버에서 렌더링을 하지 않기 때문에 부하가 적으며 클라이언트에서 연산, 라우팅 등을 처리하여 속도가 빠르고 UX가 우수한 편 대표적으로 SPA 방식에서 많이 사용하는 렌더링 방식 Single Page Application (SPA) 하나의 페이지로 이루어진 어플리케이션 새로운 페이지를 불러오.. HTTP response status codes HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려주며 응답은 5개의 그룹으로 나누어집니다. 1. Informational responses 정보제공 (100 ~ 199) 2. Successful responses 성공 (200 ~ 299) 3. Redirection messages 리다이렉션 (300 ~ 399) 4. Client error responses 클라이언트 에러 (400 ~ 499) 5. Server error responses 서버 에러 (500 ~ 599) 1xx Informational responses 정보제공 (100 ~ 199) code status description 100 Continue 클라이언트가 서버로 보낸 요청에 문제가 없으니 다음 요청을 이.. 이전 1 다음