현재 게시판 클래스를 정리하는 작업을 진행 중이다. 


지저분하지만, 정리하기전에 코드를 한번 남겨두고 싶어서 캡쳐해 보았다. 



 


여기있는 자바 코드들이 게시판을 구동하는 주요 엔진이라고 생각하면 된다.



현재 : 모든 처리가 BoardController 하나에 의해서 처리된다. 


정리 후 : 각 모듈별로 Controller를 하나씩 만들 계획



현재 : Command 부분이 전부 하나의 패키지 안에 있다.


정리 후 : 각 모듈별로 패키지를 분리할 계획 



DAO나, DTO는 안건드려도 될 것 같다.



Util에 있는 LoginChecker는 세션에서 로그인 정보를 관리해준다고 해야하나.. 아무튼 전체적으로 관리?? 해준다. 조금 더 공부해야겠다. 



PagingList는 페이징 처리를 해주는데 도움을 주는 친구이다.




오른쪽의 jsp파일은 웹페이지화면을 뿌려주는 친구들이다. 일반적으로 View라고 한다. 



중간중간 DB체크를 위해 만들었던 친구도 있고,



무엇보다 페이지 이름들이 정리가 덜 되어 있다. 



이 부분도 정리를 할 것이다. 



정리하면서 코드도 반복적으로 쓰이는 것도 정리하고 리팩토링??? 초보자지만 그래도 한번 도전해보련다.



다 정리되면 또 올려보겠다.

지난번 게시판 DB구조 만든 이후로 현재 스프링으로 게시판을 거의 다 만들었다. 


현재까지 완료된 작업을 살펴보자면,,


- 글 목록, 글 내용, 글 작성, 글 변경, 글 삭제, 댓글 작성, 댓글 변경, 댓글 삭제,  회원가입, 로그인, 회원 정보 변경, 회원 탈퇴 정도의 구성을 갖고 있다. 


앞으로 여기에 파일 업/다운로드, 코드 주석 달기, 리팩토링 이후 AWS나 도메인 등록을 통해서 실제 서비스를 한번 구동해볼 예정이다.


아래는 현재 게시판의 간략한 구조도 이다. 이렇게 써놓으니까 별 기능이 없는 것 같다..... 뭐 더 추가하면 될 것 같다.



1. 스프링에 mysql을 연동하기전 제대로 연결이 되는지 확인해보자.


-샘플 코드



로컬은 왠만하면  연결 잘된다.


2. 로컬이 아닌경우....... 나는 우분투에 mysql을 설치하고 윈도우에서 연결하려고 시도했는데 계속해서 에러가 났다....

   

    에러 내역은 'com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure'......


    계속 에러가 나서 정말 미치는 줄 알았다....


    근데 정말 해결법은 간단했다. 우분투에서 /etc/mysql/mysql.conf.d로 들어가서 mysqld.cnf에서 bind-address를 로컬이 아닌 0.0.0.0으로 바꿔줘야

  

    원격으로 접속이 가능하다....... 꼭 확인하고 저처럼 애먹지 마세용...



3. 스프링에 mySql DataSource 추가하는 법 (뭐 그냥 넣어봤음..)


스프링의 pom.xml에 mysql-connector, spring-jdbc를 추가해준다.



servlet-context.xml에 datasource정보를 추가해준다.





게시판만들기의 가장 기본인 DB테이블을 구성해보았다.


MySql WorkBench를 활용하여 만들어 보았다.


Board 테이블은 기본적인 게시판의 구조를 갖고 있다.

그리고 회원관리를 위한 User 테이블과 댓글을 기록하기 위한 Reply 테이블을 만들었다.


일단 기본적인 것만 생각했고 추후에 수정이 있을지도 모르겠다.

DI와 IOC 컨테이너


DI - 외부에서 의존하는 객체를 생성하여 넣어주는 것


if (A라는 객체에서 B와 C가 필요함, 이 때 A라는 객체에 setter()나 construct()로 설정하여 직접 생성하지 않고 외부에서 생성하여 설정)


IOC - 예를들어 핸들을 여러가지 준비해 놓고 A라는 자동차를 만들 때 B핸들이나 C핸들 등 원하는 부품을 설치할 수 있다. 이런 부품들을 모아놓은 집합체.


스프링 - 부품을 생성하고 조립하는 라이브러리의 집합체라고 볼 수 있다.


[필요한 환경]


1. 이클립스

2. github repository

3. DataBase(MySql, oracle...)

4. Web Application Server(Tomcat..)


[설치하는 법]


1. 이클립스 Market Place에서 Spring Tools를 다운 받는다.

2. Spring legacy project를 생성한다.

3. Spring Mvc model로 생성한다.

4. pom.xml에서 버전을 최신으로 바꿔준다. (스프링 홈페이지에 최신버전 나와있음)

5. 오류가 나는 경우 프로젝트 properties로 들어가서 project facets에서 jdk 버전을 설치된 버전과 맞춰준다.


[git에 연동하기]


1. github에서 새로운 repository를 생성한다.

2. 해당 repository 주소를 복사한다.

3. 이클립스에서 git perspectives로 들어간다. 

4. clone git repository를 한다.

5. 만들어둔 Spring 프로젝트를 우클릭하여 Team -> Share projects를 한다. 

6. 다시 git perspectives에서 우클릭을 하여 Team -> add to index를 한다.

7. Commit and Push를 한다.

8. github를 확인한다.

+ Recent posts