- 코드정렬
- Windows:Ctrl
+Alt
+L
- macOS:option
+command
+L
- 임포트
- Windows:Alt
+Enter
- macOS:option
+Enter
- 주석
- Windows:Ctrl
+/
- macOS:command
+/
- System.out.println()
- 공통: sout 치고 tab 누르기- 환경설정
- Windows:Ctrl
+Alt
+S
- macOS:command
+,
웹서비스는 크게 클라이언트와 서버로 구분이 된다.
클라이언트
는 쉽게 생각하면 눈에 보이는 것!
브라우저에서 눈에 보이는 요소 하나하나(글자색, 굵기 등)가 만드는 것을 '클라이언트를 만든다'라고 말한다.
서버
는 그 요소 안의 하나하나의 데이터를 받아서 보내주는 것!
그래서 웹서비스를 만든다는 것은 클라이언트(눈에 보이는 것)를 만들고 서버(데이터를 주는 것)를 만든다고 생각하면 된다.
자바는 썬마이크로시스템에서 1996년 1월에 공식적으로 발표한 프로그래밍 언어 중의 한 종류이다. 자바는 객체 지향 언어
로써 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체 지향 언어라는 평가를 받고 있다. 또한 자바는 운영체제에 독립적이므로 자바로 작성된 프로그램은 운영체제의 종류와 관계없이 실행이 가능하다.
스프링은 자바의 웹 프레임 워크로 자바언어를 기반으로 사용한다. 즉 자바로 다양한 어플리케이션을 만들기 위한 프로그래밍 툴이라고 보면 된다. Spring을 사용하면 중복코드의 사용률을 줄여주고 비지니스 로직을 더 간단하게 하는 것이 가능하다. 그리고 Spring은 다른 사람의 코드를 참조하여 사용하기 편리함으로 오픈 소스를 사용하기 좋은 구조를 가지고 있다. 즉 Spring이란 자바를 쉽게 사용할 수 있게 해주는 오픈 소스 프레임워크이다.
public static void main(String[] args) {
List<String> myList = new ArrayList<>();
String course1 = "웹개발의 봄 Spring";
String course2 = "프론트엔드의 꽃 React";
// 리스트에 요소넣기 리스트.add()
myList.add(course1);
myList.add(course2);
System.out.println(myList);
// 리스트 요소 가져오기 리스트.get()
System.out.println(myList.get(1));
// 리스트 요소 지우기 리스트.remove()
myList.remove(1);
System.out.println(myList);
}
- 출력값
[웹개발의 봄 Spring, 프론트엔드의 꽃 React]
프론트엔드의 꽃 React
[웹개발의 봄 Spring]
임포트
- List 처럼, 미리 작성된 코드를 불러오는 것
- 자바는 기본적인 임포트 파일들이 있는데, 임포트 단축키는 다음과 같다
- 윈도우:
Alt
+Enter
- 맥:
Option
+Enter
메소드
- 반복적인 행동을 줄여서 어디든 갖다쓸 수 있는 명령 모음
- 메소드명은 변수명과 규칙(영어사용, 소문자시작, 공백없음, 대문자구분)이 같다
- 메소드 사용 시 필요한 세가지 요소
1. 재료 = 파라미터 (없을 수도 있음)
2. 명령 = 실행코드
3. 결과 = 반환값 (없을 수도 있음)
public (반환타입) 메소드명(파라미터) {
// 명령 내용
return (반환값)
}
파라미터, 반환값이 다양한 경우
// 파라미터 X, 반환값 X
public void simplePrint() {
System.out.println("파라미터도 없고, 반환값도 없어요!");
}
// 파라미터 O, 반환값 X
public void simpleSum(int num1, int num2) {
System.out.println("num1 :" + num1 + ", num2: " + num2);
}
// 파라미터 X, 반환값 O
public int simpleReturn() {
return 3;
}
// 파라미터 O, 반환값 O
public int sum(int num1, int num2) {
return num1 + num2;
}
멤버 변수
라고 함생성자
라고 함public class Course {
public String title;
public String tutor;
public int days;
// 이렇게 아무런 파라미터가 없는 생성자를 기본생성자 라고 부릅니다.
public Course() {
}
public Course(String title, String tutor, int days) {
// this 는 "이것" 이죠? 클래스 변수를 가리킵니다.
this.title = title;
this.tutor = tutor;
this.days = days;
}
}
private : 함부로 바꾸면 안되는 것
- private일 경우 오류가 발생
public : 밖으로 드러내도 괜찮은 것
- public은 오류를 발생하지 않음
그러면 이 private으로 정의한 것을 어떻게 가져올까?
=> Getter / Setter를 이용하자!
Getter
는 쉽게 말하면 정보를 가져오는 메소드
Setter
는 정보를 바꾸는 메서드
< 사용법 >
1. 클래스에 가서 Getter와 Setter를 정의해준다
// Getter
public String getTitle() {
return this.title;
}
// Getter
public String getTutor() {
return this.tutor;
}
// Getter
public int getDays() {
return this.days;
}
// Setter
public void setTitle(String title) {
this.title = title;
}
// Setter
public void setTutor(String tutor) {
this.tutor = tutor;
}
// Setter
public void setDays(int days) {
this.days = days;
}
2. 메인 클래스에서 Getter와 Setter 사용하려면 호출해서 사용!
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());
화면에 클래스 정보 띄워보기
=> 데이터로 응답하려면 RestController
를 사용!
Rest
란?
Controller
란
즉, RestController란 JSON형식으로 응답하는 자동응답기이다!
<RestController 만들기>
import com.sparta.week01.prac.Course;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
// RestController 만들기
// 클래스 위에 @RestController 넣어줌
@RestController
public class CourseController {
// 브라우저에서 검색하는 것을 GET방식이라고 함
// courses로 브라우저에 쳐서 응답이 왔을 때 이 결과를 보여줄거야!
@GetMapping("/courses")
public Course getCourses() {
Course course = new Course();
course.setTitle("웹개발의 봄 스프링");
course.setDays(35);
course.setTutor("남병관");
return course;
}
}
- local:8080/courses가서 출력해보면
이렇게 정갈하게 출력하려면 JSONView
를 크롬에 설치하면 된다.
💨 JSONView 설치하러 가기
다른 사람들이 만들어둔 도구 내려받기
- Javascript - NPM
- Python - pip
- Java - mavenCentral, jcenter
이것을 통해 다른 사람의 코드를 다운받고 적용하는 것을 간편하게 할 수 있다.
그리고 이것을 도와주는 것이 바로 Gradle
이다.
자바 사용자들이 사용할 수 있는 다른 사람들이 만들어 놓은 코드(=라이브러리)를 검색하는 장소
추가해보기
1. Maven Repository 에서 원하는 라이브러리 를 찾는다.
2. build.gradle 에 원하는 프로젝트 파일을 넣는다.
3. dependencies 옆 Run 버튼을 누른다.