1. 스프링 작동시키기
초기 설정
- Group: com.주소명
- Artifact: 프로젝트명
- Language: Java
- Type: Gradle
- Java Version: 8
추가 설정
- Lombok
- Spring Web
- Spring Data JPA
- H2 Database
- MySQL Driver
기타 설정
- Auto import
- 환경설정 (command + ,)
- auto import
- Insert imports on paste: Always
- Add unambiguous imports on the fly: 체크
- Theme
- shift 두번 누르면 검색 창
- Actions에서 plugins를 검색
- monokai 검색 및 설치
- Shortcuts
- shift 두번 누르면 검색 창
- Actions에서 plugins를 검색
- Key Promoter X 검색 및 설치
2. 웹의 기본 개념
- API: 은행 창구와 같은, 하나의 약속 (정해진 대로 요구시, 정해진 결과물 돌려줌)
- HTML: 뼈대
- CSS: 꾸미기
- JavaScript: 동작
- Spring: 서버 담당 (자바 언어 바탕)
3. 자바 기초 문법
화면 인쇄
변수
- 값을 담는 상자
- (자료의 종류) (변수명) = (값)
- 영어, 소문자 시작, 구분은 대문자
- 제일 마지막에 세미콜론(;)
숫자 / 문자 / 참거짓
- int, float, Long
- String
- boolean
배열-List
- 순서 중요
- 같은 자료형만 넣을 수 있음
- 넣을 때는 add, 조회할 때는 get, 제거할 때는 remove를 사용
임포트
- List 처럼, 미리 작성된 코드를 불러오는 것 (다른 패키지일 때, 가져오는 것)
메소드
- 반복적인 행동을 줄여서 어디든 갖다쓸 수 있는 명령 모음
- 메인 함수에서 같은 클래스 내의 메소드를 호출 할때, 메소드 선언시 static을 붙이지 않으면 객체를 생성한 뒤 호출해야함
public static int sub(int num1, int num2) {
return num1 - num2;
}
public static void main(String[] args) {
int result = sub(1, 2);
System.out.println(result);
}
반복문 / 조건문
int count = 0;
for (int i=0; i<fruits.size(); i++) {
String fruit = fruits.get(i);
if (fruit == "감") {
count += 1;
}
}
System.out.println(count);
4. 자바 클래스
- 클래스는 정보를 묶는 것
- 객체지향 프로그래밍: 프로그래밍을 현실 세계에 빗대어 체계적으로 나타낸 것
- 클래스는 빵틀, 객체(인스턴스)는 빵
- 생성자: 클래스명과 똑같은 이름을 가진 메소드
- 기본생성자: 자바에서 별도 생성자 안만들면 자동으로 만들어줌
- this: 빵틀이 아니라 실제 빵(객체)의 값
public class Course {
public String title;
public String tutor;
public int days;
public Course() {
}
public Course(String title, String tutor, int days) {
this.title = title;
this.tutor = tutor;
this.days = days;
}
}
5. Getter / Setter
- Getter: 정보를 가져오는 메소드
- Setter에 대한 조회 접근을 허용
- get필드명
- Setter: 정보를 바꾸는 메소드
- private으로 선언한 변수에 값을 초기화 하도록 도와주는 메소드
- set필드명
- Getter / Setter 만들기
public String getTitle() {
return this.title;
}
public String getTutor() {
return this.tutor;
}
public int getDays() {
return this.days;
}
public void setTitle(String title) {
this.title = title;
}
public void setTutor(String tutor) {
this.tutor = tutor;
}
public void setDays(int days) {
this.days = days;
}
Course course = new Course();
System.out.println(course.getTitle());
System.out.println(course.getTutor());
System.out.println(course.getDays());
course.setTitle("웹개발의 봄 스프링");
course.setTutor("남병관");
course.setDays(35);
System.out.println(course.getTitle());
System.out.println(course.getTutor());
System.out.println(course.getDays());
6. 브라우저에 바로 나타내기
- JSON: 데이터를 서버에서 전달받는 형식
- 데이터로 응답하려면, RestController를 사용 (JSON 만을 돌려주는 것)
- Rest
- 서버의 응답이 JSON 형식임을 나타냄
- HTML, CSS 등을 주고받을 때는 Rest 를 붙이지 않음
- Controller
- 자동 응답기
- 클라이언트의 요청(Request)을 전달받는 코드
- RestController 만들기
- src > main > com.주소명.프로젝트명 에 controller 패키지 생성
- CourseController.java 파일 생성
@RestController
public class CourseController {
@GetMapping("/courses")
public Course getCourses() {
Course course = new Course();
course.setTitle("웹개발의 봄 스프링");
course.setDays(35);
course.setTutor("남병관");
return course;
}
}
7. Gradle
- Maven Repository 에서 원하는 라이브러리 를 찾는다.
https://mvnrepository.com/artifact/org.json/json/20160810
- build.gradle 에 원하는 프로젝트 파일을 넣음 (dependencies {} 안)
- dependencies 옆 Run 버튼을 누름
- 우측 Gradle 탭의 새로고침 버튼을 누름
- 대상 프로젝트가 추가된 것을 확인
=> Gradle: json 배포할 때, 라이브러리를 가져와서 씀