본문 바로가기

반응형

Blog for Programming

(169)
[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. 개요 방학 때, 교수님께서 따로 진행하시는 특강을 듣게 되었는데 최종 과제로 제출한 프로그램을 올려..
[명품 HTML5+CSS3+Javascript 웹 프로그래밍] - Open Challenge 08 1. 문제 안내 교재 8장 Open Challenge 08를 구현하시오. 드디어 한 학기가 끝났다. 제일 어리석은 변명은 "시간이 없어서"라는 변명이라지만, 개인적으로 바쁜 한학기를 보내 블로그 업로드에 신경을 쓰지 못하였다. 지금이라도 과제들을 정리하여 한번에 꾸준하게 업로드 했으면 좋겠다. 2. 코드 작성 - CSS 과제를 제출하고 나서 알게 된 사실이지만, 교수님께서 CSS를 따로 주셨다고 한다... (심지어 몇가지 기능의 답까지.) 점수취득이 목적이 아니라 공부를 위한 것이기에 상관 없었지만 화면구성과 기능 구현에 많은 어려움을 느낀 것은 사실이다. 다음은 CSS코드이다. 각각의 카드들을 div태그로 구현하였다. 따라서 세개의 div태그를 옆에 나란히 두어야 하기에 display를 inline-b..
[모바일 프로그래밍 과제] - 9주차 ( Paint 메소드, ArrayList) 1.과제 안내문, 예시 출력화면 C++을 공부할 때 Vector와 같은 STL 자료구조에 대해 공부한적이 있었다. 자바에서는 가변저항을 사용한 적은 없지만 이렇게 공부한 덕분에 조금 쉽게 이해할 수 있었다. 아십게도 자바의 가변저항에 대해서는 자세하게 설명하지 않을 것이다. 이 과제는 Paint() 클래스를 다루는 과제이기 때문이다. 다음은 문제 풀이이다. 2. 문제풀이 - ArrayList 그래도 ArrayList에 대한 기본적인 설명은 하고자 한다. ArrayList는 다음과 같이 선언할 수 있다. ArrayList 리스트이름 = new ArrayList(); ArrayList의 가장 좋은 점은 가변리스트 즉, 초반에 크기를 정하지 않아도 되는 리스트라는 것이다. 백준을 많이 풀어보신 분은 알겠지만,..
[모바일 프로그래밍 과제] - 8주차 (직접풀어보기 8 - 2) 1. 과제 안내문, 예시 출력화면 과제 #8 직접 풀어보기 8-2 교재 내용을 확인하고 해결해서 제출합니다. 단, 상단의 그림 번호는 그림이 3개라면 1/3 ~ 3/3으로 표시되도록 합니다(0이 아니라 1에서 시작해야 하니 주의~) 제출방법: xml 및 자바 파일, 실행 화면 캡쳐 3장 이상을 압축하여 zip 형식으로 제출합니다. 커스텀뷰 파일을 꼭 포함합니다. 중간고사 이후 블로그의 업데이트가 많이 늦어지게 되었다. 밀린 글들이 정말 많다... 과제 세개를 동시에 올리니 체력의 한계가 느껴지지만, 방금 과제 하나가 더 올라왔다... 웹프로그래밍에 대한 글도 최대한 빨리 올릴 예정이다. 2. 문제풀이 이번 과제는 SD카드에 있는 데이터를 다루는 과제이다. 때문에 커스텀과 같은 부분은 다루지 않겠다. (저..