원격 서버에 소스 코드를 배포하기 위해서 heroku를 통해 서버를 만들어서 하라는대로 했다. 근데 spring-boot-qna 요거는 이상하게도 git clone 으로 모든 브랜치를 다 가져와서 하면 잘되는데 내 브랜치인 kyu-kim-kr 로 가져와서하면 안된다. 화면은 뜨는데 코드에서 구현한게 안뜨고 그냥 간단하게 웰컴투헤로쿠 요게 뜨는데 어떻게해야하지?
슬랙에 올린 질문
원래 git push heroku main 하면 여러 안내문구가 나오면서 막 배포&빌드하는 과정이 나오잖아요
근데 저희 미션저장소 포크해서 제 브랜치만 클론해서 똑같이하니까 remote: Pushed to branch other than [main, master], skipping build. 라고 뜨네요.
heroku open 이라고 하면 새로만든 heroku 앱은 url을 통해 접속이 되는데 포크해온게 안뜨네요. 혹시 왜그런지 아시나요?
Deploying from a branch besides master
If you want to deploy code to Heroku from a non-master branch of your local repository (for example, testbranch), use the following syntax to ensure it is pushed to the remote’s master branch:
$ git push heroku testbranch:master
git push heroku step1:main
step1브랜치를 heroku의 main으로 보낸다 -> 잘 작동함
모델(Model), 뷰(View), 컨트롤러(Controller)와 같은 세 가지 역할의 컴포넌트로 구성되어 클라이언트의 요청을 처리
https://changrea.io/spring/spring-mvc/
컴포넌트 설명 모델(Model) 애플리케이션 상태(데이터)나 비즈니스 로직을 제공하는 컴포넌트 뷰(View) 모델이 보유한 애플리케이션 상태(데이터)를 참조하고 클라이언트에 반환할 응답 데이터를 생성하는 컴포넌트 컨트롤러(Controller) 요청을 받아 모델과 뷰의 호출을 제어하는 컴포넌트로 컨트롤러라는 이름처럼 요청과 응답의 처리 흐름을 제어한다.
영상을 통해서 MVC를 배워보려했으나 아직 MVC가 뭔진 모르겠다.
검색해보니까 MVC패턴이라고 나온다. 어떤 개념이 아니라 패턴이다.
지금까지 이해한걸 바탕으로 정리해보자면 MVC는 위에 작성한 저것들이고.
스프링 웹어플리케이션에서 웹이 작동하기 위해서는 저 세가지 컴포넌트들이 엮여서 코드를 웹에 나타낼수있게 된다.
예를 들어서 URL에 www.example.com/test
라고 입력하면 먼저 @Controller에서 @GetMapping을통해 test를 찾고 test이면 그 메서드가 작동한다. 그 메서드에서 String을 return 하도록 되어있는데 return 값은 리턴값.html
파일을 static 패키지 내에서 찾아서 html을 내보내준다.
그 외에도 예를 들어 www.example.com/test?name=testname&age=30
이라고 입력하면 예상할수있듯이 name이랑 age가 변수처럼 작동하는데 실제로 요청이 들어오면 name과 age, 그리고 Model 클래스를 파라미터로 받는 메서드를 이용해서 템플릿엔진의 문법을 html파일에 적용해서 변수를 원하는 곳에 잘 버무려서 출력할수있따다.
<button type="submit" class="btn btn-success clearfix pull-right">회원가입</button>
기억하기
URL이 추가되면 항상 그에 상응하는 Controller가 있어야한다.
// 5.
@GetMapping("/list")
public String list(Model model) {
model.addAttribute("users", users);
return "list";
}
}