본문 바로가기

전체 글

(17)
[Kafka] 탄생 배경 (1) 전통적인 Database 시스템 구조는 애플리케이션과 DB가 연결된 end-to-end 형태를 띄고 있다. 하지만 간단한 구조에 반해 각각 분리된 Data 파이프 라인이 필요하고 요구사항이 증가함에 따라 더욱 복잡해지는 문제가 생긴다.시스템 복잡도가 증가하면 아래와 같은 문제가 발생한다.중앙화된 데이터 전송 영역의 부재데이터 흐름을 파악하기 어려움복잡한 시스템 관리일부 문제 발생 시 연결된 모든 애플리케이션을 확인end-to-end 형태 시스템은 시스템을 복잡하게 만드는 것에서 나아가 여러 문제를 일으킨다.데이터 일관성을 유지하기가 어려워진다실시간 데이터 처리가 어렵다확장성에 제한이 생긴다.이런 이유들로 인해 링크드인은 DB와 어플리케이션 사이를 중개하는 메시지 브로커, Kafka 를 만들게 된 것이다...
[Spring] Failed to convert value of type 'java.lang.String' to required type 'long' [ 에러 배경 ]현재 구현하고자 하는 기능은 HLS 프로토콜을 통해 분할된 m3m8 파일과 ts 파일을 클라이언트에게 전송하는 api 다. 사용자가 동영상을 업로드하고 이후 동영상 id 만으로 동영상을 불러올 수 있도록 하는 게 목표다. 저장할 때 경로는 src/main/resource/static/hls/chanel-{chanelId}/{title} 로 지정했다. 프론트에서 사용하는 api 는 아래와 같았다. // 기존@GetMapping("{movieId}")//현재@GetMapping("{moveId-Name}/chanel/{chanelId}") 해당 api 로 데이터를 불러오던 중 에러가 발생했다. String 을 long 으로 바꿀 수 없다는 내용의 에러였다.처음 이 부분만 봤을 때는 Id 만 ..
[Java] static, 잘 알고 사용하자. Static클래스 레벨의 변수나 메소드, 블록을 정의할 때 사용된다.인스턴스 생성 없이 접근 가능하며, 모든 인스턴스에서 공유 가능JVM 에서 드러나는 특성메모리의 메소드 영역에 할당Static 변수와 static 메소드는 Static 메모리 영역에 존재프로그램 시작 시 메모리에 할당되고 프로그램 종료될 때까지 유지된다.객체가 생성되기 이전에 이미 할당이 되어 있다.메모리의 메소드 영역에 할당되기 때문이다.주된 사용법모든 인스턴스가 공통적으로 사용해야 하는 값이 존재할 때단점객체지향 프로그래밍 원칙과 상반된다.과도한 static 사용 시 메모리 누수의 원인이 될 수 있다.💡 메모리의 메소드 영역Static 영역을 포함하고 있으며 GC 의 관리 영역 밖에 존재한다.일반적으로 우리가 만든 Class는 St..