IT/프로그래밍

[파이썬] 파이썬 1차 프로젝트 블로그 만들기 [패스트 캠퍼스 챌린지 17일]

뜻밖의 행복 2022. 2. 9. 21:56
반응형

안녕하세요? 뜻밖의 행운입니다.

 

패스트캠퍼스 챌린지 17일차 

파이썬 강의 드디어 무언가를 만들어 보려고 합니다. 

블로그 만들기 프로젝트인데 

 

완성품을 보니 사실 그렇게 엄청나지는 않지만

처음부터 어마무시한것을 만들 필요는 없지요

업으로 삼을것이 아니라면 그냥 개인이 편하게 사용할 수 있는 작은 프로그램이라도 좋습니다.

 

그 기초가 될 첫 미니 프로젝트 가봅니다.

 

 

만들려고 하는 것이 블로그라고 합니다. 

GUI가 있는 엄청난 것은 아니지만 나름 CRUD 를 갖춘 프로그램입니다.

C : Create(쓰기)

R : Read(읽기)

U : Update(수정)

D : Delete(삭제) 

 

를 말하는 것이며 기본적인것 같은데 돌아보면 주위에 있는 큰 서비스들이 

기본적으로 지원하는 기능이기도 하지요 

 

사실 이 티스토리 블로그만 하더라도 CRUD를 지원하는 프로그램이라고 볼 수 있겠네요

 

프로그램을 만들 때 일반적으로 가장 많은 시간이 소요되는 곳은 사실 코딩하는 부분이 아니라

프로그램의 설계라고 합니다. 

프로그램 설계를 잘 해놔야 나중에 구현할때도 편하고 끝에가서 결과물이 이상하지 않게 됩니다.

 

그렇다면 이번 미니 프로젝트인 블로그는 어떻게 설계해야 할까요?

우선 필요한 기능부터 파악을 해야 합니다 .

 

1. 게시글 쓰기

2. 게시글 수정하기

3. 게시글 읽기

4. 게시글 삭제 하기

5. 게시글 상세 확인하기

6. 메뉴 출력하기

7. 게시글 목록 확인하기

8. 게시글 저장하기  

 

입니다. 

 

위 기능들을 지금까지 배운것들 이용하여 구현하면 됩니다.

우선 기능들만 봐도 반복되는 단어가 있습니다.

바로 게시글이지요 그렇다면 반복 되는 것은 함수로 만들어 쓰거나 

클래스로 만들면 됩니다. 

수정하기, 삭제하기 등의 동사가 보이니까 클래스로 만들어 보겠습니다.

 

클래스 설께는 어떻게 하면 될까요?

속성과 메서드로 나누면 됩니다. 

게실의 속성에는

 

글번호, 제목, 본문, 조회수가 있을 것이고 

메서드는 게시글 수정하기, 조회수 늘리기, 속성 가져오기 등이 있을 겁니다. 

 

그렇다면 오늘은 게시글 클래스를 만드는것 까지만 해보겠습니다.

 

class Post:
    def __init__(self, id, title, content, view_count):
        self.id = id
        self.title = title
        self.content = content
        self.view_count = view_count

    def set_post(self, id, title, content, view_count):
            self.id = id
            self.title = title
            self.content = content
            self.view_count = view_count  
    def add_view_count(self):
        self.view_count += 1
    
    def get_id(self):
        return self.id

    def get_title(self):
        return self.title

    def get_content(self):
        return self.content
    
    def get_view_count(self):
        return self.view_count

if __name__ == "__main__":
    post = Post(1, "제목없음", "제목은 없지만 내용은 있지요", 0)
    print(f"{post.get_id()} {post.get_title()} {post.get_content()} {post.get_view_count()}")

위 코드를 작성하고 실행시키면

우선 테스트는 잘 되는 것이 확인 됩니다.

 

class Post:
    def __init__(self, id, title, content, view_count):
        self.id = id
        self.title = title
        self.content = content
        self.view_count = view_count

는 Post 클래스를 만드는 부분입니다. 

id, title, content, view_count 은 각각 이름에서도 느껴지듯이

 

id - 게시글 번호 

title - 게시글 제목 

content - 게시글 내용

view_count - 게시글 조회수

 

속성을 뜻합니다.

 

자 그렇다면 아래 정의되는 매서드는 알기 쉽습니다.

 

 def set_post(self, id, title, content, view_count):
            self.id = id
            self.title = title
            self.content = content
            self.view_count = view_count  
 
딱 봐도 set_post 에 속성 값들 보니까 게시글을 수정하는 매서드 입니다. 
 
 
def add_view_count(self):
        self.view_count += 1
 
 
조회수에 1씩 늘려주는 것을 봐서 조회수 늘려주는 매서드 이죠?
 
 
 def get_id(self):
        return self.id

 def get_title(self):
        return self.title

 def get_content(self):
        return self.content
   
 def get_view_count(self):
        return self.view_count

get은 딱봐도 각 속성들 값을 읽어오는 매서드 입니다.

이렇듯 이름만 잘 지어놔도 사실 그 매서드가 무슨 기능을 할지 빡 느낌이 옵니다.

 

기본적인 클래스들은 만들었고 다음에는 이 클래스의 매서드를 더 추가할것 같네요

 

 

반응형