항해 5기 3주차 - 주특기 입문(스프링)

이용만·2022년 1월 21일
0

개인 과제 : 스프링 부트로 로그인 기능이 없는 나만의 항해 블로그 만들기
1. 전체 게시글 목록 조회 페이지

  • 제목,작성자명,작성 날짜를 조회하기
  • 작성 날짜 기준으로 내림차순 정렬하기
  • 특정 게시글을 클릭할 경우 게시글 조회 페이지로 이동하기
  1. 게시글 작성 페이지
  • 제목,작성자명,작성 내용을 입력하기
  • "글쓰기" 버튼을 클릭하면 전체 게시글 목록 조회 페이지로 이동하고, 최신 게시글이 최상단에 위치함을 확인하기
  1. 게시글 조회 페이지
  • 제목,작성자명, 작성 날짜, 작성 내용을 조회하기
  1. AWS 배포
    1) RDS 연결
  • MySQL을 이용하기
    2) EC2 배포
  • Ubuntu EC2 를 구매한 뒤, 8080 포트와 80번 포트를 연결하여 포트 번호 없이도 서비스에 접속 가능하게 하기

팀 과제 :
환경 설정 -> 개인과제 훑기 -> 강의 자료를 볼 것
개인 과제를

3W-D1

팀 과제
JPA는 무엇인가요?

이번 주 배울 내용 확인하기

  • 웹의 기본 개념
  • 자바(Java) 기본 문법
  • 클래스(Class), 메소드(Method), 멤버(Member)
  • 스프링 작동 방법
  • 컨트롤러(Controller)
  • 그레이들(Gradle)

임포트
- List 처럼, 미리 작성된 코드를 불러오는 것을 "임포트(import)" 라고 합니다.
- 자바는 기본적인 임포트 파일들이 있는데, 임포트 단축키는 다음과 같습니다.
- 윈도우: Alt + Enter

메소드

  • 반복적인 행동을 줄여서 어디든 갖다쓸 수 있는 명령 모음입니다.
  • 실행하는 방법
    메소드명() ← 처럼 작성해줍니다!
  • 메소드의 구조
    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;
}

클래스

  • 현실과 비슷한 개념(객체)을 나타내기 위한 자바의 도구를 클래스라고 부릅니다.
  • 클래스 내 정보를 멤버 변수 라고 합니다.
    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8f09fd19-545d-4737-bb1d-661d922b7c0a/Untitled.png
package com.sparta.week01.prac;

public class Course {
    // title, tutor, days 가 Course 라는 맥락 아래에서 의도가 분명히 드러나죠!
    public String title;
    public String tutor;
    public int days;

    //기본 생성자
    public Course(){ //생성자는 자료형(int, String 등)을 넣지 않는다
    }
    // *자바에서 자동으로 기본 생성자가 없을 떄 만들어주지만 생성자를 하나라도
//    추가를 해준다면 기본 생성자가 없는 것과도 같기 때문에 기본생성자를 항상 같이
//    만들어줘야한다.

    //생성자
    public Course(String title, String tutor, int days){
        this.title = title;
        this.tutor = tutor;
        this.days = days;

    }

}

생성자

public class Course {
    public String title;
    public String tutor;
    public int days;

		// 이렇게 아무런 파라미터가 없는 생성자를 기본생성자 라고 부릅니다.
package com.sparta.week01.prac;

import java.util.ArrayList;
import java.util.List;

public class prac {
    public static void main(String[] args) {
        String title = "웹개발의 봄, Spring";
        String tuthor = "남병권";
        int days = 35;
        Course course = new Course(title, tuthor,days);
        System.out.println(course.title);
        System.out.println(course.tutor);
    }
}

    }
}
👉 위와 같이 "클래스명과 똑같은 이름을 가진 메소드를 "**생성자**"라고 부릅니다. 클래스 변수를 새롭게 만들 때 사용되는 녀석인데요, 아래와 같이 사용할 수 있습니다.

Private / Public

👉 클래스의 모든 정보를 손쉽게 바꿀 수 있으면 안되겠죠~! 왜냐하면 클래스는 고객의 비밀번호/결제정보와 같이 민감한 정보들도 담고 있기 때문입니다.

그래서 자바의 클래스는, 밖에 드러내도 되는 것들을 public, 함부로 바꾸면 안되는 것들을 private 으로 구분해서 나타낸답니다. 😎

함부로 바꾸면 안되는 private 클래스를 수정하고 가져오기 위해선
Getter / Setter 필요합니다.

👉 정보를 가져오는 메소드를 Getter, 정보를 바꾸는 메소드를 Setter 라고 부른답니다.
  • Setter
public void setTitle(String title){
        //public  : 밖에서 호출이 되야한다.
        //void : 돌려주는게 없다.
        //String title : 재료를 받는다.
        this.title = title;
    }

    public void setTutor(String tutor){
        this.tutor = tutor;
    }
    public void setDays(int days){
        this.days = days;
    }

*Getter

 //Getter
    public String getTitle() {
        return this.title;
    }
    public String getTutor(){
        return this.tutor;
    }
    public int getDays(){
        return this.days;
    }

RestController
웹서비스의 작동방식
서버 응답 두가지
1) 데이터만 보내기
2) html css js 다 보내기
중 데이터만 보내려면 RestController 을 사용한다.
Rest

  • 서버의 응답이 JSON 형식임을 나타냅니다.
  • HTML, CSS 등을 주고받을 때는 Rest 를 붙이지 않습니다.
  • Conroller ? 👉 자동 응답기! 누군가 말을 걸면 응답하는 녀석이에요. - 클라이언트의 요청(Request)을 전달받는 코드를 Controller 라고 부릅니다. → JSON 만을 돌려주는 것은 RestController 라고 부릅니다.
  • 우리는 이런 역할을 하는 빵틀을 새롭게 만들면 되는 것이군요!
  • CourseController.java 이해하기
    - @GetMapping
    브라우저에서 주소를 치는 행위를 GET 방식으로 정보를 요청한다고 합니다. 스프링 주소(http://localhost:8080) 뒤의 주소가 /courses 일 경우, getCourse 메소드를 실행함을 나타냅니다.
profile
성장하는 개발자가 되고자 합니다.

0개의 댓글