파일 업로드 API 부하 테스트 (근데 이제 K6를 곁들인...)
·
Wishy (이력서 평가 프로젝트)
테스트를 하게 된 계기이력서 프로젝트를 진행하며 지금 내 서버는 얼마나 많이 부하를 견딜 수 있을까를 테스트해보고 싶었다많은 공고들에서 대용량 트래픽을 다루어본 경험이 있는지를 물어보기도 했고 현재 aws ec2 프리티어를 사용하면서로컬에서 잘 되는 기능들이 프리티어에서 스펙이 딸려 잘 안되는 경험도 많이 했기에ec2의 기능을 최대한 잘 활용하면서 코드 리팩토링이 필요한 부분을 파악해 최대한의 성능을 끌어내고 싶었기에현재 서버는 어느 정도의 부하를 견딜 수 있는지 파악해보고 싶었다그래서 현재 프로젝트에서는 파일 업로드가 처리 시간이 제일 오래 걸려 해당 api로 테스트를 진행했다 도구 선정api 부하 테스트 도구에 대해 검색을 해보면 많은 선택지들이 나온다gpt의 도움을 받아 내 상황에 좋은 도구는 무엇..
Appsmith 에서 PDF 띄우기
·
Wishy (이력서 평가 프로젝트)
현재 진행하고 있는 이력서 평가 프로젝트에서 이력서 상세화면 조회 시 사용자의 이력서를 보여주는 것은 평가를 해야하기에필수적인 기능이라고 생각했다. 그래서 Appsmith에서 PDF를 띄우기 위해 여러가지 시도를 하게 되었다결과 화면 이런식으로 PDF 렌더링에 성공할 수 있었다 아래 내용은 내가 이를 위해 한 여러가지 시도를 상세하게 적어 보았다한 줄 요약로컬에 있는 파일을 그대로 띄워보려 했으나 실패정적 자원으로 처리하여 웹 서버 형식으로 띄워보려 했으나 실패Iframe으로 PDF 다운로드 형식으로 진행하려 했으나 실패Google Docs Viewer를 사용하여 성공! 나는 Appsmith 클라우드에서 개발 중이였고 빠르게 테스트를 하는 게 목적이였다그렇기에 안정적으로 파일 서버를 구축하는 것은 나중의..
Aws EC2, Docker 사용하여 AppSmith 배포하기
·
Wishy (이력서 평가 프로젝트)
이직을 위해 사이드 프로젝트를 진행중에 있다.나는 백엔드 개발자이기 때문에 요새는 프론트를 잘 만들어주는 도구들이 많다길래 이것저것 찾아보다가AppSmith라는 로우코드 플랫폼으로 결정했다.로컬에서 얼추 사용하는 방법을 익히고 배포를 하려고 했는데 원리가 이해되지 않아 막막했지만 여러가지 삽질을 하며 알아냈다이 과정을 통해 Aws EC2, Docker 에 대해 개념 및 사용방법도 배울 수 있어 좋았다 AppSmith 공식 문서를 참조하면 외부 사용자들을 위한 배포를 위해서는 클라우드에 도커를 설치하고 거기에 AppSmith를 연결하는 방법밖에 없었다 https://docs.appsmith.com/getting-started/setup/installation-guides/aws-ecs/aws-ecs-on-..
<책 정리> 도메인 주도 설계로 시작하는 마이크로서비스 개발 (3)
·
개발 공부
다양한 서비스의 등록 및 탐색을 위한 서비스 레지스트리, 서비스 디스커버리 패턴 클라이언트가 여러 개의 마이크로 서비스를 호출하기 위해서는 최적 경로를 찾아주는 라우팅 기능과 적절한 부하 분산을 위한 로드 밸런싱 기능이 제공되어야 한다. 라우팅의 정보를 클라이언트가 가지고 있으면 동적으로 변경되는 백엔드의 유동 IP를 매번 받아 전송해야 하는데 제3의 공간에서 이러한 정보를 관리하는 패턴을 서비스 레지스트리 패턴이라고 한다 서비스 인스턴스가 로딩 될 때 자신의 서비스 이름과 할당된 IP주소를 레지스트리에 등록하고 클라이언트가 해당 서비스를 호출할 때 라우터가 레지스트리를 검색해 매핑된 정보를 확인한 후 호출한다 서비스 레지스트리에는 관리와 운영을 위한 기반 서비스의 주소도 함께 보관된다. 예를 들어 Co..
<책 정리> 도메인 주도 설계로 시작하는 마이크로서비스 개발 (2)
·
개발 공부
리액티브 선언 : 현대 애플리케이션이 갖춰야 할 바람직한 속성들 소프트웨어 아키텍쳐 : 소프트웨어를 구성하는 요소와 그 구성 요소간의 관계를 정의한 것. 아키텍처를 정의하는 과정은 시스템 구축을 위한 여러가지 비기능 요견(성능, 가용성, 보안, 유지보수성, 확장성 등)을 만족하는 다양한 해결 방법을 찾는 과정이다 마이크로서비스 아키텍처는 클라우드라는 가상화된 인프라를 활용하기 때문에 인프라의 특징을 고려해서 설계해야 한다. 리액티브 선언문 : 현대 애플리케이션에 대한 기대를 표현한 문서, 응답성, 탄력성, 유연성, 메시지 기반이라는 특성을 가지고 있음. 이러한 요건을 만족하는 시스템을 리액티브 시스템이라고 한다. 응답성 : 사용자에게 신뢰성 있는 응답을 빠르고 적절하게 제공하는 것을 의미한다. 탄력성 :..
<책 정리>도메인 주도 설계로 시작하는 마이크로서비스 설계 (1)
·
개발 공부
오늘부터 이 책의 내용을 정리하며 공부할 것이다. 이미 책은 1독을 했고 다시 읽으며 정리하는 이유는 머리 속으로만 기억하면 잊어버리기 쉽기 때문에 추후에 책 전체를 보지 않아도 이 글을 읽으면 책을 읽은 것 같은 느낌을 주기 위해서다. 일종의 작은 책이자 메모장인 것이다. 책으로 이런 개념을 공부하는 것들이 다소 부족할 수 있기 때문에 일단 개념을 익히고 추후 실제로 적용해 볼 생각이다 이 책을 읽은 이유 3년 차 이상 개발자 공고를 쭉 살펴보니 마이크로서비스 아키텍쳐에 대한 이해를 필요로 하는 자격요건, 우대사항이 많았다. 클라우드 인프라와 민첩성 클라우드 인프라의 등장 클라우드 인프라는 왜 등장했는가? 전형적인 시스템 인프라 구축 과정은 물리적인 서버실 및 서버 장비를 구축하는 등 완료하기 전까지 ..
EC2 복구 회고록(블로그 글을 믿지 말자)
·
개발 공부/오류 해결
어디서 부터 잘못 됐을까...아...지금 생각하니 취준생 때 이런 일을 겪은게 좋은 공부했다 싶으면서도 기분이 썩 좋지는 않다 EC2 복구 회고록 이지만 결국 나는 (현재 상황으로는) 복구를 하지 못했다ㅠㅠ하지만 배운 것들이 많아 그냥 주저리 주저리 마음 정리, 지식 정리 할 겸 이 글을 쓴다 문제의 발생은 지금으로부터 한 3주 전 Swagger2.9 버전과 3.0 버전을 공부하면서 이것저것 적용해보겠다고 작디 작은 나의 EC2 프리티어에 war 파일을 마구마구 올리던 것으로 부터 시작되었다. 2개의 프로젝트를 maven을 통해 war 파일로 빌드 했는데 1개의 프로젝트가 제대로 기능하지 못했다. 그렇게 EC2의 메모리를 생각하지 못하고 어느 날 저녁 SSH로 접근을 하든 톰캣을 80 포트로 띄우든 My..
빌더 패턴과 롬복 @Builder
·
개발 공부/디자인 패턴
객체 생성할 때 @Builder 를 많이 사용해서 궁금해서 공부했다. 정보처리기사 디자인 패턴 공부할 때 처음 접했었는데 실제로 이렇게 쓰임새를 알고 나니 재밌었다 객체 생성을 고려할 때는 필수적인 인자와 부수적인 인자를 생각해야 한다 예를 들어 집을 짓는다고 생각해보자 당구장이 있는 집과 수영장이 있는 집을 짓는다면 일단 집을 짓기 위한 재료는 필수적일 것이다 그리고 당구장을 짓기 위한 재료와 수영장을 짓기 위한 재료는 부수적인 재료이다 다음의 예제를 보자 점층적 생성자 패턴 public class House { //필수적인 재료 private String brick; private String cement; public House(String brick, String cement) { this.bri..