본문 바로가기

전체 글

(66)
Spring Security Architecture - Servlet 기반 애플리케이션 Servlet 기반 애플리케이션에서의 Spring Security의 상위 수준 아키텍처에 대해 정리한 글입니다. Java 서블릿에 대한 기본 개념은 알고 있다는 전제하에 작성됐습니다.Spring WebFlux가 나오기 전에는 'Servlet 기반'이라거나 'Spring MVC 기반'이라는 용어가 필요 없었는데, 리액티브 애플리케이션쪽으로 Spring WebFlux가 나옴에 따라 명확한 구분이 필요해졌습니다. 이 글의 내용은 Java의 서버쪽 기능을 확장하는 소프트웨어 컴포넌트인 Servlet 기반의 MVC 프레임워크 Spring MVC 상에서의 Spring Security 아키텍처라고 보시면 됩니다. Servlet FliterServlet 기반 애플리케이션에 대한 Spring Security의 구조를 알..
Upstage Solar API 사용해 보기 2 - Open WebUI 에서 사용 올해 초에 Upstage의 Solar API가 한시적으로 무료 사용이 가능해서 간단히 글을 올렸는데, 의외로 이 글이 제  글 중에서 조회수가 많은 편에 속하고 있습니다. 구글 검색을 통해서 들어오는 수도 가장 많은 편에 속하고요. 그래서, 기념(?)으로 두 번째 글을 써 봅니다. 마침  Solar pro preview를 무료로 사용해 볼 수 있는 기간이기도 합니다. Ollma 와 Open WebUIOllma는 LLM(Large Language Model)을 정말 쉽게 사용할 수 있게 해 줍니다.https://ollama.com/ OllamaGet up and running with large language models.ollama.com설치도 정말 쉽고, 다양한 오픈 소스(내지는 open weight..
티스토리 <작심삼주 오블완 챌린지> 소개 https://www.tistory.com/event/write-challenge-2024 작심삼주 오블완 챌린지오늘 블로그 완료! 21일 동안 매일 블로그에 글 쓰고 글력을 키워보세요.www.tistory.com
라즈베리파이 카메라 모듈 - 객체 탐지 앞선 글에서 다뤘던 모니터링 웹앱에 객체 탐지(object detection) 기능을 간단히 추가해 봤습니다.객체 탐지는 이미지내에서 객체들을 찾는 것입니다. 예를 들어 이미지내에 TV라는 객체가 있다면 해당 객체를 TV라고 찾는 것입니다. 이를 처음부터 구현하려면 이미지 처리부터 머신러닝까지 다양하고 복잡한 단계가 필요하지만, OpenCV와 TensorFlow의 Object Detection API 덕분에 쉽게 구현해 볼 수 있습니다.Tensorflow Object Detection API사용할 객체 탐지 API는 다음과 같습니다.Tensorflow Object Detection API: https://github.com/tensorflow/models/tree/master/research/object..
라즈베리파이 카메라 모듈 - 모니터링 웹앱 만들기 라즈베리파이의 카메라 모듈을 사용할 기회가 생겨 연결해 보고 모니터링 웹앱을 만들어 봤습니다. 기록을 위해 간단히 정리해 봅니다. 카메라 모듈 연결 및 동작 확인준비 사항라즈베리파이 4카메라모듈 v2카메라 모듈 종류는 https://www.raspberrypi.com/documentation/accessories/camera.html 에서 확인할 수 있습니다.연결 케이블FPC 15핀 to 15핀 케이블 : 카메라모듈 v2에 기본적으로 포함돼 있습니다.라즈베리파이 5인 경우에는 15 to 22(또는 22 to 15) 케이블을 별도로 구매해야 합니다.Pi OS 64bit 최신 버전동작 확인Pi OS 최신 버전에는 라즈베리파이 카메라 모듈 동작을 위한 CLI용 프로그램과 파이썬 패키지가 모두 설치돼 있습니다...
라즈베리파이 - 홈서버 구성 최근에 라즈베리파이로 홈서버를 구성하여 간단한 웹 애플리케이션을 하나 올리고 외부에서 접속 가능하게 했습니다. 이 내용을 전체적인 관점에서 정리해 보려고 합니다. 우선 전체 구성도는 대략적으로 다음과 같습니다.1. 외부망 연결외부망 연결은 주 서버가 되는 라즈베리파이 5를 직접 연결하지 않고, 공유기(그림에서 편의상 무선 접속지점인 AP로 표기해 뒀습니다)를 거치도록 했습니다. 라즈베리파이 5에 유선망을 직접 연결하는 불편함도 있었지만, 무엇보다 공유기 쪽에 기본적인 네트워크 관리 기능이 있어서 일차적인 보안은 공유기에서 하는 것으로 결정했기 때문에 공유기를 관문으로 하게 됐습니다. 이렇게 함으로써 라즈베리파이 5쪽에서는 방화벽 같은 쪽은 크게 신경 쓰지 않을 수 있었습니다.공유기 쪽에서 HTTPS인 4..
open weights 의미 구글에서 Gemma라는 LLM을 공개했다고 하여 좀 살펴보게 됐는데, Gemma의 github 페이지에 보면 다음과 같이 첫 소개글을 적고 있습니다. Gemma is a family of open-weights Large Language Model (LLM) by Google DeepMind, based on Gemini research and technology. 여기에 보면 open-weights 라는 표현을 쓰고 있습니다. 설마 격투기의 무제한 급을 의미하지는 않았을테고, 무슨 뜻으로 적은 것인가 하여 좀 찾아 보니 다음과 같은 좋은 글을 찾을 수 있었습니다.https://promptengineering.org/llm-open-source-vs-open-weights-vs-restricted-wei..
second lost updates problem에서 second는 왜 붙였을까? 트랜잭션 고립과 관련된 문제들(issues) 중에 "second lost updates problem"이라는 것이 있습니다. Hibernate in Action의 원문을 그대로 인용하면 내용은 다음과 같습니다.Second lost updates problem— This is a special case of an unrepeatable read. Imagine that two concurrent transactions both read a row, one writes to it and commits, and then the second writes to it and commits. The changes made by the first writer are lost. This problem is also kn..