목록Programming/Spring (10)
2swan
@RequestMapping: ● Spring 개발 시 특정 URL로 요청(Request)을 보내면 Controller에서 어떠한 방식으로 처리할지 정의 ● @RequestMapping은 Controller단에서 사용되며, DitpatcherServlet이 Controller 파일을 찾고, 논리적 주소가 매핑된 Method를 찾기 위해서 @Controller와 @RequestMapping이 작성 되어야 한다. HTTP 메서드: ● GET : 서버의 리소스 조회 ● POST : 서버의 리소스 생성 ● PUT : 서버의 리소스 수정 ● DELETE : 서버의 리소스 삭제 ● PATCH : 서버의 리소스 일부 수정 @RestController public class MyController { @RequestM..
Model: ● 데이터를 뷰로 전달하기 위한 방법 ● 컨트롤러 메서드의 매개변수로 사용되며, 컨트롤러 내에서 데이터를 추가하고 뷰에 전달할 수 있다. ● 데이터를 전달하는 역할을 하며, 뷰 템플릿에서는 이 데이터를 사용하여 동적으로 웹 페이지를 생성한다. ● Model을 사용하면 컨트롤러에서 데이터를 직접 추가하고 뷰로 전달할 수 있다. @Controller public class MyController { @GetMapping("/insert") public String insert(Model model) { // 데이터를 Model에 추가 model.addAttribute("message", "Hello, World"); return "viewName"; // 뷰 이름 반환 } } @RequestMa..
Repository: 리포지터리는 엔티티에 의해 생성된 데이터베이스 테이블에 접근하는 메서드들(ex: findAll, save 등)을 사용하기 위한 인터페이스이다. 데이터 처리를 위해서는 테이블에 어떤 값을 넣거나 값을 조회하는 등의 CRUD가 필요하다. 이 때 이러한 CRUD를 어떻게 처리할지 정의하는 계층 public interface QuestionRepository extends JpaRepository { } 처럼 리포지터리의 대상이 되는 엔티티의 타입(Question)과 해당 엔티티의 PK의 속성 타입(Integer)을 지정해야 한다. 이것은 JpaRepository를 생성하기 위한 규칙 Question 엔티티의 PK(Primary Key) 속성인 id의 타입은 Integer 이다. @Auto..
@Id: @Id 에너테이션은 id 속성을 기본 키로 지정한다. 기본 키로 지정하면 id 속성의 값은 데이터베이스에 저장할 때 동일한 값으로 저장할 수 없다. @GeneratedValue: 데이터를 저장할 때 해당 속성에 값을 따로 세팅하지 않아도 1씩 자동으로 증가하여 저장된다. starategt 는 고유번호를 생성하는 옵션으로 GenerationType.IDENTITY는 해당 컬럼만의 독립적인 시퀀스를 생성하여 번호를 증가시킬 때 사용한다. @Column: 컬럼의 세부 설정을 위해 @Column 애너테이션을 사용한다. length는 컬럼의 길이를 설정할때 사용하고 columnDefinition은 컬럼의 속성을 정의할 때 사용한다. columnDefinition = "TEXT"은 글자 수를 제한할 수 없..
src/main/java: src/main/java 디렉터리의 com.example.book 패키지는 자바 파일을 작성하는 공간 BookApplication.java: 시작을 담당하는 파일이며 프로젝트명 + Application.java 파일이다. 스프링 부트 프로젝트를 생성할때 "Book"라는 이름을 사용하면 BookApplication.java 파일이 자동 생성된다. BookApplicatipn 클래스에는 @SpringBootApplication 애너테이션이 적용되어 있어야 하며 스프링부트의 모든 설정이 관리된다. templates: 템플릿 파일을 저장하며 HTML 파일 형태로 자바 객체와 연동되는 파일이다. static: css, js, 이미지 파일(.jpg, .png) 등을 저장하는 공간이다. a..
Spring Boot Devtools : 서버의 재시작 없이도 클래스 변경 시 서버가 자동으로 재기동 된다. 출력하는 문자열을 "Hello World"에서 "Hello"로 변경하고 URL을 호출하면 "Hello World" 문자열이 출력된다. 프로그램이 변경되더라도 로컬서버가 변경된 클래스를 리로딩하지 않기 때문이다. 프로그램을 수정하고 변경된 사항을 확인하려면 매번 서버를 재시작 해야 된다. 이러한 불편함을 해소하기 위해 Spring Boot Devtools 사용하면 서버 재시작 없이 변경사항이 적용된다. Live Reload (크롬 확장프로그램) Spring Boot Devtools에 의해 브라우저 주소창에서 URL을 다시 호출하거나 Refresh를 해야만 변경된 내용을 확인할 수 있는데 Live R..
@Controller 에너테이션은 HelloController 클래스가 컨트롤러의 기능을 수행한다는 의미 이 어너테이션이 있어야 스프링부트 프레임워크가 컨트롤러로 인식한다. hello 메서드에 적용된 @GetMapping("/hello") 어너테이션은 http://localhost:8080/hello URL 요청이 발생하면 hello 메서드가 실행됨을 의미한다. 즉, /hello URL과 hello 메서드를 매핑하는 역할을 한다. @ResponseBody 애너테이션은 hello 메서드의 응답 결과가 문자열 그 자체임을 나타내며, hello 메서드는 "Hello World" 라는 문자열을 리턴하므로 출력으로 "Hello World" 문자열이 응답된다. @ResponseBody 애너테이션은 URL 요청에 대..
1. 인코딩 필터 설정 브라우저에서 보내는 요청(Requset), 응답(Response)을 모두 UTF-8 로 고정하기 위해 인코딩 필터를 설정 src/main/webapp/WEB-INF/web.xml 2. 로그 레벨 설정 개발 중에는 가능한 많은 정보가 나오는 것이 개발에 수월하며, 따라서 로그 레벨을 가장 낮은 레벨인 debug 모드로 변경 src/main/resources/log4j.xml
1. 톰캣(Tomcat) 서버 연동 Windows > Preferences > Server > Runtime Environments 사용하고자 하는 버전 클릭 설치한 경로(directory) 설정 Available > Configured로 프로젝트 이동 (기존에 등록한 이력이 있으면 servers 톰캣 우클릭 Add and Remove...) 2. 톰캣(Tomcat) 실행환경 설정 1.Servers 탭의 Tomcat 더블클릭해서 톰캣 실행 환경 설정을 할 수 있다. 2.타임 아웃 설정 타임아웃(timeout) 서버가 시작될 때 몇 초 내에 시작이 안 되면 서버 시작 실패라고 간주하는지 설정하는 것이다. 프로젝트 규모가 클 경우 시작되는 시간이 오래걸리므로 여유있게 120초(2분)으로 설정 Overview..
1. 프로젝트 자바 버전을 11로 변경 프로젝트 우클릭 -> properties Java Build Path ->Libraries 탭 -> JRE System Library JavaSE-11 (jdk-11.0.14) 2. 메이븐 자바 버전을 11로 변경 및 스프링 버전을 최신 버전으로 업데이트 메이븐은 프로젝트를 생성하고 라이브러리를 관리하고 빌드하는 것까지 프로젝트의 라이프 사이클을 관리하는 소프트웨어 프로젝트 루트에 있는 pom.xml 이 메이븐 설정 파일이다. 3. faceted project problem (java version Mismatch) 오류 해결 프로젝트 우클릭 -> properties Project Facets 메뉴 클릭 Java Version 11로 변경 4. 메이븐 빌드 실행 p..