본문 바로가기

반응형

programming

(98)
Python을 활용한 메일전송 - SMTPlib의 사용 1.개요 Django를 공부하면서 SMTPlib를 사용하여 메일을 보낼 수 있다는 것을 알게 되었다. 책에 있는 예제를 그대로 따라하기만 했지만 내가 직접 문서를 찾아봐서 방법들을 정리해볼 생각이다. 메일을 보내는 기본적인 기능이 되었지만 그만큼 유용하기에 확실하게 알아두어야 할 것 같아서 정리하였다. 2. SMTP란? Python 공식 페이지에서 제공하는 자료를 보자. SMTP에 대해 찾아보면 다음과 같이 나와있다. smtplib 모듈은 SMTP나 ESMTP 리스너 데몬을 사용하여 모든 인터넷 기계로 메일을 보내는 데 사용할 수 있는 SMTP 클라이언트 세션 객체를 정의합니다. 뭔가 어려워보이지만, 간단하게 정리하자면 다음과 같다. "Python을 사용하여 메일을 보낼 수 있게 해주는 라이브러리" 그럼..
[백준 알고리즘] 1012번 - 유기농 배추 (DFS 알고리즘) 1. 문제 및 예시 실행결과 이 글의 소제목이 DFS 알고리즘이지만, 나는 DFS알고리즘을 모르는 상태이다...... 그냥 내가 생각한 방식대로 풀었더니 그것이 DFS 알고리즘이었던 것이다. 다른점이 있다면 나는 자료구조를 queue를 사용하였지만 DFS 알고리즘은 stack을 사용한다고 한다. 이 글은 DFS알고리즘의 설명보다는 1012번을 푸는 방법에 대한 글이라고 생각해줬으면 좋겠다. 출처: www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 중요한 점은 이놈의 지렁이..
[Django] Django 한그릇 뚝딱 Chapter2 실전 예제 해결 - 2.4. 실전 예제 해결하기(2) 1. Models.py 파일에 Todo 모델을 class로 만들어 두었다. 해당 Todo class에는 content 값만 존재하게 되는데, 'isDone'이란 값을 models, BooleanField 데이터 타입으로 갖자. 이때 defaylt 값은 False로 설정한다. 2. 데이터베이스에 반영 3. 이후 사용자가 완료 버튼을 눌렀을 때 서버에서는 해당 todo의 id값이 넘어오는데, 해당 id 값으로 데이터를 삭제하는 것이 아니라, 해당데이터의 isDone 값을 True로 만들자. 4. 메인 화면에서는 서버에서 모든 todo를 가져오는데, 이때 해당 todo의 isDone값을 if문으로 체크해 isDone 값이 False일 때만 보여주자. 출처: www.kyob..
[Django] Django 한그릇 뚝딱 필기 #1 - 개요 Django를 공부하기 시작했다. 웹페이지를 만들어야 할 일이 생겼는데 서버에대해 아는 것이 하나도 없었기 때문에 스스로 프로젝트를 하기 전 기초적인 지식을 공부해보고자 시작하였다. 문범우님의 저서 'Django 한그릇 뚝딱' 이라는 책으로 공부를 시작하였는데, 연락을 통해 부탁드리자 블로그에 책에 관련된 내용을 올리는 것을 친절하게 허락해주셨다. 이곳에 내가 공부한 것들을 많이 올려보았으면 좋겠다. 출처: www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791190014571 Django 한 그릇 뚝딱 - 교보문고 이 책에서는 빠른 생산성과 쉬운 내용으로 주목받고 있는 언어인 파이썬 그리고 파이썬을 기반으로..
코로나 종합 어플리케이션 작성기 (Jsoup을 활용한 실시간 확진자 알림) 1. 개요 학교에서 프로젝트를 진행하면 약간의 장학금과 3학점을 주는 프로젝트 활동을 진행하였다. 팀단위로 프로젝트를 개발하는 것 자체가 큰 경험이라고 생각하였고 비대면 수업으로 인해 시간도 많아졌다고 생각했기에 (실제로는 절대 아니었다.) 프로젝트에 참여하였다. 나는 데이터베이스를 구축하고 해당 데이터베이스에 저장된 데이터들을 가지고 지도에 위치를 표시하거나 실시간 동선 알림을 확인하는 등의 기능을 구현하였다. 다음은 크롤링을 통해 실시간 확진자 접촉 알림 기능을 구현한 과정을 설명하고자 한다. 2. 크롤링 크롤링을 처음 접한건 1학년 겨울방학 때이다. 한참 알고리즘 문제들로 머리가 아프던 와중에 언어를 활용하는 프로젝트를 진행해보고 싶었고, 그 와중에 크롤링을 공부하기로 마음먹었다. 당시에는 파이썬으..
[자료구조] - LCRS_TREE 구현 (C++) 1. 개요 이번 자료구조는 TREE의 종류 중 하나인 LCRS_TREE이다. LCRS는 Left Child Right Sibling의 약자로 왼쪽 포인터는 자식을, 오른쪽 포인터는 형제를 가리키는 TREE이다. 학교에서는 이 LCRS트리를 배운적은 없다. 일반적인 트리에 대한 개념을 배우고 이진 트리(이진 탐색 트리)와 수식트리를 배웠다. 따라서 LCRS트리는 스스로 모든 메소드를 구현해야 했는데 오히려 배운점이 더 많았다. 다음은 LCRS트리의 이론이다. 2. 이론 LCRS트리는 앞에서 설명했듯이 왼쪽은 자식을 오른쪽은 형제를 가리키는 트리이다. 즉 data를 기리키는 필드 하나와 왼쪽, 오른쪽 포인터의 역할을 기리키는 포인터 두개로 구성되어있다. 다음은 LCRS트리이다. 내가 배운 책에서는 LCRS트..
[최종본] C++를 활용한 오목게임 만들기 - AI모드의 OOP적 설계 1. 개요 드디어 AI(?)모드를 환성하였다. 말이 AI모드지 사실상 1인 플레이 모드이다. 아주 간단한 판별 알고리즘을 사용하였다. 다행이도 오목에 관련된 알고리즘이 설명되어있는 블로그를 찾았다. 이 블로그를 참고하여 OOP적으로 설계된 AI모드의 오목게임을 만들어보았다. 다음은 내가 참고한 블로그 글의 주소이다. 참고자료: https://ku-hug.tistory.com/2 오목 AI/인공지능의 간단한 원리 및 코드 대학교 1학년때 C언어 교수님이 프로그램을 만들어 제출하라해서 만든 프로그램... 조잡하다ㅠㅠ 인공지능보단 여러가지 패턴에 가중치를 설정해서 가중치가 가장 낮은 곳에 돌을 놓는 프로 ku-hug.tistory.com 기존에 만들어둔 Concave클래스를 상속받았기에 AI모드 역할을 하는 ..
C++를 활용한 오목게임 만들기 - PvP모드의 OOP적 설계 1. 개요 방학 때, 들은 특강을 계기로 만들어 보았던 오목 프로그램. 학기가 지나고 같은 특강을 똑같이 신청하게 되었다. 이유는 Class에 대한 문법은 알아도 이를 활용한 OOP적인 설계는 하지 못했기 때문이다. 내가 블로그에 올린 오목게임의 베타버전을 보면 알겠지만, 하나의 클래스가 거의 main()함수의 역할을 하는 절차지향적인 설계를 볼 수 있을 것이다. 베타버전의 오목게임을 보고싶으면 아래 링크를 통해 확인할 수 있다. 오목게임 베타버전: apape1225.tistory.com/32?category=815520 C++를 활용한 오목게임 만들기(베타버전) - array 이차배열 구현(STL) 1. 개요 방학 때, 교수님께서 따로 진행하시는 특강을 듣게 되었는데 최종 과제로 제출한 프로그램을 올려..