전체 글

빈 등록 방법@Configuration + @Bean 을 이용한 방법@Configurationpublic class GreetingConfig { @Bean Greeting englishGreeting() { return new EnglishGreeting(); } } Component 를 이용한 방법@Componentpublic class EnglishFarewell implements Farewell { @Override public void sayGoodBye() { System.out.println("good bye"); }}@Configuration + @Bean vs @Component@Component 애너테이션은 클래스 레벨에서..
AI 앱 개발을 할때 필요한 것?ai modelserving serverdatabaseoptional) Monitoring, caching Spring AILLM을 사용하는 애플리케이션 생성을 단순화하도록 설계된 프레임워크. AI컴퓨터로 인간의 지능을 구현하는 기술 모델특정 패턴을 인식하거나 추가적인 인간의 개입 없이 특정 결정을 내리기 위해 일련의 데이터에서 훈련된 프로그램 (LLM : Large Language Model) 프롬프트ai모델이 특정 출력을 생성하도록 유도하는 언어 기반 입력 토큰AI모델이 작동하는 기본 구성 요소  한계대화맥락의 제한: AI는 상태를 가지고 있지 않으며, 모델이 처리할 수 있는 context에는 제한이있다. 신뢰성 문제- 환각: ai모델이 부정확하거나 오해의 소지가 있는..
보호되어 있는 글입니다.
부하 테스트에서 서비스가 1초당 처리할 수 있는 작업량을 보고 Throughput이라고 부른다. 단위는 TPS(Transaction Per Seconds, 1초당 처리한 트랜잭션의 수)를 많이 활용한다.만약 내가 만든 서비스가 1초에 최대 100개의 API 요청을 처리할 수 있다면, 이 서비스의 Throughput은 100 TPS라고 얘기한다. 환경 세팅 (k6)https://velog.io/@ryuneng2/%EB%B6%80%ED%95%98-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-Windows-K6-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95 부하 테스트란, 임계값 한계에 도달할 때까지..
ServletJava를 사용하여 동적 웹 콘텐츠를 생성하는 서버 측 프로그램쉽게 말해, Java로 만든 CGI 프로그램 같은 것Servlet 인터페이스를 정의즉 Servlet 인터페이스를 구현 -> Java로 구현한 CGI프로그램 CGI의 단점 해결요청마다 새로운 프로세스가 생성 (CGI) -> 멀티 스레드로 해결스레드는 누가 생성하고 관리하나 -> 컨테이너의 등장Servlet ArchitectureServlet Container웹 컨테이너(web container, 또는 서블릿 컨테이너)는 웹 서버의 컴포넌트 중 하나로 자바 서블릿과 상호작용한다.웹 컨테이너는 서블릿의 생명주기를 관리하고, URL과 특정 서블릿을 맵핑 하며 URL 요청이 올바른 접근 권한을 갖도록 보장한다.웹 컨테이너는 서블릿, Jav..
✅ 아키텍처 구성 자세한 생성은 https://ehdgus1.tistory.com/110를 참고하자 Spring Boot 서버를 EC2에 배포하기전에 올렸던 게시글에서 인스턴스에 연결하여 우분투 환경에서 진행한다. ✅ 1. Ubuntu 환경에서 JDK 설치하는 법$ sudo apt update && /sudo apt install openjdk-17-jdk -y ✅ 2. 잘 설치됐는 지 확인하기$ java -vehdgus1.tistory.com ✅ EC2 생성보안 그룹 설정에서 8080번 포트 열어주는 것을 깜빡하지 말자. ✅ RDS 생성보안 그룹 설정에서 3306번 포트 열어주는 것 깜빡하지 말자. ✅ EC2에 Redis 설치$ sudo apt update$ sudo apt install redis$ ..
Board 엔티티만들기@Entity@Table(name = "boards")public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String content; @CreatedDate @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") @JsonSerialize(using = LocalDateTimeSerializer.class) @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime createdAt; ..
✅ 캐시(Cache)란?원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소를 의미한다.  ✅ 캐싱(Caching)이란?캐시(Cache, 임시 데이터 저장소)에 접근해서 데이터를 빠르게 가져오는 방식을 의미한다.   데이터를 캐싱할 때 사용하는 전략 ✅ Cache Aside (= Look Aside, Lazy Loading) 전략처음 게시판 서비스를 배포했다고 가정하자. 처음 게시판 서비스를 배포했기 때문에 데이터베이스와 레디스에는 아무런 데이터도 저장이 되어있지 않다.일부 사용자가 들어와 게시글 작성을 함으로써 데이터를 저장한다. 이 데이터는 데이터베이스에 저장된다. (레디스에 저장되지 않는다.)사용자가 데이터를 조회하려고 요청한다. 이 때, 데이터베이스로부터 바로 데이터를 조회하기 전에 레디스에..
✅ Redis란?레디스(Redis)는 Remote Dictionary Server의 약자로서, “키-값” 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다. 즉, Redis는 데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스이다. NoSQL 데이터베이스를 풀어서 얘기하자면 Key-Value의 형태로 저장하는 데이터베이스라고 생각하면 된다.  ✅ Redis의 장점레디스(Redis)는 인메모리(in-memory)에 모든 데이터를 저장한다. 그래서 데이터의 처리 성능이 굉장히 빠르다.  MySQL과 같은 RDBMS의 데이터베이스는 대부분 디스크(Disk)에 데이터를 저장한다. 하지만 Redis는 메모리(RAM)에 데이터를 저장한다. 디스크(Di..
HTTPS (HTTP over SSL/TLS)대칭키 암호화 알고리즘비대칭키 암호화 알고리즘키 교환 알고리즘인증서인증 기관 대칭 키 암호화 알고리즘"암호화에 사용하는 키" 와 "복호화에 사용하는 키" 가 같은 알고리즘예 )DES (Data Encrytion Standard)AES (Advanced Encryption Standard)암복호화 성능이 좋은 특징이 있음. 비대칭키 암호화 알고리즘암복호화에 사용하는 키가 서로 다른 알고리즘공개키 & 개인키공개키로 암호화 한 것은 개인키로 풀 수 있음.개인키로 암호화 한 것은 공개키로 풀 수 있음.예: RSA
말동말동현
동현s토리