본문 바로가기

분류 전체보기54

Apache JMeter란? + 부하 테스트, 사용법 Apache Jmeter를 접하게 된 이유 4개월 정도 진행해오던 복쟉복쟉이라는 프로젝트가 이제 배포를 앞두고 있다. 배포를 앞두기 전에 성능 저하 (ex. JPA N+1문제를 일으키는 것들, 현재 EC2가 어느정도까지 수용가능한지) 를 체크하기 위해서 접하게 되었다. 제대로 체크해보기전 Apache Jmeter의 설치 과정과 사용법을 알아보려고 한다. Apache Jmeter Apache Jmeter는 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구이다. JMeter는 순수 Java 애플리케이션 오픈 소스이며 서버나 네트워크 또는 개체에 대해 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한 부하 유형에서 전체 성능을 분석하는 데 사용할 수 있다. 비슷한 부하테스트 도구로는 Apache B.. 2023. 8. 22.
애자일과 워터폴 개발 프로세스 애자일(Agile) 방법론은 오늘날 많은 기업에서 사용하고 있는 방법론이다. 현재 대부분의 IT 조직 개발 환경은 애자일 방법론의 영향을 받았고, 실천하고 있다고해도 과언이 아니다. 애자일 방법론의 출발은 소프트웨어 개발 형식이었지만 이제는 제품 개발을 넘어 하나의 일하는 방식, 워크플로우로 자리 잡았다. 전통적인 워터폴 방법론 워터폴 방법론은 폭포수 방법론이라고도 불리며 이름에서도 알 수 있듯이 각 작업이 폭포처럼 위에서 아래로 떨어지는 단계별 개발 방법론이다. 그 단계는 다음과 같다. 요구사항 정의(설계) → 디자인 → 개발 → 테스트 → 배포 위의 과정이 순차적으로 진행되며 이전 단계가 그다음 단계로 떨어지게 된다. 애자일 방법론이 등장하기 전까지는 소프트웨어 개발 뿐 아니라 자동차, 선박 등 산업.. 2023. 8. 13.
[Project] @Transactional + CustomException을 Controll하자 Project 하던 중, 정상적인 값이 조회되는데 DB값은 안바뀌는 상황이 있었다. 그에 대해 이야기 해보려고 한다. 전제 안드로이드 측에서 kakao accessToken을 주면 DB에 kakaoUser가 이미 존재 -> 바로 서버 accessToken 및 refreshToken 발급 (httpstatus 200 내려줌) DB에 kakaoUser가 존재 x 즉 첫 방문 User -> signToken을 발급해서 닉네임, 이메일 등 부가 정보를 입력하는 화면으로 이동 후, 앞서 발급한 signToken + 부가 정보를 받아서 회원 가입 (httpstatus 404 내려줌 -> 즉 exception 터트림) + 추가적으로 만약 회원 탈퇴를 할 시, 중복 가입 방지를 위해 탈퇴한 회원은 한달 동안 가입을 못.. 2023. 8. 8.
옵저버 패턴(Observer Pattern)이란 옵저버 패턴(Observer Pattern) 옵저버 패턴은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 서로의 정보를 주고받는 과정에서 정보의 단위가 클수록, 객체들의 규모가 클수록 복잡성이 증가하게 된다. 이때 가이드라인을 제시해줄 수 있는 것이 옵저버 패턴이다. (보통 1 대 1 or 1 대 N 관계에서 사용) 옵저버 패턴을 활용하면 다른 객체의 상태 변화를 별도의 함수 호출 없이 즉각적으로 알 수 있기 때문에 이벤트에 대한 처리를 자주해야 하는 프로그램이라면 매우 효율적인 프로그램을 작성할 수 있다. 적용 사례 잡지사 : 구독자 우유배달업체 : 고객 위와 같.. 2023. 7. 11.
FCM(Firebase - Cloud - Messaging)이란? + FCM Token, FCM Topic FCM(Firebase - Cloud - Messaging) FCM은 무료로 메시지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션이다. 모든 사용자에게 알림 메세지를 전송할 수 있고, 그룹을 지어 메시지를 전송할 수도 있다. FIrebase의 서비스는 요금 정책에 따라, 이용할 수 있는 범위가 다르지만 FCM은 요금 정책에 구분 없이 무료로 사용하는 것이 가능하다. 왜 FCM을 써야할까? 기존에는 iOS, Android, Web 등의 플랫폼에서 Push 메시지를 보내기 위해서는 각 플랫폼 환경별로 개발해야 하는 불편함이 있었다. 하지만 FCM은 교차 플랫폼 메시지 솔루션이기 때문에 FCM을 이용해서 개발을 진행하면, 플랫폼에 종속되지 않고 Push 메시지를 전송할 수 있다. 따라서 위의 문제를 .. 2023. 6. 28.
스티키 세션(Sticky Session), 세션 클러스터링(Session Clustering)이란? + 세션, 로드 밸런싱, Session Storage 세션 (Session) 세션을 사용하는 이유? HTTP프로토콜의 특징이자 약점을 보완하기 위해 사용된다. 1. Connectionless, Protocol 비연결지향 클라이언트가 서버에 요청했을 때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리방식 2. Stateless Protocol (상태정보 유지 안함) 클라이언트의 상태정보를 가지지 않는 서버처리방식이다. 클라이언트와 첫번째 통신에서 데이터를 주고받았다 해도, 두번째 통신에서 이전 데이터를 유지하지 않는다. 하지만 실제로는 데이터유지가 필요한 경우가 많다. 정보가 유지되지 않으면 매번 페이지 이동시 마다 로그인을 해야하거나 장바구니에서 상품을 선택했는데 구매페이지에서 상품의 정보가 사라지는 경우가 생길 것이다. 이러한 이유로 세션 또는 쿠키를.. 2023. 5. 16.