SW 프로젝트 4~5주차 활동일지

고태경·2023년 10월 29일
0

SW 프로젝트

목록 보기
1/9
post-thumbnail

1주차 OT 8/30
2주차 주제 선정 (타임캡슐) 9/6
3주차 주제 변경 (냉장고 관리 웹사이트) 9/13
4주차 주제 결정 및 plan A, B 설정 9/20

5주차 프로젝트 첫 번째 중간 보고 9/27 (9/21~9/26)

Ⅰ. 개발 환경 구축

     1. 백엔드 : python (3.11.4), 장고 프레임워크 사용 ⇨ pycharm (같은 반 학우분께서 학생 계정을 쓰면 유료 버전을 쓸 수 있다고 알려주셨다. ㅎㅎ)
    2. 프론트엔드 : html css JS ⇨ 비주얼 스튜디오 파이참
    3. 터미널 프로그램 ⇨ cmder (dos 명령어 + 리눅스 명령어 사용 가능) 예를 들면 dir ⇨ ls

<파이썬 3.11.4 버전 설치 (버전 확인)> <설치한 어플리케이션>

Ⅱ. 이번 주차에 한 것

1. 장고 캘린더 만들어보기

        가. 목 표 : landing page의 ui를 만들기 전 미리 시연해본다.
        나. 활동내용:
           (1) github 연동 및 프로젝트 폴더 생성
               1. 깃허브에 레포지토리 생성 (django_calender)
               2. c:\django_calender 생성 후 git clone [django_calender] 연결
           (2) 가상환경 만들기
               1. file > Settings > 프로젝트 : [프로젝트 폴더명] > python interpreter
                   인터프리터 추가 > vertualenv 환경 > 환경 : 새로 만들기
               2. .gitignore 파일에 .idea(파이참에서 프로젝트에 설정한 내용을 담는 폴더) 추가
               3. 가상환경 실행(venv\Scripts\activate.bat) 후 장고 설치(pip install django)
            (3) 장고 프로젝트 생성
               1. 장고 프로젝트 생성 (django-admin startproject django_calender_prj .)
               2. 앱 만들기 (python manage.py startapp calender)
               3. 관리자 계정 생성 (python manage.py createsuperuser)
               4. templates/.html 파일 작성 > fullCalender 라이브러리 적용
               5. calender 앱의 model.py 수정
           (4) mysql 설치 및 DB 연동
               1. mysql workbench 설치
               2. Dockerfile, docker-compose.yml 작성
               3. settings.py 수정 > pip install mysqlclient 설치 > 마이그레이션 진행 settings.py의 databases 파트 수정

python manage.py makemigrations > python manage.py migrate

        makemigrations : models.py에서 적용한 변경사항이나 추가된 혹은 삭제된 사항들을 감지하여 파일로 생성
         migrate: 적용되지 않은 migrations들을(설정값들을) 적용시키는 역할
         즉, makimigrations는 장고에서 제공하는 모델의 변경사항들을 감지하고 기록 migrate는 그러한 기록된 파일들과 설정값들을 읽어서 그 변경사항을 db에 저장
     4. mysqlcilent 설치 후 데이터베이스 생성

create database calender character set utf8mb4 collate utf8mb4_general_ci;

+ 관리자 계정 생성 (python manage.py createsuperuser)

      (5) html 작성 (fullCalender 라이브러리 적용)
           1.https://cdnjs.com/libraries/fullcalendar/3.9.0 접속

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.9.0/fullcalendar.js"></script>

            2. https://www.jsdelivr.com/package/npm/jquery?tab=files 접속

<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script>

Ⅲ. 새로 공부한 개념

1. docker

    가. 도커란 : 파워포인트의 ‘폰트 포함 저장’ 기능 같은 것
     - 운영체제가 다른 서버에서 지금까지 만든 프로그램을 잘 실행할 수 있게 도와줌
     - 다른 하드웨어와 운영체제에서 작업하더라도 동일한 환경을 갖출 수 있도록 도와주는 기술, 기본적으로 가상환경과 비슷함

     나. 도커의 작동 원리
        - 환경설정 정보 (운영체제, 파이썬 버전, 라이브러리, 소스 코드, 이미지 파일 등) 모두 저장
        - 도커 실행 -> 도커 설정 파일에서 지정한 대로 서버 전체를 온전히 복제한 컨테이너 이미지 생성
        - 컨테이너 이미지 작동 -> 컨테이너 실행 (기존과 동일한 상태로 웹 사이트 서버 실행)

2. pymysql

가. pymysql이란 : python에서 MySql 서버와 통신을 할 수 있게 해주는 파이썬 용 데이터베이서 커넥터 (or mysqlclient, 전자는 파이썬, 후자는 c언어)     - pip install pymysql - import pymysql | pymysql.install_as_MySQLdb()

3. 서비스 배포에 필요한 것

     - 소스 코드 :복제해서 적절한 위치에 저장      - 웹 서버 : 웹 페이지를 보여줌 (nginx 사용) - 요청을 받아들이고 보내줌      - 인터페이스 : 웹 서버에서 받은 요청을 장고에게 넘겨줌 - 데이터베이스 : 장고에서 사용하게 될 것임      - Ubuntu: 리눅스 기반의 운영 체제      - WAS : WSGI(Web Server Gateway Interface) 파이썬에서는 이런거 있음

4. MVC 패턴 (model, view, controller)

가. 정 의 : 애플리케이션을 세 가지 역할로 구분한 개발 방법론 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴 나. 종 류 : (1) model : 데이터 처리 & 데이터베이스와 상호작용하는 인터페이스 역할 (자료의 형태 정의) (2) template : 웹 응용 프로그램인 브라우저에서 실제 사용자에게 표시되는 프레젠테이션 로직을 처리하여 UI로 나타냄 (웹 페이지에서 출력할 모습 정의) (3) view : 어떤 자료를 어떤 동작으로 보여줄지 정의 다. 장 점 : 분리해서 웹사이트를 관리함으로써 개발이 편리해짐

5. 템플릿 언어

6. 부트스트랩 (프론트 엔드 프레임워크)

<footer class="py-5 bg-dark"><div class="container"><p class="m-0 text-center text-white">Copyright &copy; Taegyeong's Website 2023</p></div></footer>

Ⅳ. 프로젝트에 기여한 사이트 및 책

    - django-MySQL 연동, MySQL workbench 사용 실습
    - do it! 장고+부트스트랩 파이썬 웹 개발의 정석 : docker 관련 내용 참고, MTV 패턴
    - MySQL Workbench로 erd 생성
    - Fullcalender+MySQL
profile
컴퓨터정보과

0개의 댓글