초록 스터디 1주차

songsunkook·2023년 11월 24일
0

초록 스터디

목록 보기
1/4

초록 스터디

초록 스터디는 스프링을 처음 접하는 스프링 입문자들을 위해 스프링 부트의 기능을 연습해보는 교육 과정이다. 동아리 신규 구성원들의 온보딩 과정에 이용해보고자 시작하게 되었다. 이러한 본래의 목적과 별개로 나는 스프링 부트를 학습하기 위해 스터디에 참여한 것도 있다.

학습 주제

  • 1단계: 웹 요청과 응답을 처리하기 위한 Spring MVC의 기능
  • 2단계: 데이터베이스 접근을 위한 Spring JDBC
  • 3단계: 스프링의 객체 관리 기능을 위한 Spring Core
  • 4단계: 기본적인 스프링 애플리케이션의 구조인 Layered Architecture

스터디 진행 과정

1주차 스터디 진행 상황

1단계 진행 중

1단계 학습 주제: 웹 요청과 응답을 처리하기 위한 Spring MVC의 기능

스프링 부트 실행 후 바로 종료되는 경우

  1. build.gradle에 다음 의존성 추가
    implementation 'org.springframework.boot:spring-boot-starter-web'
  2. thymeleaf 의존성 추가
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    main 클래스에 @EnableWebMvc 어노테이션 추가

참고 사이트

HTML 페이지 매핑

  1. build.gradle에 다음 의존성 추가
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
  2. application.properties에 다음 내용 추가
# 정적 리소스에 변화가 있을 때 바로 반영한다.  
spring.devtools.livereload.enabled=true  
  
  
# thymeleaf 참조 경로  
spring.thymeleaf.prefix=classpath:/templates/  
spring.thymeleaf.suffix=.html  
  
# thymeleaf에 대한 캐시를 남기지 않는다. cache=false 설정(운영시는 true)spring.thymeleaf.cache=false  
# templates 디렉토리에 파일이 있는지 없는지 체크, 없으면 에러를 발생시킨다.  
spring.thymeleaf.check-template-location=true	
  1. controller에 매핑 코드 작성
    1. 단, resources/templates/home.html이 있어야 함
@Controller  
public class RoomescapeController {  
  
    @GetMapping("/")  
    public String home() {  
        return "home";  
    }  
}

참고 사이트

css나 js 매핑 안됨

  • No mapping for GET /css/styles.css
  • No mapping for GET /js/scripts.js

홈페이지 접속 시 css와 js가 매핑되지 않는 현상이 발생했다.
위의 스프링 부트 실행 후 바로 종료되는 경우의 해결책과 충돌하여 발생한 것으로, Application에서 @EnableWebMvc 어노테이션을 제거함으로써 해결되었다.

@EnableWebMvc는 스프링에서 기본적으로 제공하는 웹 기능들에 대한 설정을 자동으로 진행해주는 어노테이션이다. 하지만 웹 기능을 추가적으로 커스터마이징하고자 한다면 이 어노테이션을 빼주어야 한다.

관련 사이트, 관련 공식 문서

회고

느낀 점

Spring Boot를 사용해본 경험이 적다 보니 환경 세팅 단계에서 예상치 못하게 시간이 오래 걸렸다. 이 때문에 1주차에는 실질적인 로직 구현을 거의 못해본 것 같아 아쉽다. 하지만 환경 세팅이 거의 끝난 만큼 다음 주부터는 훨씬 유익한 내용을 다룰 수 있기를 기대한다.

동아리 교육 과정 피드백

  1. 환경 설정에 문제가 발생하면 유익하지 못한 시간 낭비가 발생하게 된다.
  2. 온보딩 전환자들을 대상으로 담당자 1명을 정해, 디코를 통해 문제를 공유 및 해결한다.
  3. 1단계 과정은 함께 봐주면서 진행한다.

0개의 댓글