싱글스레드 Redis가 수십만 QPS를 내는 구조적 비밀 - 코딩하는 기술사 https://www.youtube.com/watch?v=H-jSrhvnaLY 우아한테크 세미나 191121 우아한 레디스 https://www.youtube.com/watch?v=mPB2CZiAkKM 개발자를 위한 레디스 - 효율적인 개발을 위한 인메모리 데이터베이스 사용 가이드 Q. MySQL의 innoDB 버퍼풀의 데이터 페이지에는 최근에 참조된 데이터가 메모리에 캐시되는데 dbms 자체적으로 버퍼풀 메모리에 캐시되는데 레디스를 썼을 때 얻는 이득은 무엇인가요?
FTP는 1971년 처음 제안된 프로토콜로 데이터 전송 시 암호화를 제공하지 않는 “평문 기반 프로토콜”로 명령어 포트 (21번)를 통해 전송되는 제어 정보는 모두 암호화되지 않은 텍스트 형태로 오고간다. Kaist FTP Server, 리눅스 ISO 이미지 파일 배포 등 누구에게나 공개된 오픈소스 소프트웨어 혹은 학술자료나, 암호화 연산 자체가 필요없는 초 경량형 임베디드, IoT장비와 같은 경우에는 FTP Protocol을 사용해도 상관없으나, 보안이 필요한 운영서버에서는 절대 사용해서는 안되는 프로토콜이다. Cmd에 ftp protocol을 사용해 kaist ftp에 접속한 뒤, id : anonymous, pw : 1234를 입력한뒤, 와이어샤크에서 ftp 패킷을 캡처해 보았다. 다음 실험 결과와..
@JsonProperty는 Entity를 Json형태로 직렬화하는 경우 속성의 이름을 설정할 수 있도록 도와주는 어노테이션이다. 이를 통해 백엔드와 프론트엔드간 엔터티 필드명 불일치를 해결할 수 있다. 예시로 아래와 같은 Board Entity 파일이 백엔드에 정의되어 있다고 가정해 보자. public class Board extends BaseTimeEntity { ... @Column(name = "post_view", nullable = false) private Integer postView = 0; @Column(name = "pinned", nullable = false) private Boolean pinned = false; @Column(length = 2..
Note1. @Configuration & @Value Annotation@Configuration해당 클래스가 스프링의 설정 정보를 담고 있음을 나타낸다. 스프링 컨테이너는 @Configuration 어노테이션이 붙은 클래스를 스프링빈 정의를 위한 소스로 사용하며, 내부적으로는 CGLIB 라이브러리 내부의 프록시 객체를 생성해 @Bean이 여러번 호출되더라도 언제든지 동일한 싱글톤 객체를 반환하도록 보장해준다. @Value 외부 설정 파일 application.propeties, application.yml 과 같이 시스템 환경 변수에 정의된 값을 필드나 파라미터에 주입할 때 사용한다. ${property.name} 형식으로 사용하며 스프링이 관리하는 객체 안에서만 동작한다는 점에 유의하자.(new,..
Note1. S3 Architecture이미지파일 업로드 로직사용자가 EC2(인스터스/서버)에 이미지 업로드를 API로 요청한다. S3에 이미지를 업로드한다. 이미지가 저장된 URL을 리턴한다.DB에 이미지가 저장된 URL을 저장한다. 처음에 이미지파일 업로드 아키텍쳐를 구성할때 이미지 자체를 DB에 저장하는것이 아닌가 많이들 오해하는데물론 DB에 이미지파일 자체를 저장할 수도 있으나 대체로 DB에는 이미지 파일 주소만을 저장하고 실제 이미지 파일은 S3에 저장한다. 이미지파일 다운로드 로직 사용자가 EC2(인스턴스/서버)에 이미지 조회를 API로 요청한다. 서버는 DB로 조회 SQL문을 날린다. DB는 서버에 저장되어 있던 이미지 URL을 응답한다. 서버는 사용자에게 이미지 URL을 응답한다. 사용자..