본문 바로가기

전체 글

(105)
[Web] gRPC 사용해보기 개요gRPC는 위에서의 설명과 같이 모든 환경에서 실행할 수 있는 고성능 RPC(원격 프로시저 호출) 프레임워크입니다. 구글에서 개발해서 g를 접두사로 붙였습니다. 원격 프로시저 호출이라는 의미는 다른 서버의 함수(프로시저)를 내 서버에서 실행할 수 있다는 의미이고 gRPC는 이를 지원하는 프레임워크입니다.장점HTTP/2와 Protobuf 등을 사용하여 빠르고 효율적인 통신. 특히 대용량 데이터 전송 시 이점이 있음서버와 클라이언트의 양방향 스트리밍을 지원하여 실시간 데이터 처리에 용이거의 모든 환경에서 사용 가능단점디버깅이 어려움(Protobuf는 바이너리 방식)기본적인 브라우저 환경에서는 사용이 어려움. 추가적인 라이브러리 필요.예시(Server)이 글에서는 자주 사용하는 Web 서버의 상황을 예를 ..
[AI] Gemma 사용해보기 Gemma Google에서 공개한 경량 오픈 모델(sLLM), 경량 모델로서 온디바이스 모델로 활용하기 적합 현재는 Parameter 20억개, 70억개 모델로 gemma-2b, gemma-7b가 공개 상태 Apache-2.0 라이센스 HuggingFace Gemma 아래는 HuggingFace를 이용한 방법으로 설명 환경 세팅 HuggingFace Gemma 라이센스 승인하기 https://huggingface.co/google/gemma-2b google/gemma-2b · Hugging Face This repository is publicly accessible, but you have to accept the conditions to access its files and content. To a..
[JPA] 낙관적 Lock, 비관적 Lock 개요 JPA에는 동시에 여러 사용자가 접근하여 데이터를 조작할 때 발생할 수 있는 문제를 다루기 위해 Lock을 지원하고 있습니다. 이 중에 낙관적 Lock(Optimistic Lock), 비관적 Lock(Pessimistic Lock)에 대해서 알아보려 합니다. 낙관적 Lock 낙관적이란 단어에서 알 수 있듯이 데이터 갱신 시 충돌이 발생하는 것을 막는 것이 아닌 충돌이 일어났을 때 처리하는 Lock입니다. @Entity class Book( @Id val bookId: String, val bookName: String, @Version val version: Int ) JPA에서는 위와 같이 Entity에 version 필드를 지정하여 사용합니다. version 값을 통해서 Entity의 변경사항을..