3월 22일

오늘 배운 것

  • Springboot 설치 및 실행, 개발환경 설정
  • Springboot

Framework

"뼈대나 근간을 이루는 코드들의 묶음"

Framework를 사용하면 크게 다음 4가지의 장점이 있습니다.

  1. 어느정도 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다.

  2. 일정한 품질이 보장된 결과물을 얻을 수 있다.

  3. 개발 시간을 단축할 수 있다.

Framework 종류

SpringMVC(Java의 웹 프레임워크),

Django(Python의 웹 프레임워크),

Flask(Python의 마이크로 웹 프레임워크),

Ruby on rails(Ruby의 웹 프레임워크),

.NET Framework,

Node.js(Express.js 프레임워크) 등

SpringFramework

개발 후 유지보수가 쉽고 편리하게 개발을 할 수 있지만 많은 기능을 가지고 있기때문에 상당히 무겁고 다양한 기능을 사용하기 위해서는 많은 연습이 필요하다.

STS4 설치

https://spring.io/
Projects -> Spring Tools 4

다운받은 파일은 .jar 파일이기 때문에 압축을 풀려면
cmd창이나 마우스 오른쪽 클릭의 gitbashhere 메뉴를 이용하여
java -jar [파일 이름] 입력하면 자동으로 압축해제 됨

Window => Preferences => Java => Installed JRE에서 add버튼을 클릭해서
jdk-11을 버전으로 변경을 해주고

General => Workspace에 encoding을 utf-8로 변경


Springboot 사용해보기

기본 사용법

  • @getMapping은 getparameter와 유사하게 사용 할 수 있다.
  • @postMapping은 post방식으로 지정한 주소에 전송될 시 출력됨
package com.myapp.demo.web;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

// 주소창에 주소를 적으면 안의 메소드가 요청을 받는다.
@RestController
// 주소창에 localhost:포트번호 /hello 이면 이 클래스로 온다
@RequestMapping("/hello")
public class HelloController {

	// get메소드로 / 들어오면 return
	// /hello 안에 /basic을 적으면 이 메소드를 return 함
	@GetMapping("/basic")
	public String sayHello() {
		
		
		return "<h1>헬로우 월드2</h1>";
	}
	
	@GetMapping("/korean")
	public String translate() {
		return "<h1>GetMapping 테스트 </h1>";
	}
	
	@GetMapping("/japan")
	public String translatejp() {
		return "<h1>GetMapping 테스트 </h1>";
	}
	
	@GetMapping("/form")
	public String form() {
		return "<form method=\"POST\" action=\"/hello/formPost\">\r\n"
				+ "	<p>\r\n"
				+ "		<strong>아이디</strong>\r\n"
				+ "		<input type=\"text\" name=\"name\" value=\"\">\r\n"
				+ "	</p>\r\n"
				+ "	<p>\r\n"
				+ "		<strong>비밀번호</strong>\r\n"
				+ "		<input type=\"password\" name=\"password\" value=\"\">\r\n"
				+ "	</p>\r\n"
				+ "	<p>\r\n"
				+ "		<strong>성별</strong>\r\n"
				+ "		<input type=\"radio\" name=\"gender\" value=\"남성\">남자\r\n"
				+ "		<input type=\"radio\" name=\"gender\" value=\"여성\">여자\r\n"
				+ "	</p>\r\n"
				+ "	<p>\r\n"
				+ "		<strong>응시분야</strong>\r\n"
				+ "		<input type=\"checkbox\" name=\"part\" value=\"영어\">영어\r\n"
				+ "		<input type=\"checkbox\" name=\"part\" value=\"수학\">수학\r\n"
				+ "	</p>\r\n"
				+ "	<p>\r\n"
				+ "		<input type=\"submit\" value=\"제출\">\r\n"
				+ "	</p>\r\n"
				+ "</form>";
	}
	
	// post 방식에 /formPost로 전송받을 때
	@PostMapping("/formPost")
	public String formpost(@RequestParam("name") String name,
							@RequestParam("password") String password,
							@RequestParam("gender") String gender,
							@RequestParam("part") String part) {
		
		return "아이디는 " + name + ", 비밀번호는 " + password + ", 성별은 " + gender + ", 응시과목은 " + part;
	}
	// post주소와 같아도 주소에 바로 넣는 get 방식이면 get이 실행됨
	@GetMapping("/formPost")
	public String formtest() {
		return "<h1>post와 같은 주소 </h1>";
	}
	// /{id} 주소에 들어가는 PathVarialble
	// getParmeter와 PathVariable은 유사하지만 다르다
	@GetMapping("/orders/{id}")
	public String order(@PathVariable String id) {
		
		return "주문 아이디는 : " + id;
	}


package com.myapp.demo.web;

import java.util.Arrays;
import java.util.List;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.myapp.demo.domain.Product;

@RestController
@RequestMapping("/user") // https://localhost:8070/user
public class UserController {
	@GetMapping("/{id}")
	public String userid(@PathVariable String id) {
		return "유저아이디 : " + id;
	}
	
	@GetMapping("/{id}/contact")
	public String displayContact(@PathVariable String id,
						@RequestParam(value = "phone", defaultValue = "폰 없음") String phone) {
		
		return "유저아이디는 " + id + " 전화번호는 " + phone;
	}
	
	// 리스트 리턴해보기 => 제이슨 형식으로 변환되어서 출력됨
	@GetMapping("/{id}/items")
	public List<String> displayUserItems() {
		return Arrays.asList("가방","노트북","신발","태블릿");
	}
	
	// 객체를 리턴해보기 => 제이슨 형식으로 변환되어서 출력됨
	@GetMapping("/{id}/products")
	public List<Product> displayUserProducts() {
		return Arrays.asList(new Product(1, "모자", 5000),
								new Product(2, "가방", 20000),
								new Product(3, "노트북", 18000000),
								new Product(4, "태블릿", 1000000));
	}
}


Springboot port 변경방법

기본 포트인 8080을 사용하고 있다면
application properties파일 안에
server.port = 포트번호 를 입력해서 포트번호를 변경한다.

좋은 웹페이지 즐겨찾기