넓고 넓은 S3의 개념,,덤프와 함께 관련 개념을 정리해보고자 한다. #21 문제 정리1. 매일 한 가지 상품만 판매 -> 데이터베이스에서 복잡한 재고 관리가 필요하지 않을 가능성이 높다.2. 피크 시간대에 수백만 건의 요청 처리 -> 확장성이 뛰어난 솔루션이 필요하다.3. 밀리초 단위 응답 시간 -> 빠른 성능이 필요하다.4. 운영 오버헤드 최소화 -> 관리 부담이 적은 서비스를 사용한다. 답은 D이다.S3는 Object Storage 서비스이다. 즉, 파일을 저장하는 공간이고 데이터베이스처럼 쿼리를 수행하는 구조가 아니다.그래서 정적 웹사이트 호스팅, 백업 및 로그 저장, 데이터 아카이브(오래된 데이터 보관), CloudeFront와 연계한 콘텐츠 배포에 적합하다. S3 + CloudFront + A..
면접이 얼마 안남았다. 발등에 불 떨어졌다. 지금 내가 분석하고 있는 주제, 곧 도입될 예정이라다들 관심있게 보고 있는 LLM을 정리해보도록 하자.... LLMLLM 이란 Large Language Model로, 대규모 데이터를 학습하여 사람과 같은 텍스트를 생성해주는 기술이다.LLM은 생성형 AI 중 텍스트 기반이다. 생성형 AI란 주어진 데이터를 학습한 후 새로운 콘텐츠 (텍스트, 이미지, 음성, 코드 등)를 생성할 수 있는 AI 모델을 의미한다.동작방식은1. 데이터 학습 (Pretraining): 방대한 양의 데이터를 학습하여 패턴을 이해함2. 패턴 분석 및 확률 기반 예측: 사용자의 입력을 분석하고, 가장 적절한 출력을 확률적으로 예측함3. 새로운 콘텐츠 생성: 학습한 데이터를 기반으로 완전히 새..
보통 프로젝트를 진행할 때 자산은 많아봤자 2-3개였어 서버 관리를 놓친적은 없었다. 하지만 회사 같은 경우, 몇천개가 넘어가고 또한 그 안에서도 MSA를 사용하는 경우에는 하나의 서비스 안에서도 몇백개가 훌쩍 넘어가는 서버 자산들이 있을 것이다. 이처럼 많아진 자산들 중 관리에서 누락된 자산은 공격자의 주요 타겟이 된다. 단 하나의 취약한 자산이라도 발견되면 공격자는 이를 활용해 전체 시스템을 위협할 수 있다. ASM의 필요성ASM은 Attack Surface managent로, 공격표면관리이다.자산 관리의 중요성이 높아짐에 따라 ASM의 필요성이 대두되고 있다.ASM은 단순히 서버 자산을 나열하는 것에서 끝나는 것이 아니다. 조직의 외부에 노출된 모든 자산(예: 클라우드 서버, 서브도메인, 웹 애플..
최종 프로젝트가 끝난 지 딱 일주일이 지났다. 그동안 면접도 보고, MT도 다녀오고, 밀린 잠도 푹 잤다.그렇게 바쁘게 지내다 보니 이제야 프로젝트 생각이 들었다.사실 처음엔 “꼭 해야 하니까 어쩔 수 없지”라는 마음으로 참여했는데, 돌이켜보니 아쉬움이 많이 남는다.“프로젝트 하나에만 집중할 수 있었더라면…” 하는 아쉬움도 있고,“그동안 시도해보지 않았던 것들을 좀 더 해볼걸” 하는 생각도 든다.하지만 어쩌겠어ㅎ~ㅎ 아직 기회는 많으니까 천천히 다른것도 시도해보자 😊싸피 최종 관통 프로젝트 회고 싸피에서는 1학기 프로젝트로 주제가 2가지가 있다. 부동산과 여행. 나는 부동산을 선택했다. 여행은 흔한 주제이기도 하고, 앞으로 내가 부동산 주제를 다룰 일이 없을 것 같아서였다. 그렇다면 부동산 주제를 선택..
배경프로젝트에서 사용한 머신러닝 모델(LightGBM)은 실시간 예측과 분석을 제공하기 위해 활용되었다.따라서 이 모델을 배포(서빙)하는데 있어 효율성, 응답 속도, 그리고 확장성이 중요한 고려 요소였다.특히, 서비스 사용자가 많아지면 요청을 처리하는 서버의 성능이 모델 서빙 전체 시스템의 병목 지점이 될 수 있기에모델 서빙을 무엇으로 할지 고민이 되었다. 🤔 Flask와 FastAPI먼저, Flask는 간단하고 빠르게 REST API를 사용할 수 있고, 사용해본 경험이 있기에 결정FastAPI는 비교적 최근 나온 프레임워크로, 비동기 기능과 자동화된 API 문서화의 장점이 있었다.그리고 얼마나 성능 차이가 많이 나는지 궁금하기에 Locust로 실험을 해보기로 하였다. Locust란?이 실험에서 사용한..
MVC란MVC 패턴이란 model, view, controller의 약자로 소프트웨어 디자인 패턴이다. 개발할 때, 3가지 형태로 나누어 개발하는 방법론이다.비지니스 처리 로직과 사용자 인터페이스 요소들을 분리시켜 서로 영향없이 개발하기 수월하다는 장점이 있다. ModelModel은 시스템의 비지니스 로직과 데이터를 관리하는 부분이다. 비지니스 로직: 프로그램이 수행해야 할 핵심적인 업무 처리이다. 예를 들어, 상품 주문 처리 시스템이라면 Model은 주문을 저장하고, 재고를 감소시키며, 결제 정보를 기록하는 등의 역할을 한다.데이터 처리: Model은 데이터베이스와의 상호작용을 통해 데이터를 저장, 갱신, 삭제, 조회 등의 작업을 수행한다. 여기서는 데이터베이스와의 직접적인 통신을 담당하는 D..
자바에 대해 얼마나 알고 있나요, 다 안다고 생각했는데 메모리의 개념에 대해서는 놓치고 있었다.그래서 이번 기회에 다시 처음부터 정리를 해보려고 한다. Chapter1. 클래스와 데이터 클래스가 필요한 이유자바 세상은 클래스와 객체로 이루어져 있다. 그만큼 클래스와 객체라는 개념은 중요하다. 그렇다면 클래스가 왜 필요할까?학생 2명의 정보를 출력하는 프로그램을 작성하려고 하면 아래와 같이 쓸 수 있다.String studentName1 = "학생1";int studentAge1 = 15;int studentGrade1 = 90;String studentName2 = "학생2";int studentAge2 = 16;int studentGrade2 = 80; 배열을 사용할 수도 있다. 하지만 학생이 계속 추..
JPA(Java Persistence API) 란자바 애플리케이션에서 관계형 데이터베이스를 관리하고 상호작용하기 위한 자바 표준 API이다. JPA는 자바 객체와 데이터베이스 간의 매핑을 자동화하여, 개발자가 SQL 쿼리를 직접 작성하지 않고도 데이터베이스 작업을 수행할 수 있게 한다. 💡 왜 JPA가 필요한지 영속성, JDBC에 대해서 먼저 알아보자 영속성 (Persistence)프로그래밍에서 영속성은 객체의 상태를 데이터베이스와 같은 영구 저장소에 저장하고, 필요할 때 이를 다시 불러오는 것을 의미한다.--> 어플리케이션의 상태와 상관 없도록 물리적인 저장소를 이용해 데이터를 저장하는 행위보편적으로 관계형 데이터베이스(RDBMS)에 데이터를 저장하기 위해서는 SQL을 이용해 데이터를 영속화 해야..