X. Java Basic

Gunju Kim·2024년 9월 13일

미니 프로젝트 시리즈 - 게시판 어플리케이션 이야기 1.

  • 일단 못해먹겠다고 생각이 들긴 했지만 어찌저찌 미니 프로젝트로써 만들어가기 시작했다. 지난주 화요일 (9/3) 부터 시작해서 현재까지 이어진 미니 프로젝트를 수행하면서 개발자가 하는 일들이 얼마나 사람의 언어를 코드적으로 해석하는것에 뛰어나야 하는지 몸소 체감하는 중이다. 홈페이지와 그 홈페이지에서 제공하는 게시판에 관한 이미지가 아닌 그 뒤에서 그걸 몸소 작동시키게 해주는 로직, 백 엔드의 복잡함과 화요일부터 시작해서 현재까지 생성해낸 방대한 양의 함수 및 메소드 코드들은 정말 머릿속을 복잡하게 했다.

1. 일단 시작해보자.

alt text

미니 프로젝트를 수행하면서 만든 수많은 패키지와 자바 클래스들이다. 처음 수행해본 방대한 양의 코드 작업들을 통해서 앞으로 실무에 가서는 얼마나 더 많은 양의 코드들을 작성해야 하는 지를 직접 눈으로 보고 피부로 느끼게 되었다. 이 프로젝트를 진행하면서 처음 MVC 모듈이라는 것도 알게되었고 할말이 많지만 일단 시리즈가 될것 같아서 여기에선 처음 작성하게 된 homepage 클래스부터 천천히 설명하겠다.

HomepageApp.java.

alt text

  • 일단 정리되어 있는것처럼 보이지만 이것은 여러번의 수정을 거쳐서 코드의 반복을 없애고 각각의 기능을 메소드로 정리하여 최대한 깔끔하게 보이게 만든 최종 수정본임을 감안하자. 심지어 MVC 모듈을 알기 전에는 이곳 main 코드에다가 메소드를 선언하고 동작시키는 짓을 해서 코드의 가독성도 엄청 좋지 않았고 이곳에서 실수로 코드를 하나 잘못 건드리면 다른곳에 다 영향을 줄 수도 있는 아주 무지막지한 무정부 상태였다고 할 수 있겠다.

  • 일단 기본적인 코드 쌓는 순서는 이렇게 진행이 되었다:

  1. 스캐너를 삽입 -> 스캐너를 넣고 그 다음에 동작 메소드를 하나 만들어주었다.
  2. 동작 메소드 -> public void Run 이라는 메소드를 선언하고 거기에서 homepage 프로그램에 있어서 가장 기본적으로 동작이 될 프로그램의 가장 밑바닥인 기초 공사를 진행.
  3. while 문으로 기본적인 동작 과 기능 구현을 위한 로직 생성 -> while 문을 이용해서 요구사항인 기본적인 기능들(게시물 등록, 수정, 검색, 삭제, 목록보기, 등등) 기본적인 기능들이 구현될수 있는 틀을 잡아주었다.
  4. System.out.println(); 을 이용하여 잘 동작하는 지 테스트 -> 그냥 잘 동작만 되는지 테스트를 한번 진행했다.

이렇게 모든 구간들을 진행하고 난 다음부터 진짜 여러가지 클래스와 코드들의 블록을 쌓는 일이 시작되었다.

클래스 만들기 - 1

alt text

  • 먼저 게시판에 올라가는 게시물에 관한 클래스를 만들어주었다. 클래스는 지난번에 배운것과 마찬가지로 자바에게 지금부터 내가 만들려고 하는 클래스에는 어떠한 정보들을 담아야 하고 어떤 변수들이 들어가야 하는지 알려주는 것이다.

1. 게시물(Post) 클래스 설계하기

  • 생각해보자 인터넷의 포털 사이트나, 그 사이트에서 운용하는 블로그 라던지 혹은 카페에서 등록된 유저들이 사용하는 게시판의 게시물들은 어떤 정보를 보여주고 담아둘까? 게시물의 제목, 내용, 또 게시물을 다른 사람이 봤을때 올라가는 조회수, 게시 날짜, 답글, 추천수, 게시글이 등록되면 부여받는 고유 id 정보 등등 여러가지가 있다. 이제 그것을 자바에게 알려줘야 자바가 게시물이라는 객체를 인지하고 그 인지한 객체를 이용하여 개발자가 게시물이라는 정보를 이용하여 코드를 짤수가 있다.

  • Post 라는 클래스를 설정해준뒤 public Post(){}를 설정해주고 () 괄호 안에 받아야되는 변수들을 입력해서 게시물이 생성될때 마다 관련 정보들을 한번에 생성하면서 수집하게 만들었다. 그리고 이 변수들을 초기화 해준뒤에 중요한것이 getter 와 setter 를 만드는 것인데. 인텔리j에서는 이 모든 코드들을 직접 손으로 치기 귀찮으니 alt+insert 라는 단축키로 getter 와 setter 를 한번에 만들수 있게 해놓았다. 이건 정말 편리하다.

profile
처음이라서 그래 가본적 없던 길에

0개의 댓글