웹개발의 봄, Spring 1주차

2022. 3. 18. 19:37· 스파르타코딩클럽/항해99

메소드 (Method) - 함수(function)와 비슷한 개념

 

| 메소드의 구조

public (반환형) 메소드명(파라미터) { ‌// 명령 내용 ‌return (반환값) }

 

| 메소드의 특징

  • class 안에만 작성을 해야한다. 
  • public 은 반드시 써줘야 한다. 
  • main 함수에서 실행을 하려면 static을 반드시 써줘야 한다.
  • 반환값, 즉 return이 있다면 void 대신 method 명 앞에 return할 값의 자료형(Data type)을 써주고 return이 없다면 반환형 자리에 void를 써준다. (ex. String, int..)
    - 데이터 타입과 void는 return 값의 유무에 따라 둘 중 하나만 쓴다고 이해하면 될 것 같다.
  • 파라미터(입력값)는 있을 때도 있고 없을 때도 있다. 

 

| main 에서 method를 실행할 때

  • 반환값(return)이 없다면 함수를 호출해주기만 하면 된다.
  • 반환값(return)이 있다면 함수를 받을 변수를 지정해주고 System.out.println( ); 에 변수를 받아 보여준다.
// 파라미터 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; }

 


| List (List는 컬렉션 클래스)_종류 중 일부 

 

List<String> aa = new ArrayList<>( );

👉 String 타입의 aa라는 리스트 생성

 

  • List는 요소의 저장 순서가 유지된다.
  • 같은 요소의 중복 저장을 허용한다.

List<Integer> bb = new ArrayList<>( );

👉 Int 타입의 bb라는 리스트 생성 (*Int와 Integer는 차이가 있음)

 

| List 메소드

 

- .add(String, Int) : 해당 리스트에 전달된 요소를 추가한다.

 

.- get (Int index) : 해당 리스트의 특정 위치에 존재하는 요소를 반환한다.

 

- .remove(int Index) : 해당 리스트의 특정 위치에 존재하는 요소를 제거한다.

 

- .size( ) : 해당 리스트의 요소의 총 개수를 반환함. (List에서는 .length( ) 대신 .size( ) 사용)

 

- Object[] toArray( ) : 해당 리스트의 모든 요소를 Object 타입의 배열로 반환한다.

 

1. Object[] 배열에 toArray()로 담는 경우

👉 Object[] obj = (Object[]) list.toArray();

에러없이 잘 받아진다. 형변환은 생략해도된다.

 

2. String[] 배열에 toArray()로 담는 경우

=> String[] str = (String[]) list.toArray();

실행시 에러가난다. toArray()는 Object[]형태로 반환되고 String[]으로 형변환이 불가하기 때문이다.

 

따라서 String형으로 받고자하는 경우는 밑과 같은 방식으로해야한다.

String[] str = new String[list.size()];

str = (String[]) list.toArray(str);


클래스 class

 

: 정보를 묶는 것, 메소드와 변수를 담고 있다.

 

생성자

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; ​​​​} }

생성자를 하나라도 넣게 되면 기본 생성자는 없는 것으로 간주된다. + 기본 생성자를 필요로 한다면 추가로 넣어주면 된다.

 

Rest

: 서버의 응답이 JSON 형식임을 나타낸다.

  HTML, CSS 등을 주고받을 때는 Rest를 붙이지 않는다.

 

Controller

: 자동응답기, 클라이언트의 요청(Request)을 전달받는 코드

  👉 JSON 만을 돌려주는 것은 RestController라고 부른다.

 

1주차 회고록


지난 알고리즘 문제를 풀었을 때 자바 강의를 조금 들어서 아예 처음 듣는 내용은 몇 개 없었다. 그래도 아직 직접 적용하기에는 어려운 내용도 많은 것 같다. Private과 Public의 차이를 배웠다. 정보를 함부로 수정할 수 없도록 하기 위해 Private을 사용하고, 그 정보를 저장하고 가져올 때도 단순히 쓸 수 있는 것이 아니라 Setter와 Getter를 이용해 코드를 작성해야 한다. 

 

Setter는 정보를 보내줄 떄 사용하고 Getter는 반대로 정보를 가져올 때 사용한다. 아래는 그 사용의 예시이다.

//Setter public void setName(String name) { ​​​​this.name = name; } public void setAge(int age) { ​​​​this.age = age; } public void setNickname(String nickname) { ​​​​this.nickname = nickname; } //Getter public String getName() { ​​​​return this.name; } public int getAge() { ​​​​return this.age; } public String getNickname() { ​​​​return this.nickname; }

 

또, Controller의 개념도 배워서 입력한 정보를 서버에서 Json 형태로 받아오는 작업도 해보았다. 수업 시간에 배운 코드를 따라서 작업을 해보았는데 오류가 나지 않은 채 서버에서 열리지 않는 문제가 발생했다. 정확한 원인은 모르겠지만 Setting에서 Gradle의 Build and using과 Run tests using을 Intellij IDEA로 바꿔주니 정상적으로 작동했다. 

 

새 프로젝트를 만들 때마다 설정에서 auto import를 포함해 다른 세팅을 모두 마친 환경에서 작업해야겠다고 생각했다.

 

참고자료


List 컬렉션 클래스

toArray( ) 메소드

String to Array : 문자열을 배열로 전환

 

'스파르타코딩클럽 > 항해99' 카테고리의 다른 글

항해99 6기 DAY 13 TIL _ 22.03.19  (0) 2022.03.20
항해99 6기 DAY 12 TIL _ 22.03.18  (0) 2022.03.19
항해99 6기 DAY 11 TIL _ 22.03.17  (0) 2022.03.17
항해99 6기 DAY 10 TIL _ 22.03.16  (0) 2022.03.17
항해99 6기 DAY 9 TIL _ 22.03.15  (0) 2022.03.16
'스파르타코딩클럽/항해99' 카테고리의 다른 글
  • 항해99 6기 DAY 13 TIL _ 22.03.19
  • 항해99 6기 DAY 12 TIL _ 22.03.18
  • 항해99 6기 DAY 11 TIL _ 22.03.17
  • 항해99 6기 DAY 10 TIL _ 22.03.16
예령 : )
예령 : )
개발 공부를 하며 기록하고 있는 일기장입니다. 꾸준히 기록할 예정이니 많은 관심 부탁드립니다! :)
예령 : )
예령's 개발기록
예령 : )
전체
오늘
어제
  • 분류 전체보기 (98)
    • Github (2)
    • Java (1)
    • Spring & SpringBoot (10)
    • Server (8)
      • docker (6)
    • 개발 (6)
      • 자료구조 (2)
    • 스파르타코딩클럽 (66)
      • 웹개발의 봄, Spring (1)
      • 프로그래머스_Java_알고리즘 기초 (18)
      • 항해99 (39)
    • TIL (4)
    • Tech Conference (1)
    • AWS (0)

인기 글

최근 글

hELLO · Designed By 정상우.v4.2.0
예령 : )
웹개발의 봄, Spring 1주차
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.