개요 : 실제 존재하는 '망고 플레이트'라는 웹사이트를 클론 코딩하여 진행한 프로젝트
'망고 플레이트'란? 맛집 및 리뷰 중점 웹사이트
1차 미니 프로젝트는 콘솔 코딩이었다. 2023년 8월에 진행했고, 4~5일 정도 소요했던 것 같다.
프론트는 따로 없고, DB와의 연결 + 기본 CRUD 개발 연습이 주 내용!
우리 조는 '망고 플레이트'의 특징 중에서 사용자 입장과 관리자 입장을 개발해보았다.
- 사용자 입장 : 로그인, 회원가입, 맛집 검색, 리뷰 작성 및 조회 등
- 관리자 입장 : 식당 정보 관리
📌 프로젝트 패키지 구성

참고로.. 내가 맡은 부분은! 메인, 회원, 관리자 로그인과 식당 정보 관리 ^___^ 👍🏻

📌 데이터베이스 관리
우리는 Oracle서비스를 이용하여 DB를 관리했다.
인터페이스를 따로 생성하여 미니 프로젝트지만 최대한 객체지향적으로 개발하도록 노력했다.
- DB 관리 Interface
package com.kosa.mango3.db;
public interface DBManager {
/**
* DB로드
*/
void DBLoad();
}
- DB 관리 Class
package com.kosa.mango3.db;
import lombok.Getter;
@Getter
public class Oracle implements DBManager {
@Override
public void DBLoad() {
try {
Class.forName("oracle.jdbc.OracleDriver");
//System.out.println("JDBC Oracle 드라이버 로드성공");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
}
}
한계 : 각 dao에서 똑같은 형식으로 계속 db와 connect를 시도했다는 점
Spring에서는 properties를 통해 관리할 수 있으나, 기존 java만을 통해서는 한계가 있었다.
private Connection conn = null;
private final String url = "url";
private final String user = "user";
private final String password = "pwd";
/* 각 dao마다 모두 지역 변수를 선언해야 한다는 단점 */
그리고, 이 문제를 보완하기 위해 아래와 같이 새롭게 db 관리 Class를 생성하였다!
package com.my.sql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MyConnection {
/**
* JDBC 드라이버 로드 및 DB 연결
* @return Connection 객체
* @throws Exception 드라이버 클래스를 찾지 못하거나 DB 연결 실패
*/
public static Connection getConnection() throws Exception {
Class.forName("oracle.jdbc.OracleDriver");
String url="jdbc:oracle:thin:@localhost:1521:xe";
String user="hr";
String password="hr";
return DriverManager.getConnection(url, user, password);
}
/**
* DB 연결해제
* @param conn
* @param stmt
* @param rs
*/
public static void close(Connection conn, Statement stmt, ResultSet rs) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) { }
}
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) { }
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) { }
}
}
}
📌 예외 처리

다음 포스팅은 내가 작성한 코드들과 감상평을 써봐야겠당 😋
확실히 예전에 작성한 코드들이라 지금와서 보면 감회가 새로워.. 그만큼 성장했다고 믿으며.. 아디오스ㅋ
'🐾 개발' 카테고리의 다른 글
| 프로젝트 : 짜툴 (3) 240330 ~ 240331 (2) | 2024.04.02 |
|---|---|
| 프로젝트 : 짜툴 (2) 240320 ~ 240325 (0) | 2024.03.31 |
| [MacOS M2] MySQL 설치하기 (feat. homebrew) (0) | 2024.03.20 |
| [MacOS M2] homebrew 설치하기 (0) | 2024.03.20 |
| 프로젝트 : 짜툴 (1) 240304 ~ 240319 (0) | 2024.03.19 |