[2025 하계 모각코] 1주차 1회 계획 및 결과

오늘의 계획 : 백엔드 강의(입문편 수강)


오늘은 백엔드 강의를 수강하면서 tomcat 설치, 스프링부트, gradle vs maven 에 대해서 알아봤다.


최초 템플릿 실행

whitelabel Error

보여줄 html 파일이 없을 때 나타나는 에러 페이지

에러 코드도 404 다.


컨트롤러

이젠 정말 동적으로 웹페이지를 옮겨 다닐 수 있게 해볼것이다.

잘못된 디렉토리 구조 / 올바른 디렉토리 구조

처음 java main 파일을 실행하면 왼쪽 이미지 속의 html 파일이 렌더링 된다.

이것은 resources/static 이라는 곳에 있고,

오른쪽 이미지처럼 동적으로 렌더링되는 html 파일은 templates 폴더 안에 있어야 한다.

그런데 그것을 모르고 그냥 static에 다 넣어놨다가 왜 안 되나 한참 고민을 했었다.. 

package hello.hello_spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class helloController {

    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("data", "친구!!");
        return "hello";
    }
}

hello(왼쪽 이미지)를 클릭하면 '안녕하세요 친구!!'(오른쪽 이미지)를 출력하는 페이지로 이동

컨트롤러에서 리턴 값으로 문자를반환하면 뷰 리졸버('viewResolver')가 화면을 찾아서 처리한다.

스프링 부트 템플릿엔진 기본 viewName 매핑

'resources:templates/' + {ViewName} + '.html'

 

참고 : 'spring-boot-devtools' 라이브러리를 추가하면, 'html' 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다.

인텔리J 컴파일 방법 : 메뉴 - build - Recompile


gradle vs maven

스프링부트를 최초에 시작할 때 gradle과 maven 둘 줄 하나를 선택할 수 있다.

 

지금 당장 이해한 것은

gradle은 maven에 비해서 커스터마이징을 할 수 있는 폭이 더 넓다. 대신에 초보자가 다루기 어렵다.

maven은 반대로 커스터마이징을 하기 어려운 대신에 입문하는 허들이 낮아서 초보자도 금방 익숙해질 수 있다는 점이다.

 

그럼에도 이번 스프링 공부는 gradle로 진행하기로 했다.

안드로이드이긴 하지만, 안드로이드에서는 공식적으로 gradle을 밀고 있기도 하기 때문이다.

 

+ maven

xml로, 커스터마이징이 어려

안정적인 서버/라이브러리 빌드, 전통적인 Java 프로젝트에 적

(의존성 관리가 많이 필요없고, 

 

+gradle

빠르고 유연하며 자동화에 강함

복잡한 백엔드 시스템, 안드로이드 등

(의존성이 복잡하게 얽혀있어도 처리가능, 일반 프로그래밍 언어처럼 일부 동작할 수 있어서 자동화가능)