Light Blue Pointer
본문 바로가기
Developing/개발일지

2023-11-03, Today I Learned

by Greedy 2023. 11. 3.

오늘 생각한 것

배움이 더디다

오늘 공부한 것

 

[내일배움캠프][Spring][1주차]Controller이해하기

Controller이해하기 프로젝트 생성 Name: spring-mvc Language: Java Build system: Gradle - Groovy Group: com.sparta JDK: 17 프로젝트 경로(Location)는 자유롭게 설정 Dependencies Thymeleaf, Spring web, ,lombok 추가 controller package만

greedydeveloper.tistory.com

 

[내일배움캠프][Spring][1주차]정적페이지와 동적페이지

정적페이지와 동적페이지 정적 페이지 static에 html넣고 호출해보기 resources→static→new→HTML→hello.html 만듦 Hello, Spring 정적 웹 페이지!! (static) main→java→com.~~→html→HtmlController 만듦 package com.spart

greedydeveloper.tistory.com

오늘 푼 문제

 

[프로그래머스][Lv.0]n의 배수

문제 주소 https://school.programmers.co.kr/learn/courses/30/lessons/181937 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁

greedydeveloper.tistory.com

 

 

[프로그래머스][Lv.0]두 수의 연산값 비교하기

문제 주소 https://school.programmers.co.kr/learn/courses/30/lessons/181938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁

greedydeveloper.tistory.com

 

 

[프로그래머스][Lv.0]더 크게 합치기

문제 주소 https://school.programmers.co.kr/learn/courses/30/lessons/181939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁

greedydeveloper.tistory.com

 

 

[프로그래머스][Lv.0]문자열 곱하기

문제 주소 https://school.programmers.co.kr/learn/courses/30/lessons/181940 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁

greedydeveloper.tistory.com

 

 

[프로그래머스][Lv.0]문자열 곱하기

문제 주소 https://school.programmers.co.kr/learn/courses/30/lessons/181940 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁

greedydeveloper.tistory.com

오늘 알게된 것

Controller에 대해서 아주 약간이지만 감을 잡았다

정적페이지와 동적페이지를 만들면서 아직 추가공부가 필요하지만 api를 통해 어떻게 요청들이 처리되는지 대충 알 거 같다고 생각했다

 

@GetMapping :

@Controller가 붙은 클래스의 Method에서 반환 타입이 String이면 반환하는 String에 부합하는 페이지를 찾아서 반환해 줌

 

기본적으로 Thymeleaf를 사용하게 되면 resources-> templates에 있는 html을 읽어온다

다른 데에 있는 html을 읽고 싶으면 Thymeleaf를 gradle에서 빼면 됨, 설정 세세하게 변경하는 법이 있을텐데 지금은 모르겠다

아무튼 이렇게 하면 된다

@GetMapping("/static-hello")
    public String hello() {
        return "hello.html";
    }

Thymeleaf를 사용하면 html을 안 붙여도 templates에 있다면 알아서 찾아준다 다음처럼

@GetMapping("/html/templates")
    public String htmlTemplates() {
        return "hello";
    }

 

반환되는 String앞에다 redirect:/를 붙이면 templates에 없어도 다시 읽어와준다

이거는 한번에 가는게 아니라 경유해서 가는 느낌

@GetMapping("/html/redirect")
    public String htmlStatic() {
        return "redirect:/hello.html";
    }

 

 

동적 페이지 만들 때 Model 객체가 왔다갔다 한다고 한다

@GetMapping("/html/dynamic")
    public String htmlDynamic(Model model) {//Front Controller에서 Model 객체를 넣어주면 이용
        visitCount++;//요청이 들어오면 visitCount를 1 증가시킴
        model.addAttribute("visits", visitCount);//모델에 변동이 필요한 데이터를 넣어줌
        return "hello-visit";
    }

Model객체에다 attribute 값 줘서 날려보내는데

미니프로젝트로 Javascript로 팀 소개 페이지 만들었을때 동적으로 생성한 Element들 식별하려고 <div>안에다 attribute 붙여서 넣던 거랑 비슷하게 느껴졌다

아무튼 model에 넣어서 날리면

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Hello Spring</title></head>
<body>
<div>
    Hello, Spring 동적 웹 페이지!!
</div>
<div>
    (방문자 수: <span th:text="${visits}"></span>)//아까 model에 넣어준 attribute의 이름
</div>
</body>
</html>

html에서 model을 받아서 그 model의 visits attribute를 읽어서 동적인 요소가 html에 반영된다

'Developing > 개발일지' 카테고리의 다른 글

2023-11-08, Today I Learned  (0) 2023.11.08
2023-11-07, Today I Learned  (0) 2023.11.07
2023-11-02, Today I Learned  (1) 2023.11.02
2023-11-01, Today I Learned  (1) 2023.11.01
2023-10-31, Today I Learned  (0) 2023.10.31