
목표 : 브라우저 주소 창에 http://localhost:8080/hello 라는 URL을 입력했을 때, 브라우저 화면에 "Hello World"라는 문구를 출력하는 웹 프로그램을 작성해당 디렉토리에 자바 클래스 파일을 하나 만든다. 파일명은 HelloCon

이전 컨트롤러 파일에서 프로그램을 수정하고, 변경된 사항을 확인하려면, 매번 서버를 재시작해야하기 때문이다. 이 문제를 해결하려면, Spring Boot Devtools 설치를 해야 한다. build.gradle 파일 수정developmentOnly란?개발 환경에만 적

문제 : h2 콘솔에 접속이 안 됨원인: 디렉토리 경로 잘못 잡아줌application.properties 파일에서 이렇게 작성하고, 이렇게 등록해주고, ctrl + r 로 cmd 들어가서, C:\\Users\\(사용자명)에 새폴더 mkdir로 local이라는 디렉터리

해당 라이브러리 설치를 위해 일반적으로 사용하는 설정이다. implementation은 해당 라이브러리가 변경되더라도, 이 라이브러리와 연관된 모든 모듈들을 컴파일 하지 않고 직접 관련이 있는 모듈들만 컴파일 하기 때문에, rebuild 속도가 빠르다. ① 데이터베이스

출처 : 점프 투 스프링부트엔티티에 의해 생성된 데이터베이스 테이블에 접근하는 메서드들(예: findAll, save 등)을 사용하기 위한 인터페이스이다.데이터 처리를 위해서는 테이블에 어떤 값을 넣거나 값을 조회하는 등의 CRUD(Create, Read, Update

https://devkingdom.tistory.com/149이걸 보고 해결하게 됐다.오류메시지 : template might not exist or might not be accessible by any of the configured Template Res

① : RequiredArgsConstructor 애너테이션으로 questionRepository 속성을 포함하는 생성자를 생성.롬복이 제공하는 애너테이션으로, final이 붙은 속성을 포함하는 생성자를 자동으로 생성하는 역할을 한다. @Getter, @Setter가

http://localhost:8080 처럼 도메인명과 포트 뒤에 아무것도 붙지지 않은 url을 말한다. 아직 루트 URL에 대한 매핑을 만들지 않았기 때문에 브라우저에서 루트 URL에 접속하면 404 페이지가 뜬다. Main Controller에서 다음과 같

출처 : https://wikidocs.net/161220앞서 우리는 QuestionController에서 QuestionRepository를 직접 사용하여 질문 목록 데이터를 조회했다. 하지만 대부분의 규모있는 스프링부트 프로젝트는 컨트롤러에서 리포지터리를

id 값으로 Question 데이터를 조회하는 getQuestion 메서드를 추가했다.리포지터리로 얻은 Question 객체는 Optional 객체이기 때문에 위와 같이 isPresent 메서드로 해당 데이터가 존재하는지 검사하는 로직이 필요하다. 만약 id 값에 해당

① URL 프리픽스도 /answer로 고정 ② @GetMapping과 동일하게 매핑을 담당하는 역할을 하지만, POST 요청만 받아들일 경우에 사용한다. <form th:action="@{|answer/create/${question.id}|}" method="p

스타일시트(stylesheet, css)는 static 디렉터리에 저장한다. /sbb/src/main/resources/staticcss 경로가 th:href="@{/style.css} 임에 주의하자. static/style.css 아님. css 적용된 것 확인 되었다

이 화면을 예쁘게 꾸며보기로..웹 디자이너 없이도 개발자 혼자서 괜찮은 수준의 웹 페이지를 만들 수 있게 도와주는 프레임워크이다. 부트스트랩은 트위터(Twitter)를 개발하면서 만들어졌고, 현재 지속적으로 관리되는 오픈소스 프로젝트다.bootstrap-5.2.3-di

<table>은 table 태그이고, <table>~</table> 태그로 시작해 태그로 닫힌 구간(Block)은 table 엘리먼트이다. css 파일은 head 엘리먼트 안에 링크되어야 한다. head 엘리먼트 안에는 meta, title 엘리먼트 등

질문 등록하기 버튼 추가 a링크를 타고 들어갈 때는 getmapping이니까 컨트롤러에 내용을 추가해주고, 이 폼 화면을 a링크 타고 들어갈 때 화면이 나올 수 있도록 한다. question_form.html 저장하기 버튼을 누르게 되면 method 방식이 po

① - 정수 타입의 페이지번호를 입력 받아 해당 페이지의 질문 목록을 리턴하는 메서드로 변경. ② - page는 조회할 페이지의 번호이고, 10은 한 페이지에 보여줄 게시물의 갯수를 의미한다. 해당 페이지의 데이터만 조회하도록 쿼리가 변경된다. http://l

지금 화면에서는 어느 페이지를 눌러도 1~10까지만 나온다. 해결하기로..질문 게시물이 12개라면, 0페이지에는 12~3번째, 1페이지에는 2번째~1번째 게시물이 역순으로 표시되어야 한다. 질문 게시물의 번호를 역순으로 정렬하려면, 다음과 같은 공식을 적용해야 한다.

스프링 기반 애플리케이션의 인증과 권한을 담당하는 스프링의 하위 프레임워크인증(Authenticate)은 로그인을 의미권한(Authorize)은 인증된 사용자가 어떠한 것을 할 수 있는지를 의미thymeleaf-extras-springsecurity6thymeleaf-

user 패키지 생성 unique = true는 유일한 값만 저장할 수 있다.(중복되게 저장 불가), username과 email이 해당. h2로 확인해보니 잘 들어와있는 걸 확인! UserRepository.java UserService.java BCrypt

로그인 구현하기 회원가입 단계에서 SITE_USER 테이블에 회원 정보를 저장했다. SITE_USER 테이블에 저장된 사용자명 (사용자 ID)과 비밀번호로 로그인을 하려면 복잡한 단계를 거쳐야 한다. 하지만 스프링시큐리티를 사용하면 보다 쉽게 진행할 수 있다. >

여러 개의 질문이 한 명의 사용자에게 작성될 수 있으므로, @ManyToOne 관계가 성립한다. 이 컬럼에는 site_user 테이블의 id 값이 저장되어 SiteUser 엔티티와 연결된다. 현재 로그인한 사용자에 대한 정보를 알기 위해서는 스프링 시큐리티가 제공하는

Intellij에서 다 실행했는데도 안돼서.... cors에러인가 싶어서 html meta 태그에 넣어도보고, @GetMapping을 @RequestMapping에도 바꿔봤다가.. 그러던 와중.. https://velog.io/@wy9295/spring-boo