Spring

📚 2025년 3월 16일 스프링 MVC와 MyBatis로 웹사이트 구축하기

upwardtrend 2025. 3. 16. 23:37

 

 

안녕하세요! 오늘은 제가 스프링 MVC와 MyBatis를 이용해 간단한 웹사이트를 만들어봤어요. 환경 설정부터 실제 코드 작성까지 공부하면서 느꼈던 중요한 포인트들을 일기처럼 정리해 볼게요.

🔧 오늘 공부한 주요 환경 설정

  • JDK 21 설치: 스프링을 돌리기 위해 먼저 자바를 설치했어요.
  • 이클립스 EE 설치: 이클립스로 개발 환경을 갖췄어요.
  • Maven 설치 및 환경변수 설정: Maven으로 쉽게 라이브러리를 관리하도록 했어요.
  • Oracle DB 연결: MyBatis를 사용해 데이터베이스와 연결했어요.

🌱 주요 파일과 코드 설명

① HomeController.java (화면과 URL 연결)

@Controller
public class HomeController {
    // 홈페이지 메인화면
    @RequestMapping("/")
    public String home() {
        return "home";  // home.jsp 화면 출력
    }

    // 로그인 화면
    @RequestMapping("/login")
    public String login() {
        return "login"; // login.jsp 화면 출력
    }
}

✅ 잠깐 설명!

@Controller로 이 클래스가 컨트롤러임을 알려줘요. @RequestMapping은 URL 주소를 화면과 연결하는 역할이에요.


🔖 로그인 처리를 위한 컨트롤러 코드

package com.homepage.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import com.homepage.service.UserService;
import com.homepage.vo.UserVO;

@Controller
public class UserController {

    // 자동으로 서비스 연결
    @Autowired
    private UserService userService;

    // 로그인 처리
    @RequestMapping(value="/userLogin", method=RequestMethod.POST)
    public String userLogin(UserVO user, Model model) {
        // 사용자 정보를 서비스로 전달해서 로그인 검사
        UserVO result = userService.loginCheck(user);

        if(result != null) {  // 성공하면
            model.addAttribute("user", result);  // 사용자 정보 화면에 전달
            return "home";  // 홈으로
        } else {  // 실패하면
            model.addAttribute("msg", "로그인 실패!");
            return "login";  // 다시 로그인 화면으로
        }
    }
}

📌 MyBatis로 DB 쿼리 작성하기

MyBatis를 사용하면 아래처럼 XML에 쿼리를 적어요.

<!-- userMapper.xml -->
<mapper namespace="userMapper">
    <!-- 로그인 확인을 위한 SQL문 -->
    <select id="loginCheck" resultType="com.homepage.vo.UserVO">
        SELECT * FROM users
        WHERE id=#{id} AND password=#{password}
    </select>
</mapper>
  • namespace: 자바 클래스와 연결된 이름
  • <select>: DB에서 데이터를 가져올 때 사용
  • #{id}: 입력받은 id를 가져옴

🗂 오늘 공부한 파일들 정리

  • HomeController.java: URL과 화면 연결
  • UserController.java: 로그인 처리
  • UserService.java: 로그인 서비스 처리
  • UserRepository.java: DB 연결
  • UserVO.java: 데이터를 담는 클래스
  • userMapper.xml: 실제 DB 쿼리문 관리

🧑‍💻 오늘 배운 핵심 요약

  • 스프링 MVC: 화면(JSP)과 자바 클래스(컨트롤러)를 연결할 때 사용.
  • MyBatis: 자바 클래스와 DB를 연결해 데이터를 가져올 때 사용.
  • 환경변수 설정: Maven 명령어를 어디서든 쓸 수 있게 해줌.
  • settings.xml: Maven 라이브러리 저장소 설정.

📝 공부하면서 느낀 점과 앞으로 할 일

스프링은 XML을 최소화하고 간단히 URL을 사용하는 점이 정말 편했어요. 하지만 MyBatis XML 파일 작성이 처음엔 조금 어렵게 느껴졌어요. 앞으로는 다양한 예제를 따라하며 익숙해질 필요가 있을 것 같아요.

다음엔 게시판과 회원가입 기능까지 확장해서 더 완벽한 웹사이트를 만들어 볼 예정이에요. 그럼 모두 화이팅!