전체 글
🔹 JMeter란? Jmeter는 소프트웨어의 성능을 측정하는 도구입니다. 다양한 성능 지표 중에서 서비스 부하를 측정합니다. 따라서 웹 서버를 개발하면서 데이터 처리 및 전송 속도, 동시 접속자 등 사용자 시나리오를 검사할 때 사용할 수 있습니다. Apache JMeter는 순수 Java 응용 프로그램으로 Apache 라이선스를 가진 오픈소스입니다. 공식 사이트 설명에 따르면 처음부터 웹 서비스를 테스트하기 위해 설계되었고, 이후 다른 테스트 기능으로 확장했다고 합니다. JMeter로 테스트 가능한 소프트웨어는 http 웹 서비스뿐만 아니라 FTP, SMTP, 자바 객체 등 다양한 타입이 있습니다. 따라서 공식 사이트에서는 JMeter가 브라우저가 아닌 테스트 툴임을 강조합니다. JMeter는 테스트 ..
머신 러닝 모델을 개발하는 단계에서 DB가 아닌 csv 파일을 읽어 개발하는 경우가 있습니다. 하지만 실제 서비스로 오픈할 때는 많은 경우 데이터베이스를 사용해야 합니다. 따라서 csv에서 dataframe으로 불러오는 방법이 아닌 DB에서 dataframe으로 불러오는 방법을 알아보겠습니다. 본 글에서는 MySQL DB를 사용했습니다. 🔹 Django - MySQL 연결 settings.py 위치에 db_settings.py를 생성하여 아래 정보를 입력합니다. db_settings를 gitignore에 등록하여 접속 정보를 숨기려는 목적입니다. settings.py를 공개하지 않는다면, 바로 추가해도 상관없습니다. ### settings.py import db_settings DATABASES = db..
Django로 개발하다 최근에 Spring으로 개발하고 있습니다. Spring 공부를 시작하며 우선적으로 IoC, DI, AOP 등 Spring 핵심 원리들을 MVC 패턴 전에 먼저 공부해야 했습니다. 또한 MVC 이외에 Sevlet, Bean 등 Spring 내부 구성 요소와 디자인 패턴 개념까지 필요했습니다. Spring 개발을 위해서 알아야 할 원리가 많다는 것입니다. Django를 공부할 때는 바로 MTV부터 시작했던 기억이 있어 Django에는 왜 핵심 원리를 먼저 공부하지 않았을까 궁금증이 생겼습니다. 있긴 할 텐데 별로 주목받지 못하는 느낌입니다. 구글에 이것저것 키워드로 검색해도 MTV 패턴 이외에 Spring과 같은 깊이의 문서가 잘 안보였습니다. (제가 못 찾았을 수도 있습니다.) 그래..
🔹 배경 외부 API를 사용하기 위해 요청/응답을 처리하는 방법을 연습합니다. Spring에서 HTTP 요청을 위해 사용하는 라이브러리는 RestTemplate, WebClient등이 있습니다. RestTemplate은 Spring 3.0부터 지원하기 시작했으며, 동기식 요청만 처리 가능한 특징이 있습니다. 최근 Spring 5.0부터 WebClient를 표준으로 삼아 스프링에서 권유하고 있어 이를 다뤄보겠습니다. 🔹 WebClinet란? 공식문서: https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html#webflux-client 참고문서: https://www.baeldung.com/spring-5-web..
Django 서버 API를 하나하나 파악하는 것은 효율적이지 못하므로, 자동 문서화 도구를 사용해서 적용된 API를 파악하고자 도입하였습니다. Djnago에서 사용 가능한 API 문서 자동화에는 Django REST Swagger 라이브러리 등 몇가지가 있습니다. 최근에 drf-yasg 라이브러리가 좋다는 글들이 많아 보였고, 내가 원하는 기능을 충분히 제공하고 업데이트도 잘해주는 것 같아 비교 없이 drf-yasg를 도입하였습니다. 본 글은 drf-yasg를 사용하기 원하는 사용자가 참고하시면 좋을듯합니다. 🔹 적용 하기 Django REST framework(DRF)가 적용된 프로젝트 입니다. 라이브러리 설치 pip install drf-yasg setting.py 설정 INSTALLED_APPS =..
캐글(Kaggle) 같은 경진대회를 하다 보면 제작한 AI 모델을 서비스에 적용하고 싶을 때가 있습니다. 서비스 적용을 시도하며 Kaggle Dataset으로 모델을 만들고 django를 통해 서빙하였습니다. 본 프로젝트는 django를 이용한 콘텐츠 기반의 영화 추천 서비스입니다. 하나의 예시로 삼아, 각자 개발 환경에 맞게 ML모델을 적용하시면 됩니다. 본 글에 오류가 있다면 편하게 알려주세요:) 모든 피드백과 질문을 환영합니다. 🔹 콘텐츠 기반 추천이란? 콘텐츠 기반 추천은 사용자가 과거에 좋다고 생각한 콘텐츠와 비슷한 콘텐츠를 추천하겠다는 아이디어입니다. 단순하게 말하면 아래 그림과 같이 사용자가 특정 아이템을 선호하는 경우 그 아이템과 비슷한 특성을 가진 아이템을 추천하는 방법입니다. 그림에서 ..
django + Vue.js를 이용해 게시글을 워드 클라우드로 보여주는 방법을 요약하였습니다. 따라 하기 쉽게 작성하였으며, 각자 개발 환경에 맞게 적용하시면 되겠습니다. NLP와 워드 클라우드가 핵심이라기보다는 이것을 어떻게 django에서 Vue.js로 서빙해 알맞은 서비스를 만들지 고민하였습니다. 본 글에 오류가 있다면 편하게 알려주세요:) 모든 피드백과 질문을 환영합니다. 🔹 워드 클라우드란? 워드 클라우드는 여러 문자열 데이터를 가공하여 키워드를 보여주는 그림이다. 일반적으로 중요한 단어를 크고 강조된 방식으로 보여주어 원본을 읽지 않더라도 내용 파악을 빠르게 하게끔 도와준다. 🔹 사용한 KR-WordRank NLP 간단 설명 워드 클라우드를 만드는 방법은 '키워드를 가중치로 분류하기(토큰화)'..
DB는 다양한 사용자가 동시에 만지고 수정합니다. 이러한 동시 다발적인 사용에서 오류가 발생해서 안되고 또한 빠르게 작업들을 처리해야 하는데 어떤 방법으로 가능한지 궁금했습니다. 공부를 통해 데이터 무결성을 확보하면서 이런 작업을 가능하게 하는 트랜잭션에 대해 정리합니다. 개념을 쉽게 쓰는 게 어려워 예시를 많이 사용했습니다. 🔹 트랜잭션? 다양한 정의가 있어 아래와 같이 정리했습니다. 지금 정의가 이해되지 않으면 예시를 보고 다시 돌아와도 좋습니다. 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업 단위 한꺼번에 모두 수행되어야 할 일련의 연산 데이터 베이스의 DML(데이터 조작어, 조회&삽입&수정&삭제)의 논리적인 작업 DML 실행과 실행에 대한 커밋(or 롤백) 단계 (Sel..