Programming

Batch 서버는 Job(실행 단위 정도..?)을 관리할 뿐 엄밀하게 스케줄러는 아닙니다. 하지만 보통 스케줄러와 함께 정기적으로 로직을 실행한다는 의미로 이 글에서 표현했습니다. 🔹 라이브러리 선정 Batch를 구현하기 위해서는 외부에서 정기적으로 트리거를 발생시키거나 django 내부에서 정기적으로 로직을 실행해야 합니다. 리눅스 환경에서 django 자체적으로 os 지식 없이 batch를 구현하는 라이브러리를 선정했습니다. 후보 1. django-crontab 글쓰는 당시 django batch를 검색했을때 가장 많이 나왔습니다. cron은 유닉스 계열 운영 체제의 시간 기반 잡 스케줄러입니다. 최신글이 계속 나오는것으로 보아 아직까지 호환되는 라이브러리 같습니다. 하지만, 2016년에 마지막 업데..


🔹 EmailJS 설명 EmailJS는 클라이언트 측 기술만 사용하여 이메일을 보낼 수 있도록 도와주는 JavaScript 라이브러리입니다. 서버가 필요하지 않기 때문에 지원되는 이메일 서비스 (gmail 등) 중 하나에 연결하고 사용하기만 하면 됩니다. 무료 플랜은 한 달에 200건의 메일을 사용할 수 있습니다. 🔹 EmailJS 가입 및 설정 1. 사이트 접속 회원가입 https://www.emailjs.com/ Send email directly from your code | EmailJS No server side code required. Add static or dynamic attachments, dynamic parameters, captcha code and more. Start with..


🔹 왜 하게 되었을까 Vue.js는 기본적으로 SPA(Single Page Application)입니다. 그래서 아무 생각 없이 검색 엔진에 색인 없이 등록하면 되겠다는 생각으로 구글 콘솔에 올렸는데, 아래와 같은 메일을 받았습니다. SPA에 어떻게 404가 나오지? 라는 생각을 하며 Soft 404를 찾아보니, 200 status를 주지만 내용이 없어 마치 404 같은 사이트를 감지하는 것 같습니다. 너무 똑똑한 엔진... 우선 지정되지 않는 path에 대해서 router에서 404 디폴트 페이지로 리다이랙션되도록 만들어 주었습니다.(참고) 이참에 색인을 위한 sitemap.xml을 만들어보자는 생각에 시작했고, 생각보다 한글 자료가 없어 글로 남겨봅니다. 🔹 라이브러리 검색 관련 라이브러리들이 npm..


머신 러닝 모델을 개발하는 단계에서 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 간단 설명 워드 클라우드를 만드는 방법은 '키워드를 가중치로 분류하기(토큰화)'..