자바 강의, Getter, Setter?, 필드명이 대문자 시작이면??

김재현·2023년 10월 18일
0

TIL

목록 보기
9/88
post-thumbnail

오늘 배운 것.

자바 강의 3주차,

  1. 객체지향 프로그래밍에 대한 개념 이해
  2. 클래스를 설계하는 방법
  3. 객체의 구성요소(필드, 메서드, 생성자)
  4. 클래스 변수, 인스턴스 변수의 차이점
  5. 생성자와 생성자 오버로딩
  6. this와 this()
  7. 접근 제어자
  8. pakage와 import
  9. 상속, 오버라이딩 을 통해 기능을 확장하는 방법

접근 제어자가 아주 요물이었다.
처음 접하는 개념인지라...

구글링, 튜터님께 질문하며 궁금한 점을 찾아나갈 수 있었다.

Getter, Setter

Q. 외부에서 객체의 private 한 필드를 저장/수정할 필요가 있을 때 Setter 메서드를 사용한다고 배웠습니다.
그런데 여기에선 타이어 클래스에 모두 Public으로 되어있는데 왜 Car.java나 Main.java에서 setTire라고 접근했는지 의문입니다.

A. 직접 대입 car.tire = tires;을 할 경우는 단순히 참조 값을 변경합니다.
반면에 지금처럼 메서드 호출 car.setTire(tires);을 할 경우 추가적인 로직을 수행할 수 있게 됩니다.
객체지향프로그래밍 원칙을 따르려면 필드에 직접 접근하기보다는 getter/setter 등 메서드를 통해 접근하는 것이 좋습니다.
--> setter 메서드를 통해 한번 거쳐서 불필요한 값을 제어하는 등 유용하게 사용 가능하다.

궁금증: 필드명이 대문자 시작이면 어케되나

--> 관례상 클래스명이 대문자 시작, 필드명이 소문자 시작이기 때문에 그럴 일 없긴 한데... 작동은 되는 것 같다. 복습할 때 꼭 해봐야지.

찾아보니 JSON 사용하면서 클라이언트가 대문자로 시작해서 입력한 경우 이슈가 될 수 있었음.
그럴때는 @JsonSetter 어노테이션으로 property 이름을 명시해줘서 서버가 받는 이름을 소문자로 시작되게 만들더라.
머시기 어노테이션이 무슨 매커니즘인지 이해는 안되지만 이런 경우도 있다는걸 알았다.
https://gajy.tistory.com/29


오늘은 특강으로 웹 지식 전반에 대한 것이 있었다.

메소드와 URL의 조합으로 서버에 요청하고,
그에 따라 클라이언트는 응답을 받음.
(메소드+URL)
메소드: get, post, ...
URL: 밸로그/머시기/두시기[출처] https://mannhowie.com/rest-api

웹서버의 주요 기능: (정적)페이지 제공, API 제공

🔥API(Application Programming Interface)란?

  • 여러 소프트웨어 간에 정보나 기능을 공유하게 해주는 중간 매개체
  • 일종의 규약(약속)
  • 한 프로그램이 다른 프로그램의 기능을 사용하거나 정보를 가져올 수 있음
  • API는 클라이언트의 요청에 따라 동적으로 데이터나 정보를 제공
  • 주로 JSON이나 XML형식으로 응답을 반환

오늘은 개인과제(키오스크 만들기)를 배포받고 팀원들과 첫 인사를 나누었多.
<팀 소통 노션 페이지>
<개인과제 발제>

생각보다 많은 양의 공부를 하진 못했다.
과제를 슬슬 진행해야 하는데 절대적인 시간이 부족하다.
마음이 조급해진다.

내일은 3주차 완강하고 4,5주차 학습을 목표로한다.

그렇지만 롱런을 목표로 체력관리도 놓치지 말자.
내일 아침은 일찍 일어나서 한바퀴 뛰고 와야겠다.

profile
I live in Seoul, Korea, Handsome

0개의 댓글